座標下降與梯度下降

風景不在對岸wj發表於2017-09-06
本文是對座標上升、座標下降及梯度下降的關係的個人總結,歡迎大家討論。

1.座標上升法:座標上升與座標下降可以看做是一對,座標上升是用來求解max最優化問題,座標下降用於求min最優化問題,但是兩者的執行步驟類似,執行原理相同。
例如要求接一個max_f(x1,x2,...,xn)的問題,其中各個xi是自變數,如果應用座標上升法求解,其執行步驟就是:
1.首先給定一個初始點,如 X_0=(x1,x2,...,xn);
2.for dim=1:n
固定xi;(其中i是除dim以外的其他維度)
以x_dim為自變數求取使得f取得最大值的x_dim;
  end 
3.迴圈執行步驟2,直到f的值不再變化或變化很小。

總結:其關鍵點就是每次只變換一個維度xi,而其他維度都用當前值進行固定,如此迴圈迭代,最後得到最優解。

2.座標下降法與上述過程類似,不過在第2步求取最優x_dim的值時,變為使得f最小的x_dim;

3.梯度下降法又稱為最速下降法,他也是下降法,不過和座標下降法的主要區別就是多了一個下降方向的選取,在座標下降中下降方向是沿著每一維的座標軸方向進行的,也就是方向是類似於(0,0,1,0,0)、(0,0,0,1,0)(假設是5維)這種形式的,而梯度下降法中,下降方向變換為函式在當前點的梯度方向,當維度很高時,梯度下降的優勢就要比座標下降明顯很多。
  梯度下降法的一個出發點是: f沿著f的梯度反方向下降最快。 這一點用文字而言,比較好理解,就是沿著f的梯度反方向搜尋前進直到最優就是了。如果用步驟來描述的話就是:
  1.給定一個初始值,如 X_0=(x1,x2,...,xn);
  2.求f在此點的梯度 f'(X_0);
  3.確定下一點的位置: X_1 = X_0 - a·f'(X_0);(a>0且一般都比較小,相當於在f的梯度反方向走了較 小的一步)
   4.求f(X_1),如果與f(X_0)的差在一定範圍內,則停止,否則令X_0=X_1,迴圈2,3,4.

相關文章