动量梯度下降法

吴恩达:动量梯度下降法

梯度下降过程,经常用到的一种平滑方法就是动量法,这种方法来源于指数加权平均的偏差修正
V_{dw }= \beta V_{dw} + (1-\beta)dw

其中V代表着一直记录的动量,\beta作为超参数,一般取值为0.9,直观物理意义是记录10步的结果并且进行加权平均以实现平滑。实际上每相隔一步,权重乘以0.1衰减。这就是指数加权平均这个名字的由来。这样进行平滑可以在不记录过往信息,节省大量内存的情况下得到平滑结果。


同理,对于bias
V_{db} = \beta V_{db} + (1-\beta)db

以上两个公式完成了梯度的计算,则权重的更新方式由下面两个公式完成:
w = w - \alpha V_{dw}
b = b - \alpha V_{db}


从统计学角度来说,只要数量够大,平均值可以很大程度体现真实值。我们把梯度下降当作是一个含有一定随机性的过程,每次计算都几乎不可能直接指向全局最优点。那么这个平均过程,被期望将这种随机性尽量抵消。事实证明这的确是可行的。


以上就是动量梯度下降法的关键内容,下面是延展阅读,重要性低


非重要补充:

V_{dw }= \beta V_{dw} + (1-\beta)dw
V_{dw} = \beta V_{db} + (1-\beta)db
两个式子在有的情况下写成
V_{dw }= \beta V_{dw} + dw
V_{dw} = \beta V_{db} + db
实际上不会有什么影响,唯一可能影响的就是学习率的最优值。

指数加权平均存在一定的缺陷,其中之一就是无法准确估计排在最前面的几个数据的均值,假设
\beta = 0.9, W_{t1} = 40 , W_{t2} = 10

V_0 = 0
V_1 = 0.1 * W_{t1} = 4
V_2 = 0.9 * V1 + 0.1 * W_{t2} = 4.6

显然都过于小了,无法准确体现加权平均值。
解决这个问题的方法也很暴力,直接进行偏差修正(bias correction)
V_t = \frac{V_t}{1-\beta^t}
这样子前几步的V_t得到相应的放大,而随着t的增大,
1-\beta^t
趋向于0,不再影响后面的结果。然而实际运用动量梯度下降法时,没有人真正去用这种修正,因为影响微乎其微。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容