就是这张PPT让我非常疑惑,因为上一张PPT讲的是“平坦的地方learning rate越大,陡峭的地方learning rate越小”,怎么换了下一张就变了?
绿色箭头的区域明显比红色的要平坦,learning rate应该大啊,为什么ppt上写的是小呢?
解释:上一张PPT有多个参数(2个),是站在Adagrad的角度看learning rate的,learning rate的larger/smaller是跨参数的结果,
但当前PPT只考虑了一个参数(一个方向),平坦意味着离收敛已经很近了,所以需要小的learning rate。
为什么说Adagrad的learning rate是一个跨参数的结果呢?原因如下:
Adagrad公式如下:
当只有一个参数w的时候,梯度越大,就说明离收敛越远,那么就需要大的step以便尽快达到收敛。
但是一个network中往往有很多参数,那么在同时考虑多个参数的时候,某个参数w的梯度越大,却不意味着这一步的step(与learning rate正相关)也要越大。如下图PPT所示,注意黑色箭头指向的点,只考虑单个参数的话:
c点梯度大,所以需要较大的learning rate;a点梯度小,所以需要较小的learning rate。
而考虑到(a,c)这个跨参数点时,就恰恰相反了,由于c点离收敛点近,所以需要较小的learning rate;a点离收敛点远,所以需要较大的learning rate。
Adagrad的存在就解决了这个问题,分母处的开根号模拟的是二次微分。c的一次微分大,二次微分也大,所以梯度大的c点learning rate变得smaller;a的一次微分小,二次微分也小,所以梯度小的a点learning rate变得larger。这就与事实靠近了。
所以说Adagrad是考虑到跨参数的结果,表述了更接近事实的当前点与收敛点的距离(加入二次微分)。所谓的larger/smaller的比较对象是跨参数的learning rate与单参数的learning rate。
一句话总结:learning rate的大小取决于离收敛点是否近,而不取决于是否平坦。有的地方虽然陡峭但是接近收敛了,learning rate就应该是小的。下面的PPT也可以印证这句话的正确性。