Adptive Learning Rates
能够在update参数的同时,根据已知的信息更新learning rate,使得learning rate大小随着迭代次数的增加适应cost曲线的变化。
对adptive learning rate的要求:
- 能够在接近optimal的附近时,让desent的步伐越来越小,由此达到最优值
- 能够对不同的参数给出不一样的learning rate
- 能够降低saddle points,local optimal、gradient为正值,以及gradient 过小对结果的影响
- 等等,其他众多要求
原因:
1,为什么要满足要求1:
- learning rate越大desent的步伐越大,参数update的步伐越大,速度越快,我们希望在开始gradient的点远离optimal的时候,参数更新的速度快,步伐大;而在靠近optimal的时候步伐减小,避免无法到optimal的情况。
左图为learning rate大的情况,无法抵达cost曲线的最低点;右边为learning rate很小的情况,需要update很多次参数才能到达cost曲线的optimal(并且cost曲线很复杂的情况下,lr很小很容易停在saddlepoints, 浅的local optimal等位置)。
2, 为什么要满足要求2:
对于不同的参数
θ
i
\theta_i
θi,他们对应的cost曲线的偏分是不一样的:
比如最简单的linear regression中(n代表所有trainning examples):
L
(
w
,
b
)
=
∑
n
(
y
n
−
(
b
+
w
1
x
1
n
+
w
2
x
2
n
)
)
2
L(w, b) = \sum^n(y^{n}-(b+w_1x_{1}^n+w_2x_{2}^n))^2
L(w,b)=∑n(yn−(b+w1x1n+w2x2n))2
loss function对w和对b的偏分分别是:
∂
L
∂
w
1
=
−
2
∑
n
(
y
n
−
(
b
+
w
1
x
1
n
+
w
2
x
2
n
)
)
(
x
1
n
)
\frac{\partial L}{\partial w_1}=-2\sum^n(y^n-(b+w_1x_{1}^n+w_2x_{2}^n))(x_{1}^n)
∂w1∂L=−2∑n(yn−(b+w1x1n+w2x2n))(x1n)
∂
L
∂
w
2
=
−
2
∑
n
(
y
n
−
(
b
+
w
1
x
1
n
+
w
2
x
2
n
)
)
(
x
2
n
)
\frac{\partial L}{\partial w_2} = -2\sum^n(y^n-(b+w_1x_{1}^n+w_2x_{2}^n))(x_2^n)
∂w2∂L=−2∑n(yn−(b+w1x1n+w2x2n))(x2n)
两者的偏分完全不一样,也就是说cost曲线在对w和对b方向的陡峭程度是不一样的。对于不同的陡峭程度来说,同一个learning rate可能在较为平缓的曲线上是合适的,但是在更陡峭的曲线上是过大的,这就会导致上面learning rate过大时产生的问题。
如上图所示,learning rate相同且较大时,对于较为平滑的曲线(即loss function对参数的偏分较小)上能够抵达optimal,但是在更陡峭的曲线上无法抵达optimal。
对于这个问题我们其实有两种解决方法,第一种:调整参数,对于不同的参数w给与不同的learning rate;第二种:feature scaling,将同一example的features放大或者缩小到同一范围。
这个我们先讨论第一个方法,对不同的参数给与不同的learning rate。
3,为什么要满足第三点:
首先我们看下图了解什么是saddle point、local optimal、gradient为正值、以及gradient过小,以及他们对收敛的影响:
编号1:gradient过小
编号2:saddle
编号3:local optimal
编号4:gradient为正值
接下来的明天再写,灵魂画手今天要休息了