機器學習(優化算法三)——座標軸下降

概述

Lasso迴歸採用的是座標軸下降法(Coordinate Descent, CD)是一種迭代法,通過啓發式的方法一步步的迭代求解函數的最小值,和梯度下降法(GD)不同的是,座標軸下降法是沿着座標軸的方向去下降,而不是採用梯度的負方向下降。

示意圖大致如下:
在這裏插入圖片描述

座標軸下降法利用EM算法的思想,在參數更新過程中,每次均先固定 m-1 個參數值,求解剩下的一個參數的局部最優解;然後進行迭代式的更新操作。

座標軸下降法的核心思想是多變量函數 F(X)F(X) 可以通過每次沿着一個方向優化來獲取最小值;其數學依據是:對於一個可微凸函數f(θ),其中θ爲n*1的向量,如果對於一個解 θ=(θ1,θ2,...,θn)θ=(θ_1 ,θ_2 ,...,θ_n ),使得 f(θ)f(θ) 在每一個座標軸 θi(i=1,2,..,n)θ_i (i=1,2,..,n) 上都能達到最小值,則 θ=(θ1,θ2,...,θn)θ=(θ_1 ,θ_2 ,...,θ_n) 就是的 f(θ)f(θ) 全局的最小值點。

在座標軸下降法中,優化方向從算法的一開始就固定了,即沿着座標的方向進行變化。在算法中,循環最小化各個座標方向的目標函數。即:如果 xkx^k 給定,那麼 xk+1x^{k+1} 的第i維度爲:
Xik+1=arg minyRf(x1k+1,...,xi1k+1,y,xi+1k,...,xnk) X_i^{k+1} = \argmin\limits_{y\in R} f \left( x_1^{k+1},..., x_{i-1}^{k+1},y, x_{i+1}^k,...,x_n^k \right)
因此,從一個初始的 x0x_0 求得函數 F(X)F(X) 的局部最優解,可以迭代獲取 x0x1x2...x_0、x_1、x_2...的序列,從而可以得到:
F(X0)F(X1)F(X2)...F(X^0) \geq F(X^1) \geq F(X^2) \geq ...

算法過程

  1. 給 θ 向量隨機選取一個初值,記做 θ0θ_0

  2. 對於第 k 輪的迭代,從 θ1kθ_1^k 開始計算,θnkθ_n^k 到爲止,計算公式如下:
    θ1k    =    arg minθ1J(θ1,θ2k1,θ3k1,...,θnk1)θ2k    =    arg minθ2J(θ1k,θ2,θ3k1,...,θnk1)......θnk    =    arg minθnJ(θ1k,θ2k,θ3k,...,θn) \begin{aligned} \theta_1^k \,\,\,\ &= \,\,\,\, \argmin \limits_{\theta_1} J \left( \theta _1,\theta_2^{k-1},\theta_3^{k-1},...,\theta_n^{k-1}\right) \\ \theta_2^k \,\,\,\ &= \,\,\,\, \argmin \limits_{\theta_2} J \left( \theta _1^k,\theta_2,\theta_3^{k-1},...,\theta_n^{k-1}\right) \\......\\ \theta_n^k \,\,\,\ &= \,\,\,\, \argmin \limits_{\theta_n} J \left( \theta _1^k,\theta_2^k,\theta_3^k,...,\theta_n \right) \end{aligned}

    檢查 θkθ_kθk1θ_{k−1} 向量在各個維度上的變化情況,如果所有維度的變化情況都比較小的話,那麼認爲結束迭代,否則繼續 k+1 輪的迭代。

備註:在求解每個參數局部最優解的時候可以求導的方式來求解。

座標軸下降法和梯度下降法的區別

座標軸下降法在每次迭代中,計算當前點處沿一個座標方向進行一維搜索 ,固定其它維度的座標方向,找到一個函數的局部極小值。而梯度下降總是沿着梯度的負方向求函數的局部最小值;

座標軸下降優化方法是一種非梯度優化算法。在整個過程中依次循環使用不同的座標方向進行迭代,一個週期的一維搜索迭代過程相當於一個梯度下降的迭代;

梯度下降是利用目標函數的導數來確定搜索方向的,該梯度方向可能不與任何座標軸平行。而座標軸下降法法是利用當前座標方向進行搜索,不需要求目標函數的導數,只按照某一座標方向進行搜索最小值;
兩者都是迭代算法,且每一輪迭代都需要O(mn)的計算量(m爲樣本數,n爲維度數)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章