机器学习 Optimizer optimization的方法 Adaptive Learning rate

当Loss减小,且趋于平稳时,可能是gradient 趋近于0,Loss处于critical point;也可能是gradient并不为0,在error surface谷壁间来回振荡,导致Loss无法继续降低。
training stuck ≠ Small Gradient多数时候training在未到critical point的时候,Loss就几乎停止变化了。举如下例子以解释:
黑点为起始处,黄色叉为目标点,现要求从起始处移动到目标点。
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第1张图片
learning rate决定移动的步伐
左图为learning rate = 10-2,参数在山壁两端不断振荡,没办法移动到目标点
右图为learning rate = 10-7,参数先沿着gradient大的崖壁滑下,但在向目标点左行时由于步伐太小导致无法到达。
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第2张图片

Different Parameters need different learning rate
如下图所示,我们可以调整learning rate,使得在陡峭的位置:η小;在平缓的位置:η大
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第3张图片
原本的gradient descent计算如下图所示:机器学习 Optimizer optimization的方法 Adaptive Learning rate_第4张图片
现为控制η大小,再添加一个参数σ
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第5张图片
对于learning rate的控制有三种方法:
(1)Root Mean Square
计算方式如下图所示:
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第6张图片
当error surface表面越平坦,gradient越小,计算出的σ越小,learning rate就越大
当error surface表面越陡峭,gradient越大,计算出的σ越大,learning rate就越小
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第7张图片
此方法在Adagrad中使用

(2)RMSProp
RMSProp可以自动调节Learning rate的大小。
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第8张图片
α为hyperparameter,按照重要性对比来人工调节大小,且0<α<1
此重要性对比是指之前算出的gradient和新算出的gradient之间的重要性对比,若之前的gradient更重要,则使α趋近于1;若新算出的gradient更重要,则使α趋近于0。
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第9张图片
新算出的gradient比起σ(之前算出的gradient)影响更大。
如上图所示,黑线代表error surface。当处于平坦位置时,gradient小,代表σ小,则表示update参数的step(learning rate)很大;处于陡峭位置时,gradient大,调整α变小,使σ快速变大,step则会迅速变小。若不调整,则小球会迅速飞出去。

(3)Adam:RMSProp + Momentum
Optimization的策略称为Optimizer。最常用的策略为Adam
Adam需要考虑RMSProp和Momentum

当不使用Adaptive Learning Rate时:
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第10张图片
当使用Adaptive Learning Rate 时:
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第11张图片
从起始处向目标点出发,在刚开始沿着纵轴方向行走时,gradient很大(此过程称为step1)。向左走时,纵向的gradient变的很小(此过程称为step2)。刚开始向左走时,step1的gradient能中和step2的gradient。在无法中和的最后一段,gradient变回很小,σ因此也变小,learning rate变得很大,造成了振荡现象。

Learning Rate Scheduling可解决此现象
机器学习 Optimizer optimization的方法 Adaptive Learning rate_第12张图片
使用Warm up的原因是:σt是一个统计结果,代表某方向的位置陡峭或平滑程度,但统计结果数目足够时统计才会精准,而一开始统计是不精准的,则不可让learning rate离初始值太远

你可能感兴趣的:(机器学习,深度学习,人工智能)