步长(学习率)
在进行梯度下降法的过程中,我们需要通过调整
η
\eta
η学习率的值来调整参数每次要走的距离。适当的调整
η
\eta
η可以更准确的找到
L
L
L的最小值以及参数值。
下面需要注意调整步长
η
\eta
η(往下一步要走的距离)的大小:
不同大小的
η
\eta
η可能会造成下面图中的情况
一种方法是将参数的变化与函数
L
L
L的改变的情况可视化
- 当 η \eta η太小,则L变化缓慢,对应下图中绿色线条
- 当 η \eta η比较大,则可能上面图中跳出极小值点,找不到该点(相当于步子迈大了从坑上跨过去)
- 当 η \eta η过大时,L将会越变越大,需要重新调整(此时相当于不仅跨过了坑还跨到山上去了)
自动调试 η \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+1←wk−ηkgk,其中gk表示第k个值的梯度。
现做调整:
w
k
+
1
←
w
k
−
η
k
σ
k
g
k
w^{k+1} \leftarrow w^{k}-\frac{\eta^{k}}{\sigma^{k}} g^{k}
wk+1←wk−σ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=0∑k(gi)2,因为0到k一共k+1个值,所以乘k+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}}
w1←w0−σ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]}
w2←w1−σ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]}
w3←w2−σ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+1←wk−σkηkgk,σk=k+11i=0∑k(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+1←wk−∑i=0k(gi)2ηgk
RMSProp
Adagrad适用与二次微分值固定(用一次微分估测二次微分),那么二次微分不固定时,可以使用RMSProp。
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}
w1←w0−σ0ηg0w2←w1−σ1ηg1w3←w2−σ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+1←wt−σtηgtσt=α(σt−1)2+(1−α)(gt)2其中这里的
σ
与
A
d
g
r
a
d
中
σ
\sigma与Adgrad中\sigma
σ与Adgrad中σ的计算方式不太一样。
此外,还有很多调整
η
\eta
η的方法。