機器學習數學:拉格朗日對偶問題
對偶問題是利用拉格朗日對偶性將原始問題轉換為對偶問題,通過解對偶問題得到原始問題的解。優點是:
- 對偶問題往往更易於求解
- 自然引入核函數,推廣到非線性分類問題的求解
原始問題
我們以硬間隔svm的原始問題為例,求解一個約束最優化問題:
(註:這個問題用二次規劃求解時複雜度與x的維度有關)
我們將這個問題一般化:
極小極大問題
引入拉格朗日函數,由於約束條件有k+l個,所以我們有:
(求對x有限制條件的f(x)的最優化問題轉為對 沒有限制條件的 極值問題)
其中 是拉格朗日乘子, ,我們再定義一個函數:
(註:在 條件下的最大值)
我們來研究這個函數:
- 假設有一個x,使得不滿足原始問題的約束條件,即有c(x)>0或者h(x)!=0,那麼上式求max的解為無窮大,因為可以取
- 相反,假設x滿足原始問題的約束條件,則上式最大值一定是 ,同時h(x)=0,所以上式的最大值的條件不存在了,即最大值就是一個定值f(x)
- 所以在x滿足原始問題約束的條件下,
所以,我們可以把原始問題中的s.t.條件去掉,得到原始問題的等價問題:
如果沒看懂,沒關係,現在來證明這個等式,即:
- :在x是常數的前提下,在取值範圍是max下標的條件下的,某個 使得後面括弧中取最大值。
- :在上一步對x取值全部遍歷之後,得到的所有的最大值中的一個最小值。
- 將 記做
- 如果x滿足 ,則 值無限大,則第一步就無解
- 如果x滿足 ,又有max下標的條件限制,則一定是 , ,則 有:
- 上式兩邊加 ,即證明得等價
綜上,我們得到原始問題等價於
對偶問題
(我可能是好多年沒碰高數了,上面一節要啰啰嗦嗦這麼多。。)
我們直接給出以下定理:
若原始問題和對偶問題都有最優值,則對偶問題最優值d? 原始問題最優值p?:
(通俗點就是寧做鳳尾不做雞頭,鳳尾(右)是原始問題,雞頭(左)是對偶問題)
定理1易證明,參考統計學習方法或技法視頻,此處證明略。
即我們如果把對偶問題解決了,那就能得到原始問題的下限。
為什麼求解對偶問題
對於對偶問題來說,我們求解最小化部分時沒有任何限制條件,而沒有限制條件的最小化問題的解一定是在求得x的偏導數=0這處,那我們就能得到一些等式,將這些等式代入拉格朗日函數中就可以簡化計算(svm中可以最終把min消去,且得到一個只與 有關的最大化問題)
KKT條件
推論1:設x?和α?,β?分別是原始問題和對偶問題的可行解,並且d?=p?,則x?和α?,β?分別是原始問題和對偶問題的最優解。
【即:如果某個解使得最優值相等,則這個解同時是原始和對偶問題的最優解】
定理2:考慮原始問題和對偶問題,假設函數f(x)和ci(x)是凸函數,hj(x)是仿射函數;並且假設不等式約束ci(x)是嚴格可行的,即存在x,對所有i有c_i(x)<0,則存在x?和α?,β?,使x?是原始問題的解,α?,β?是對偶問題的解,並且有p?=d?=L(x?,α?,β?).
【即:滿足某些條件下,最優解存在且使得最優值相等】
定理3: 分別是原始問題和對偶問題的解的充分必要條件是, 滿足下面的KKT條件:
上式條件中1和2是最重要的,3、4、5都是將原始問題表示成拉格朗日函數時的條件。2稱為對偶互補條件,根據此條件,當 。
【即:在滿足KKT條件下,原始問題的求解可以轉換成對偶問題來求解,強對偶成立(等號成立),而強對偶成立,又一定滿足kkt條件】
兩天了,基本理解並寫完。
既然都看到這兒了,少年點個贊可好?感謝!
done 2017年11月23日16:51:58
推薦閱讀:
※降維技術解析:PCA, t-SNE and Auto Encoders
※機器學習之邏輯回歸分類
※Paper Reading | 讓深度學習更高效運行的兩個視角
※《機器學習基石》課程學習總結(三)
※關於不平衡數據集以及代價敏感學習的探討
TAG:機器學習 |