Lagrange Duality
來自專欄 機器學習
SVM問題定義、推導中我們給出了SVM問題的定義,並給出了優化目標和約束,為了快速高效地求解SVM,會用到拉格朗日對偶,本節對拉格朗日對偶進行介紹,主要內容來自於《凸優化》和Andrew課堂。
1. 原始問題
假設 是定義在 上的連續可微函數 ,考慮約束最優化問題
稱為約束最優化問題的原始問題。如果不考慮約束條件,原始問題就直接是:
利用其連續可微的性質直接對 進行假設,然後令倒數為0即可得到最優解。但是由於約束條件的存在,難以直接求解,如果能有辦法把約束條件去掉就非常方便了,那麼Lagrange Function就是為了去掉約束條件進行求解的。
我們定義Lagrangian為:
其中 稱為Lagrange multipliers,我們可以將L的偏導數設置為0來進行求解
將Lagrangian推廣到約束優化問題,其不光有equality constraints but also inequality constraints. 我們稱下面為primal optimization problem:
我們定義Generalized Lagrangian為
其中 均為Lagrange Multipliers,我們將 看作是關於 的函數,要求取最大值,在給定某 的情況下,有以下等式:
其中下標P表示「primal」,表示原始問題,那麼 就變成了只有 的函數,我們從 是否滿足約束條件來分析這個函數:
- 如果 violate constraint, 那麼存在以下兩種情況:
- ,那麼令 ,則
- ,很容易取得 使得
- 如果w滿足約束,那麼
因此, 對於所有滿足約束的 所得到的結果與我們的目標函數相同,並且如果約束不滿足則取正無窮,因此,我們考慮以下最小化問題,與我們的原問題相同,並且解也相同:
假設原始問題的最優解為
原始問題討論就到這裡,做一個總結:通過拉格朗日這位大神的辦法重新定義一個無約束問題(大家都喜歡無拘無束),這個無約束問題等價於原來的約束優化問題,從而將約束問題無約束化!
2. Dual Problem
現在我們定義原始問題的對偶問題,稍微與上述不同,定義:
其中 表示「Dual」,在 中我們針對 進行優化,而這裡我們針對 進行優化,當 確定之後,最小值就只與 相關,因此是一個關於 相關的函數。
我們給出dual optimization problem:
這與我們的原始問題相同,除了max和min的順序進行了調換,我們將對偶問題的最優值定義為:
3. dual problem 與 primal problem的關係
定理:如果原始問題和對偶問題都有最優值,那麼其最優解滿足:
證明:對任意的 ,有
即
由於原始問題和對偶問題都有最優解,因此
也就是說原始問題的最優值不小於對偶問題的最優值,到那時我們要通過對偶問題求解原始問題,就必須使得原始問題的最優解與對偶問題的最優解相等,於是可以得到以下推論。
推論:假設 是原始問題的可行解, 是對偶問題的可行解,如果 ,那麼 是原始問題的最優解, 是對偶問題的最優解。
所以當原始問題和對偶問題的最優值相等時,可以用求解對偶問題來求解原始問題,因為對偶問題求解比直接求解原始問題更為簡單,但是原始問題滿足什麼樣的條件才能使得 呢?這就是KKT條件。
4. KKT條件
定理1:對於原始問題和對偶問題,假設 是convex function,並且 是affine(仿射函數, 即由一階多項式構成的函數,f(x)=Ax + b, A是矩陣,x,b是向量),並且假設不等式約束 是嚴格可行的,即存在 滿足 ,則存在 使得 是原始問題的最優解, 是對偶問題的最優解,並且 。
上述定理1說明了最優解存在,那麼下面的定理2來說明什麼樣的解是最優解,即滿足KTT條件。定理2是KTT條件,用來說明什麼樣的解是最優解
定理2:對於原始問題和對偶問題,假設 是convex function,並且 是affine(仿射函數, 即由一階多項式構成的函數,f(x)=Ax + b, A是矩陣,x,b是向量),並且假設不等式約束 是嚴格可行的,即存在 滿足 ,則存在 分別是原始問題和對偶問題的最優解的充分必要條件是 滿足以下條件
其中的式5稱為KTT dual complementarity condition,這意味著如果 ,則 ;這意味著不等式約束變成了等式約束,後面這對於解釋SVM只有少量支持向量是很重要的。同時在隨後的SMO演算法中,KTT dual complementarity condition也給我們收斂性測試。
5. 一些注意
這裡將 看作變數固定下來,然後求取 來使得 因。此 是只包含了 的函數;同樣 是只包含了 的函數
例如假設 ,那麼 就等於求解二次方程,得到的
推薦閱讀:
※一文概覽用於數據集增強的生成對抗網路架構
※相比於深度學習,傳統的機器學習演算法難道就此沒落了嗎,還有必要去學習嗎?
※梯度下降及其優化演算法