概述
Lasso迴歸採用的是座標軸下降法(Coordinate Descent, CD)是一種迭代法,通過啓發式的方法一步步的迭代求解函數的最小值,和梯度下降法(GD)不同的是,座標軸下降法是沿着座標軸的方向去下降,而不是採用梯度的負方向下降。
示意圖大致如下:
座標軸下降法利用EM算法的思想,在參數更新過程中,每次均先固定 m-1 個參數值,求解剩下的一個參數的局部最優解;然後進行迭代式的更新操作。
座標軸下降法的核心思想是多變量函數 F(X) 可以通過每次沿着一個方向優化來獲取最小值;其數學依據是:對於一個可微凸函數f(θ),其中θ爲n*1的向量,如果對於一個解 θ=(θ1,θ2,...,θn),使得 f(θ) 在每一個座標軸 θi(i=1,2,..,n) 上都能達到最小值,則 θ=(θ1,θ2,...,θn) 就是的 f(θ) 全局的最小值點。
在座標軸下降法中,優化方向從算法的一開始就固定了,即沿着座標的方向進行變化。在算法中,循環最小化各個座標方向的目標函數。即:如果 xk 給定,那麼 xk+1 的第i維度爲:
Xik+1=y∈Rargminf(x1k+1,...,xi−1k+1,y,xi+1k,...,xnk)
因此,從一個初始的 x0 求得函數 F(X) 的局部最優解,可以迭代獲取 x0、x1、x2...的序列,從而可以得到:
F(X0)≥F(X1)≥F(X2)≥...
算法過程
-
給 θ 向量隨機選取一個初值,記做 θ0 ;
-
對於第 k 輪的迭代,從 θ1k 開始計算,θnk 到爲止,計算公式如下:
θ1k θ2k ......θnk =θ1argminJ(θ1,θ2k−1,θ3k−1,...,θnk−1)=θ2argminJ(θ1k,θ2,θ3k−1,...,θnk−1)=θnargminJ(θ1k,θ2k,θ3k,...,θn)
檢查 θk 和 θk−1 向量在各個維度上的變化情況,如果所有維度的變化情況都比較小的話,那麼認爲結束迭代,否則繼續 k+1 輪的迭代。
備註:在求解每個參數局部最優解的時候可以求導的方式來求解。
座標軸下降法和梯度下降法的區別
座標軸下降法在每次迭代中,計算當前點處沿一個座標方向進行一維搜索 ,固定其它維度的座標方向,找到一個函數的局部極小值。而梯度下降總是沿着梯度的負方向求函數的局部最小值;
座標軸下降優化方法是一種非梯度優化算法。在整個過程中依次循環使用不同的座標方向進行迭代,一個週期的一維搜索迭代過程相當於一個梯度下降的迭代;
梯度下降是利用目標函數的導數來確定搜索方向的,該梯度方向可能不與任何座標軸平行。而座標軸下降法法是利用當前座標方向進行搜索,不需要求目標函數的導數,只按照某一座標方向進行搜索最小值;
兩者都是迭代算法,且每一輪迭代都需要O(mn)的計算量(m爲樣本數,n爲維度數)