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.
梯度下降法和隨機梯度下降法
批量梯度下降法 batch gradient descent 在更新引數時使用所有的樣本來進行更新 隨機梯度下降法 stochastic gradient descent 求梯度時沒有用所有的m個樣本的資料,而是僅僅選取乙個樣本j來求梯度。小批量梯度下降法 mini batch gradient d...
梯度下降法和牛頓下降法
泰勒公式可以表示為 f boldsymbol boldsymbol f boldsymbol boldsymbol boldsymbol frac boldsymbol boldsymbol boldsymbol o boldsymbol tag 在 2 中 boldsymbol x 1,x n b...
梯度下降法
梯度下降法 是乙個一階 最優化演算法 通常也稱為 最速下降法 我之前也沒有關注過這類演算法。最近,聽史丹福大學的機器學習課程時,碰到了用梯度下降演算法求解線性回歸問題,於是看了看這類演算法的思想。今天只寫了一些入門級的知識。我們知道,函式的曲線如下 程式設計實現 c code cpp view pl...