lec6 训练神经网络2

参数的更新:

详见 http://blog.csdn.net/fffupeng/article/details/72771325

SGD:(沿着梯度负方向更新参数)

在上图中x方向的长度远大于其他方向,损失函数在水平方向上比较浅,在垂直方向上比较深。如上图,很明显下降的速度比较慢。

Momentum update:

动量更新不仅考虑了当前的动量-learning_rate*dx,还考虑了之前的动量v,注意到这是两个矢量相加。换句话来理解:如果当前的速度和之前更新的速度方向相同,则变化较大,反之变化较小。如下图所示:

Nesterov Momentum update:

这和之前Momentum更新的区别在于,将dx替换为

clipboard

x是当前的位置,dx也就是当前位置的梯度,现在通过上一次的位置和上一次的动量估计出本次的位置,也就是说计算的是估计目的位置的梯度。

AdaGrad update:

clipboard

相比于SGD只是在分母上多除了一个式子,这可以看作是对learing_rate的缩放,也就是说现在的学习率是动态的。如果dx梯度越大,学习率越小。Adagrad的一大优势时可以避免手动调节学习率,比如设置初始的缺省学习率为0.01,然后就不管它,另其在学习的过程中自己变化。当然它也有缺点,就是它计算时要在分母上计算梯度平方的和,由于所有的参数平法必为正数,这样就造成在训练的过程中,分母累积的和会越来越大。

RMSProp update:

clipboard

Adam update:

clipboard[1]

训练多个模型,对测试结果取平均,提升2%效果。但是训练多个模型非常消耗时间。就有了接下来的dropout

Dropout:

clipboard[2]

在训练的过程中,神经元以一定概率失活,这样就可以看作一个全新的模型。在测试时候所有的神经元都参与计算,计算的结果乘以相应的dropout概率。

dropout可以防止过拟合并减少计算参数的数量。一般来讲网络前面几层dropout数量比后面的几层少。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值