(转载)机器学习知识点(十二)坐标下降法(Coordinate descent)
首先介紹一個算法:coordinate-wise minimization
問題的描述:給定一個可微的凸函數,如果在某一點x,使得f(x)在每一個坐標軸上都是最小值,那么f(x)是不是一個全局的最小值。
形式化的描述為:是不是對于所有的d,i都有
這里的代表第i個標準基向量。
答案為成立。
這是因為:
但是問題來了,如果對于凸函數f,若不可微該會怎樣呢?
答案為不成立,上面的圖片就給出了一個反例。
那么同樣的問題,現在,其中g是可微的凸函數,每一個hi都是凸的?
答案為成立。
證明如下,對每一個y
坐標下降(Coordinate descent):
這就意味著,對所有的,其中g是可微的凸函數,每一個hi都是凸的,我們可以使用坐標下降尋求一個最小值,我們從一個最初的猜想開始,對k進行循環:
每一次我們解決了,我們都會使用新的值。
Tseng (2001)的開創性工作證明:對這種f(f在緊集上連續,且f到達了其最小值),的極限值,k=1,2,3….是f的一個最小元(minimizer)。
在實分析領域:
隨后收斂與x*( Bolzano-Weierstrass)
收斂于f*( monotoneconvergence)
其中:
坐標下降的順序是任意的,可以是從1到n的任意排列。
可以在任何地方將單個的坐標替代成坐標塊
關鍵在于一次一個地更新,所有的一起更新有可能會導致不收斂
我們現在討論一下坐標下降的應用:
線性回歸:
令,其中,A有p列:
最小化xi,對所有的xj,j不等于i:
解得:
坐標下降重復這個更新對所有的
對比坐標下降與梯度下降在線性回歸中的表現(100個實例,n=100,p=20)
將坐標下降的一圈與梯度下降的一次迭代對比是不是公平呢?是的。
其中r=y-Ax。每一次的坐標更新需要O(n)個操作,其中O(n)去更新r,O(n)去計算,所以一圈就需要O(np),跟梯度下降是一樣的。
我們用相同的例子,用梯度下降進行比較,似乎是與計算梯度下降的最優性相違背。
那么坐標下降是一個一階的方法嗎?事實上不是,它使用了比一階更多的信息。
現在我們再關注一下支持向量機:
SVM對偶中的坐標下降策略:
SMO(Sequentialminimal optimization)算法是兩塊的坐標下降,使用貪心法選擇下一塊,而不是用循環。
回調互補松弛條件(complementaryslackness conditions):
v,d,s是原始的系數,截距和松弛,其中,使用任何的(1)中i使得來計算d,利用(1)(2)來計算2.
SMO重復下面兩步:
選出不滿足互補松弛的αi,αj
最小化αi,αj使所有的變量滿足條件
第一步使用啟發式的方法貪心得尋找αi,αj,第二步使用等式約束。
——————維基百科的解釋——————
坐標下降優化方法是一種非梯度優化算法。為了找到一個函數的局部極小值,在每次迭代中可以在當前點處沿一個坐標方向進行一維搜索。在整個過程中循環使用不同的坐標方向。一個周期的一維搜索迭代過程相當于一個梯度迭代。
坐標下降法基于最小化多變量目標函數可以通過每次沿一個方向最小化目標函數來求解。與梯度方法的變化的梯度方向不同,坐標下降方法固定其他的梯度方向。例如,坐標方向為e1,e2,…,en。每次沿一個坐標方向最小化目標函數,循環地沿每個坐標方向進行計算。如果給定Xk,Xk+1的第i個坐標由如下給定:
從初始值X0求取F的局部值,然后迭代的求取一個序列X0,X1,X2,…
通過在每次迭代中進行一維搜索,可以有如下結論:
It can be shown that this sequence has similar convergence properties as steepest descent. No improvement after one cycle of?line search?along coordinate directions implies a stationary point is reached.
This process is illustrated below.
????其實,gradient descent 方法是利用目標函數的導數(梯度)來確定搜索方向的,而該梯度方向可能不與任何坐標軸平行。而coordinate descent方法是利用當前坐標系統進行搜索,不需要求目標函數的導數,只按照某一坐標方向進行搜索最小值。
總結
以上是生活随笔為你收集整理的(转载)机器学习知识点(十二)坐标下降法(Coordinate descent)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转载)机器学习知识点(十一)隐马尔可夫
- 下一篇: (转载)机器学习知识点(十三)吉布斯采样