1. 程式人生 > 實用技巧 >Optimization和adptive learning rate的介紹(李巨集毅ML課程筆記)

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的大小對desent的影響
左圖為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) w1L=2n(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)
w2L=2n(yn(b+w1x1n+w2x2n))(x2n)

兩者的偏分完全不一樣,也就是說cost曲線在對w和對b方向的陡峭程度是不一樣的。對於不同的陡峭程度來說,同一個learning rate可能在較為平緩的曲線上是合適的,但是在更陡峭的曲線上是過大的,這就會導致上面learning rate過大時產生的問題。

相同learning rate在不同引數中的desent情況
如上圖所示,learning rate相同且較大時,對於較為平滑的曲線(即loss function對引數的偏分較小)上能夠抵達optimal,但是在更陡峭的曲線上無法抵達optimal。

對於這個問題我們其實有兩種解決方法,第一種:調整引數,對於不同的引數w給與不同的learning rate;第二種:feature scaling,將同一example的features放大或者縮小到同一範圍。

這個我們先討論第一個方法,對不同的引數給與不同的learning rate。

3,為什麼要滿足第三點:
首先我們看下圖瞭解什麼是saddle point、local optimal、gradient為正值、以及gradient過小,以及他們對收斂的影響:
saddle 等
編號1:gradient過小
編號2:saddle
編號3:local optimal
編號4:gradient為正值

接下來的明天再寫,靈魂畫手今天要休息了