概述
9 前向神经网络
01 常用激活函数
- Sigmoid激活函数
- Tanh激活函数
- ReLU激活函数
02 梯度消失
- Sigmoid激活函数将输入z映射到区间(0, 1) , 当z很大时, f(z)趋近于1; 当z很小时, f(z)趋近于0。 其导数在z很大或很小时都会趋近于0, 造成梯度消失的现象。
- Tanh激活函数相当于Sigmoid的平移, 同样会出现梯度消失。
03 ReLU激活函数的优缺点
- Sigmoid和Tanh激活函数均需要计算指数, 复杂度高, 而ReLU只需要一个阈值即可得到激活值。
- ReLU的非饱和性可以有效地解决梯度消失的问题, 提供相对宽的激活边界。
- ReLU的单侧抑制提供了网络的稀疏表达能力。
- 局限性在于其训练过程中会导致神经元死亡的问题, 即流经该神经元的梯度永远为0, 不对任何数据产生响应。
- 如果学习率(Learning Rate) 设置较大, 会导致超过一定比例的神经元不可逆死亡, 进而参数梯度无法更新, 整个训练过程失败。
04 损失函数
- 平方损失函数适合输出为连续, 并且最后一层不含Sigmoid或Softmax激活函数的神经网络。
- 交叉熵损失函数适合二分类或多分类的场景。
05 参数初始化
- 不管是哪个神经元,它的前向传播和反向传播的算法都是一样的,如果初始值也一样的话,不管训练多久,它们最终都一样,都无法打破对称(fail to break the symmetry),那每一层就相当于只有一个神经元,最终L层神经网络就相当于一个线性的网络。因此,需要随机地初始化神经网络参数的值。
- He Initialization
06 Dropout
- 在深度网络的训练中, 以一定的概率随机地 “临时丢弃”一部分神经元节点。
- 对于任意神经元, 每次训练中都与一组随机挑选的不同的神经元集合共同进行优化, 这个过程会减弱全体神经元之间的联合适应性, 减少过拟合的风险, 增强泛化能力。
07 批量归一化
- 批量归一化可以看作在每一层输入和上一层输出之间加入了一个新的计算层, 对数据的分布进行额外的约束, 从而增强模型的泛化能力。
- 防止隐层分布多次改变,BN让每个隐层节点的激活输入分布缩小到-1和1之间。
- 缩小输入空间,从而降低调参难度;防止梯度爆炸/消失,从而加速网络收敛。
08 卷积操作的稀疏交互和参数共享
-
稀疏交互
- 在卷积神经网络中, 卷积核尺度远小于输入的维度, 这样每个输出神经元仅与前一层特定局部区域内的神经元存在连接权重(即产生交互), 称这种特性为稀疏交互。
- 通常图像、 文本、 语音等现实世界中的数据都具有局部的特征结构,可以先学习局部的特征, 再将局部的特征组合起来形成更复杂和抽象的特征。
-
参数共享
- 参数共享是指在同一个模型的不同模块中使用相同的参数, 它是卷积运算的固有属性。
- 参数共享的物理意义是使得卷积层具有平移等变性。
09 池化
- 均值池化通过对邻域内特征数值求平均来实现, 能够抑制由于邻域大小受限造成估计值方差增大的现象, 特点是对背景的保留效果更好。
- 最大池化则通过取邻域内特征的最大值来实现, 能够抑制网络参数误差造成估计均值偏移的现象, 特点是更好地提取纹理信息。
- 池化操作的本质是降采样。
- 池化操作除了能显著降低参数量外, 还能够保持对平移、 伸缩、 旋转操作的不变性。
10 残差网络
- ResNet的提出背景是解决或缓解深层的神经网络训练中的梯度消失问题。
最后
以上就是失眠冥王星为你收集整理的9 前向神经网络9 前向神经网络的全部内容,希望文章能够帮你解决9 前向神经网络9 前向神经网络所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复