步长(学习率learning rate)

步长(学习率)

在进行梯度下降法的过程中,我们需要通过调整 η \eta η学习率的值来调整参数每次要走的距离。适当的调整 η \eta η可以更准确的找到 L L L的最小值以及参数值。
下面需要注意调整步长 η \eta η(往下一步要走的距离)的大小:
不同大小的 η \eta η可能会造成下面图中的情况
步长(学习率learning rate)_第1张图片
一种方法是将参数的变化与函数 L L L的改变的情况可视化

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

步长(学习率learning rate)_第2张图片

自动调试 η \eta η的方法

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

Adagrad

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

RMSProp

Adagrad适用与二次微分值固定(用一次微分估测二次微分),那么二次微分不固定时,可以使用RMSProp。
步长(学习率learning rate)_第3张图片
w 1 ← w 0 − η σ 0 g 0 σ 0 = g 0 w 2 ← w 1 − η σ 1 g 1 σ 1 = α ( σ 0 ) 2 + ( 1 − α ) ( g 1 ) 2 w 3 ← w 2 − η σ 2 g 2 σ 2 = α ( σ 1 ) 2 + ( 1 − α ) ( g 2 ) 2 \begin{array}{ll}{w^{1} \leftarrow w^{0}-\frac{\eta}{\sigma^{0}} g^{0}} & {\sigma^{0}=g^{0}} \\ {w^{2} \leftarrow w^{1}-\frac{\eta}{\sigma^{1}} g^{1}} & {\sigma^{1}=\sqrt{\alpha\left(\sigma^{0}\right)^{2}+(1-\alpha)\left(g^{1}\right)^{2}}} \\ {w^{3} \leftarrow w^{2}-\frac{\eta}{\sigma^{2}} g^{2}} & {\sigma^{2}=\sqrt{\alpha\left(\sigma^{1}\right)^{2}+(1-\alpha)\left(g^{2}\right)^{2}}}\end{array} w1w0σ0ηg0w2w1σ1ηg1w3w2σ2ηg2σ0=g0σ1=α(σ0)2+(1α)(g1)2 σ2=α(σ1)2+(1α)(g2)2
w t + 1 ← w t − η σ t g t σ t = α ( σ t − 1 ) 2 + ( 1 − α ) ( g t ) 2 w^{t+1} \leftarrow w^{t}-\frac{\eta}{\sigma^{t}} g^{t} \quad \sigma^{t}=\sqrt{\alpha\left(\sigma^{t-1}\right)^{2}+(1-\alpha)\left(g^{t}\right)^{2}} wt+1wtσtηgtσt=α(σt1)2+(1α)(gt)2 其中这里的 σ 与 A d g r a d 中 σ \sigma与Adgrad中\sigma σAdgradσ的计算方式不太一样。
此外,还有很多调整 η \eta η的方法。

你可能感兴趣的:(Machine,Learning)