首先介紹一個算法: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,第二步使用等式約束。