algo_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,第二步使用等式約束。

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