1.首先复习传统的 Gradient Descent 的过程:
下面介绍 Adagrad 方法:
下面这张 ppt 表明,分子上的梯度越大,更新幅度就越大,但是 Adagrad 的分母上梯度之和越大,反而更新幅度越小。
其实 Adagrad 可体现出不同时刻梯度的变化情况(反差),比如某个梯度一直很小,突然某个时刻变得很大,那么此时这个比较大的梯度就在梯度和中比较突出。
接下来老师举了一个二次项函数求最值的过程,可知在 x0 处,最优的梯度步长为 [公式] ,其中 2ax0+b 是一次导数,分母 2a 则是二次导数。则可猜想最优的步长是一次导数除以二次导数。
如下图,a 点的一次微分和二次微分都比较小,b 点的一次微分和二次微分都比较大,那么其实是不好确定 a 点与 b 点哪个点更新梯度的幅度更大,因为需要拿一次微分除以二次微分。
而 Adagrad 更新公式的分母用之前所有一次项梯度的均方根来替代二次项梯度:
feature scaling
假设现在的问题是 [公式] ,特征 x1 和 x2 的量级是不同的,那么此时如果参数 w2 有一个小的改动,y 值就会有很大的变动,所以 w2 的更新幅度都很大。
相关文章:
http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML_2016/Lecture/Gradient Descent (v2).pdf
https://www.bilibili.com/video/av35
本文转载自 Alex-zhai 知乎账号。
原文链接:https://zhuanlan.zhihu.com/p/78254440
评论