Day9 深度学习入门

参数的更新

神经网络学习的目的是找到使损失函数的值尽可能小的参数。常见的有以下四种:
SGD(stochastic gradient descent)、Momentum、AdaGrad、Adam。
参数更新规则而

Adam论文

这四种方法并不存在能在所有问题中都表现良好的方法,都有各自擅长和不擅长解决的问题。SGD受具体问题(函数形状)的限制,负梯度方向不一定始终指向最优值。所以后三种都是对其的一种改进(下图表示了四者的梯度变化趋势)。
梯度变化趋势

权重的确定

权重的初始值

权值衰减:一种以减小权重参数的值为目的进行学习的方法。
通过减小权重参数的值抑制过拟合的发生。


权重的初始值可以设置为0吗?


不能,初始值设为0,将无法正确学习。如果设置为0,即就是权重被赋予了相同的初始值,在神经网络中权重更新过程中,会出现权值对称的现象。为了防止"权值均一化",必须随机生成初始值。

隐藏层的激活值的分布

梯度消失:随着输出不断地靠近0(或者靠近1),它的导数的值逐渐接近0.层次加深的深度学习中,梯度消失的问题可能会更加严重。各层的激活值分布要有适当的广度。通过各层间传递多样性的数据,神经网络可以进行高效的学习。反之如果传递的是有所偏向的数据,就会出现梯度消失或者表现能力受限的问题,导致学习有可能无法顺利进行。

权值初始值的确定方法

权重初始值对激活值分布具有重要影响。
目前初始值确定使用较广的方法“Xavier值”和"He初始值"。
Xavier初始值是以激活函数是线性函数为前提推导出来的,sigmoid和tanh都是左右对称函数,且在中央附近可以视作线性函数。

激活函数初始值方法初始值
sigmoid或tanhXavier初始值标准差为1/np.sqrt(n)的分布
ReLuHe初始值标准差为2/np.sqrt(n)的分布
  • n表示神经网络中前一层的节点个数
  • 直观上的解释是,因为ReLU的负值区域的值为0,为了使它更有广度,所以需要两倍的系数

Batch Norm层

Batch Normalization是2015年提出来。

  • 思路:调整各层的激活值分布使其拥有适当的广度。一般以mini-batch为单位。
  • Batch Norm层会对正规化后的数据进行缩放和平移的转换,xi->xi'(正规化),yi<-gamma*xi'+β,gamma,beta初值为1,0
优点:
  • 可以使学习快速进行(增大学习率)
    【Batch Normalization的评估:
    在Minist数据集上,使用Batch Norm和不使用的区别是学习率增大,权值初始值变得更加稳健。】
  • 不那么依赖初始值(对于初始值不在敏感)
  • 抑制过拟合(降低Dropout等的必要性)

参考文献:
《深度学习入门:基于Python的理论与实现》

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值