神经网络相关优化算法

一、Mini-batch算法

把训练集分割为小一点的子训练集,即Mini-batch.

1.Mini-batch方法

2.Batch成本函数  vs  Mini-batch成本函数

Batch成本函数会逐渐递减。

Mini-batch成本函数会上下振动,但总体趋势还是递减。

3.Mini-batch大小的选择

1.两种极端情况

(1)梯度下降法

若Mini-batch大小为batch, Mini-batch为整个训练集,(X^{\left \{ 1 \right \}},Y^{\left \{ 1 \right \}})=(X,Y),称为梯度下降法。

若使用梯度下降法,mini-batch=m,则每个迭代需要处理大量训练样本。

缺点:若数据量很大时,单次迭代耗时太长。

(2)随机梯度下降法

若Mini-batch大小为1, Mini-batch为单个样本 ,(X^{\left \{ 1 \right \}},Y^{\left \{ 1 \right \}})=(X^{(1)},Y^{(1)}),称为随机梯度下降法

若使用随机梯度下降法,mini-batch=1,每次只处理一个训练样本。

缺点:失去所有向量化带来的加速,效率低下。

2.mini-batch梯度下降法

选择不大不小,位于中间的Mini-batch,会得到两方面优点:

一方面,可以得到大量的向量化加速,提高训练速度。

另一方面,不需要等待整个训练集被处理完,就可以进行后续工作。

二、指数加权移动平均

1.指数加权移动平均

目标:利用温度的局部平均值或移动平均值,用于计算离散数据的趋势

方法:利用参数\beta,用于控制移动平均值与当日数据的比例,从而反映数据变化趋势

不同的\beta值:

(1)高\beta值,如\beta=0.98,

优点:得到的曲线要平坦一些,原因在于平均的天数多了,故曲线波动更小,更加平坦。

缺点:曲线进一步右移,因为平均的温度值更多,当日温度值占权重小,曲线变化趋势小,适应数据变化较缓慢,有一定延迟

(2)低\beta值,如\beta=0.5,

优点:由于平均的数据太少,曲线有更多的噪声,也有可能出现异常值

优点:曲线能更快适应数据变化

2.指数加权平均的偏差修正(数据集大时,一般无需使用时)

(1)方法:

(2)修正与未修正效果对比:

紫色曲线:未修正的指数加权平均

绿色曲线:修正的指数加权平均

偏差修正可以帮助在初始阶段也能很好的预测数据,使紫色曲线变为绿色曲线,当数据很多时,修正与未修正的效果几乎一样。

三、Momentum梯度下降法(动量梯度下降法)

原理:消除梯度下降中的摆动,允许使用一个更大的学习率\alpha,从而加快算法学习速度,通常效果好于标准的梯度下降法。

注意

1.矩阵的纬度有V_{dw}=dW=W,三者维度相同

2.通常梯度下降法和Momentum无需使用偏差修正,因为\beta=0.9,代表迭代10次后的梯度,10迭代后,移动平均已经过了初始阶段。

四、RMSprop优化算法(Root Mean Square prop 算法 )

原理:消除梯度下降中的摆动,允许使用一个更大的学习率\alpha,从而加快算法学习速度。

为了确保数值稳定,分母不会出现很小,接近于0的数,要加上\xi=1e-8

五、Adam优化算法(Adaptive Moment Estimation)

原理:将Monmentum和RMSprop结合在一起,具有一般性,适用不同深度学习结构

算法:

超参数的选择:

通常,\beta _{1},\beta_{2},\xi无需调试,用默认值就好,只需调试学习率\alpha

六、学习率衰减

        在学习初期,使用较大的学习率,步伐较大,当开始收敛时,采用较小的学习率,使得步伐变小,更好的收敛。

常用的学习率衰减公式:

第1种

第2种

第3种

第4种:(离散下降,隔段时间,学习率减半)

第5种:训练一段时间后,手动调整学习率

七、局部最优问题 

        在高纬度空间,真正的局部最优点很难遇到,各方向梯度为零,且各方向都为凸函数或都为凹函数,概率很小。遇到的成本函数的零梯度点,即梯度为0的点通常为鞍点,因此在高纬度空间很难遇到局部最优点。

        到达鞍点前会经历一个平稳段,此时的训练速度会很慢,到达鞍点时,由于会继续受到其他纬度方向的随机干扰,然后算法能走出平稳段。

因此:

1.在训练数据很多时,纬度很大,很难真正的陷入局部最优点,无需担心。

2.针对于平稳段训练缓慢,可以采用Momentum算法或RMSprop等优化算法加快训练速度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值