關於梯度尋優的理解

問題:爲什麼沿着函數梯度的方向蹦,函數值一定會往增大的方向走或者走向收斂?

假設
設函數爲f(x)f(x)f(x)f(x)的梯度爲f(x)f^{'}(x),函數上有一點爲x0x_0,相應的函數值和梯度值爲f(x0)f(x0)f(x_0)、f^{'}(x_0)

分類討論

f(x)f^{'}(x)無非三種狀態:負數、0、正數。

  • f(x0)<0f^{'}(x_0)<0時,f(x)f(x)遞減,所以 x0>x0+f(x0)x_0>x_0+f^{'}(x_0),所以 f(x0)<f(x0+f(x0))f(x_0)<f(x_0+f^{'}(x_0))
  • f(x0)=0f^{'}(x_0)=0 時,x0=x0+f(x0)x_0=x_0+f^{'}(x_0),所以會一直原地踏步,也就是所謂的收斂了;
  • f(x0)>0f^{'}(x_0)>0時,f(x)f(x)遞增,所以 x0<x0+f(x0)x_0<x_0+f^{'}(x_0),所以 f(x0)<f(x0+f(x0))f(x_0)<f(x_0+f^{'}(x_0))

應用

  • 尋求f(x)f(x)的極小值時,應向梯度的反方向尋找,即 xn+1=xnαf(xn)x_{n+1}=x_{n}-\alpha f^{'}(x_n)
  • 尋求f(x)f(x)的極大值時,應向梯度的方向尋找,即 xn+1=xn+αf(xn)x_{n+1}=x_{n}+ \alpha f^{'}(x_n)
  • 判斷找到極值的條件即f(x0)=0f^{'}(x_0)=0

一般尋找的時候會設個步長α\alpha,也稱學習率。就是每次邁的步子大小,步子邁大了,會來回震盪;邁小了,收斂速度會慢。

發佈了35 篇原創文章 · 獲贊 51 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章