Optimization和adptive learning rate的介紹(李巨集毅ML課程筆記)
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
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)
兩者的偏分完全不一樣,也就是說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為正值
接下來的明天再寫,靈魂畫手今天要休息了