第二节 深度神经网络中的激活函数
问题1:常用激活函数及导数
- 多层神经网络相当于一层,因此每层后面添加一个激活函数
- sigmod、tanh、ReLu的原函数和导函数(其中,tanh(x)=2*sigmod(2x)-1)
问题2:为什么sigmod和tanh导致梯度消失?
- 它俩的导数在变量x极大或者极小时趋于0,
问题3:ReLu系列激活函数相对sigmod和tanh的优点,局限及改进
优点:
- Relu不需要计算指数,只要一个阈值
- Relu的非饱和性解决梯度消失,有较宽的激活边界
ReLu的单侧抑制提供了网络的稀疏表达能力(不懂)
局限:ReLu在训练中导致神经元死亡,导致负梯度在经过该ReLu单元时被置为0(为什么是梯度?反向传播计算梯度时?梯度一直为0?)- 学习率设置过大也会导致一定比例神经元死亡
- ReLu变种 leaky ReLu,小于0时,f(x)= a * x
- 参数化的ReLu,PReLu,将参数a同网络中参数一起优化
- LReLu,a满足某个分布,从中随机采样,一定程度上起到正则化作用。
第三节 多层感知机的反向传播算法
问题1:多层感知机的平方误差和交叉熵损失函数
- 损失函数,代价函数,目标函数的区别:损失函数时一个样本的损失,代价函数是整体的损失,是损失函数的平均,目标函数,是最终要优化的函数=cost function+正则化项
- 损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。
- 代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
- 目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。参考
- 需要记住背写平方误差、交叉熵损失和多分类的损失函数。