步长(学习率learning rate)

匿名 (未验证) 提交于 2019-12-02 23:52:01
版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

步长(学习率)

在进行梯度下降法的过程中,我们需要通过调整η\eta学习率的值来调整参数每次要走的距离。适当的调整η\eta可以更准确的找到LL的最小值以及参数值。
下面需要注意调整步长η\eta(往下一步要走的距离)的大小:
不同大小的η\eta可能会造成下面图中的情况

一种方法是将参数的变化与函数LL的改变的情况可视化

  • η\eta太小,则L变化缓慢,对应下图中绿色线条
  • η\eta比较大,则可能上面图中跳出极小值点,找不到该点(相当于步子迈大了从坑上跨过去)
  • η\eta过大时,L将会越变越大,需要重新调整(此时相当于不仅跨过了坑还跨到山上去了)

自动调试η\eta的方法

通常情况下,随着参数的更新会越来越小。(越来越接近目标,要调小步长)

Adagrad

一般情况:
wk+1wkηkgk,gkʾkֵ w^{k+1} \leftarrow w^{k}-\eta^{k} g^{k},\\其中g^k表示第k个值的梯度。
现做调整:wk+1wkηkσkgk w^{k+1} \leftarrow w^{k}-\frac{\eta^{k}}{\sigma^{k}} g^{k}
这里,ηkσk\frac{\eta^{k}}{\sigma^{k}}就是这次的步长(学习率),σk\sigma^k表示过去求过的梯度值的平方和求均值然后开根号,
即第k+1k+1次的ηt=ηk+1σk=1k+1[(g0)2+(g1)2+...+(gk)2]=1k+1i=0k(gi)2Ϊ0kһk+1ֵ1k+1\eta^{t}=\frac{\eta}{\sqrt{k+1}};\\\sigma^k=\sqrt{\frac{1}{k+1}[(g^0)^2+(g^1)^2+...+(g^k)^2]}=\sqrt{\frac{1}{k+1} \sum_{i=0}^{k}\left(g^{i}\right)^{2}},\\因为0到k一共k+1个值,所以乘\frac{1}{k+1};
举例:
w1w0η0σ0g0,σ0=(g0)2 w^{1} \leftarrow w^{0}-\frac{\eta^{0}}{\sigma^{0}} g^{0} \quad ,\sigma^{0}=\sqrt{\left(g^{0}\right)^{2}}
w2w1η1σ1g1,σ1=12[(g0)2+(g1)2] w^{2} \leftarrow w^{1}-\frac{\eta^{1}}{\sigma^{1}} g^{1} ,\quad \sigma^{1}=\sqrt{\frac{1}{2}\left[\left(g^{0}\right)^{2}+\left(g^{1}\right)^{2}\right]}
w3w2η2σ2g2,σ2=13[(g0)2+(g1)2+(g2)2] w^{3} \leftarrow w^{2}-\frac{\eta^{2}}{\sigma^{2}} g^{2} ,\quad \sigma^{2}=\sqrt{\frac{1}{3}\left[\left(g^{0}\right)^{2}+\left(g^{1}\right)^{2}+\left(g^{2}\right)^{2}\right]}
wk+1wkηkσkgk,σk=1k+1i=0k(gi)2 w^{k+1} \leftarrow w^{k}-\frac{\eta^{k}}{\sigma^{k}} g^{k} ,\quad \sigma^{k}=\sqrt{\frac{1}{k+1} \sum_{i=0}^{k}\left(g^{i}\right)^{2}}
观察上面ηk,σk\eta^k,\sigma^k两式,发现有可约分项1k+1\sqrt{\frac{1}{k+1}}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!