赞
踩
其基本思想和动量梯度下降法一样,也是为了消除梯度下降时纵轴方向的摆动而尽量不太影响水平轴,然后我们使用更大的learning rate 来高效的优化模型.
这里我们使用参数w来表示水平方向 参数b来表示竖直方向 那么 RMSprop的实现过程就是:
On iteration t:
compute dw,db on every mini-batch
S d w = β 2 S d w + ( 1 − β 2 ) d w 2 S_{d_w}=\beta_2 S_{dw}+(1-\beta_2){d_w}^2 Sdw=β2Sdw+(1−β2)dw2
S d b = β 2 S d b + ( 1 − β 2 ) d b 2 S_{d_b}=\beta_2 S_{db}+(1-\beta_2){d_b}^2 Sdb=β2Sdb+(1−β2)db2
ω = ω − α d w S d w \omega=\omega-α\frac{d_w}{\sqrt{S_{dw}}} ω=ω−αSdw dw
b = b − α d b S d b b=b-α\frac{db}{\sqrt{S_{db}}} b=b−αSdb db
其原理就在于当摆动较大时,说明dw较大,所以后面参数w就会减少的更多 而db较小
后面也基本不会发生什么变化
这里的w和b这是我们设定的一个参数 ,实际使用过程中,我们需要建立的直觉是哪些参数是纵向相关的,哪些参数是横向相关的,然后对其使用 根均值平方方法.
一个实现的细节是: ω = ω − α d w S d w + ϵ \omega=\omega-α\frac{d_w}{\sqrt{S_{dw}}+\epsilon} ω=ω−αSdw +ϵdw
ϵ 被 加 上 的 原 因 是 保 持 数 值 的 稳 定 性 , 防 止 其 除 以 了 一 个 过 于 接 近 0 的 数 \epsilon 被加上的原因是保持数值的稳定性,防止其除以了一个过于接近0的数 ϵ被加上的原因是保持数值的稳定性,防止其除以了一个过于接近0的数
其 一 个 较 为 合 理 的 值 是 1 0 − 8 其一个较为合理的值是10^{-8} 其一个较为合理的值是10−8
将两个算法结合在一起 ,可以有效地适应不同的神经网络结构
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。