全连接神经网络(中)

6. 再看激活函数

梯度消失
梯度消失是神经网络训练中非常致命的一个问题。其本质是由于链式法则的乘法特性导致的
梯度爆炸
梯度爆炸是由于链式法则的乘法特性导致的
断崖处梯度乘以学习率后会是一个非常大的值,从而‘飞‘出了合理区域,最终导致算法不收敛。
在这里插入图片描述
在这里插入图片描述

解决方案:把沿梯度方向前进的步长限制在某个值内就可以避免’飞‘出了,这个方法也叫做梯度裁剪。

在这里插入图片描述
在这里插入图片描述

尽量选择ReLU函数或者Leakly ReLU函数,相对于sigmoid/tanh,ReLU函数或者Leakly ReLU函数会让梯度流更加顺畅,训练过程收敛过快。

7. 动量法与自适应梯度

梯度算法改进:

  • 梯度下降算法存在的问题
    损失函数特性:一个方向上变化迅速而在另一个方向上变化缓慢。
    优化目标:从起点处走到笑脸处。
    问题:山壁间震荡,往谷底方向行进缓慢。
    仅增长步长并不能加快算法收敛速度
    在这里插入图片描述

  • 动量法
    改进梯度下降算法存在的问题,即减少震荡,加速通往谷底。
    改进思想:利用累加历史梯度信息来更新梯度。
    为何有效:
    累加过程中震荡方向相互抵消,平坦方向的到加强。

动量法还有什么效果:
现象:损失函数通常具有不大好的局部最小值或鞍点(高维空间非常常见)
梯度算法存在的问题:局部最小处与鞍点处梯度为0,算法无法通过。
动量法的优势:由于动量的存在,算法可以冲出局部最小点以及鞍点,找到更优的解。

  • 自适应梯度法
    自适应梯度法是通过减小震荡方向步长,增大平坦方向步长来减小震荡,加速通往谷底方向。
    如何区分震荡方向与平坦方向?
    梯度幅度的平方较大的方向是震荡方向,梯度幅度的平方较小的方向是平坦方向。
    在这里插入图片描述

AdaGrad
AdaGrad方法是一种自适应梯度方法
在这里插入图片描述

RMSprop
RMSprop方法是一种自适应梯度方法
在这里插入图片描述

  • Adam
    同时使用动量与自适应梯度思想
    修正偏差步骤可以极大缓解算法初期的冷启动问题。
    在这里插入图片描述

8. 权值初始化

采用随机初始化,避免全零初始化。
全零初始化:网络中不同神经元有相同的输出,进行同样的参数更新;因此,这些神经原学到的参数都一样,等价与一个神经元。

随机权值初始化
网络结构:10个隐层,1个输出层,每个隐层包含500个神经元,使用的双曲正切激活函数。

随机初始化:全职采样于N(0,1)的高斯分布

实验结论:初始化时让权值不相等,并不也能保证网络能够正常的被训练。

有效的初始化方法:使网络各层的激活值和局部梯度的方差在传播过程中保持尽量一致;以保证网络中正向和反向数据流动。

Xavier初始化
在这里插入图片描述
在这里插入图片描述

权值初始化小结

  • 好的初始化方法可以防止前向传播过程中的信息小时,也可以解决反向传递过程中的梯度消失。
  • 激活函数选择双曲正切Sigmoid时,建议使用Xaizer初始化方法;
  • 激活函数选择ReLU或者Leakly ReLU时,推荐使用He初始化方法。

9. 批归一化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

批归一化和全职初始化都是为了让信息流正反向都通畅,从而有效训练。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值