拉格朗日對偶(Lagrange duality)
對於凸優化問題來說,無約束的優化一般可以使用一階導數爲零求解。而對於有約束條件的凸優化來說,拉格朗日對偶理論是對凸的最優解的研究。
假設
f(x),ci(x),hj(x)
是定義在
Rn
上的連續可微函數(),考慮約束最優化問題:
minx∈Rns.t.f(x)ci(x)≤0,i=1,2,…,khj(x)=0,j=1,2,…,k(1)(2)(3)
拉格朗日乘子
引入一個人工構造的拉格朗日函數,廣義拉格朗日函數(generalized Lagrange function):
L(x,α,β)=f(x)+∑i=0kαici(x)+∑j=1lβjhj(x)
x=(x(1),x(2),…,x(n))∈Rn,αi,βj
是拉格朗日乘子,
特別要求
αi≥0
.
總結:
通過拉格朗日的辦法重新定義一個無約束問題這個無約束問題等價於原來的約束優化問題,從而將約束問題無約束化。
原問題與對偶問題
原問題(The primal problem)
minx[maxα,β:αi≥0L(x,α,β)]callthisθP(x)=minxθP(x)
在上述方程中,函數
θP(x)
稱爲原目標,右端無約束極小化問題就原問題。假設原問題的最優值爲:
p∗=minxθP(x)
對偶問題(The dual problem)
把上面式子最大化和最小化切換一下,就可以得到:
maxα,β:αi≥0[minxL(x,α,β)]call this θD(α,β)=maxα,β:αi≥0θD(α,β)
在上述方程中,函數
θD(x)
稱爲對偶目標,右邊就是有約束極大化問題即對偶問題。假設對偶問題的最優值爲:
d∗=maxα,β:αi≥0θD(α,β)
原始問題與對偶問題的關係
若原始問題與對偶問題都有最優值,則:
d∗=maxα,β:αi≥0minxL(x,α,β)≤minxmaxα,β:αi≥0L(x,α,β)=p∗(4)(5)
從上面能得出原始問題的最優值不小於對偶問題的最優值。但是我們要通過對偶問題來求解原始問題,就必須使得原始問題的最優值與對偶問題的最優值相等。上面簡單來說就是:
設
x∗α∗,β∗
分別是原始問題和對偶問題的可行解,如果
d∗=p∗
,那麼
x∗
和
α∗,β∗
都是原始問題和對偶問題的最優解。
總結:
顯然原問題與對偶問題是不等價的,我們需要讓他滿足一些條件來達到等價。而滿足
d∗=p∗
,即需要KKT條件。
KKT條件
對於原始問題和對偶問題,假設函數
f(x)
和
ci(x)
是凸函數,
hi(x)
是仿射函數(即由一階多項式構成的函數,
f(x)=Ax+b
,
A
是矩陣,
x
,
b
是向量;並且假設不等式約束
ci(x)
是嚴格可行的,即存在
x
,對所有
i
有
ci(x)<0
,則
x∗
和
α∗,β∗
分別是原始問題和對偶問題的最優解的充分必要條件是
x∗
和
α∗,β∗
滿足下面的 Karush-Kuhn-Tucker(KKT) 條件:
1.(Lagrangian stationarity) ∇xL(x∗,α∗,β∗)=02.(Complementary slackness) α∗ici(x)=0,i=1,2,…,k and hj(x∗)=0,j=1,2,…,l3.(Primal feasibility) ci(x)≤0,i=1,2,…,k4.(Dual feasibility) α∗i≥0,i=1,2,…,k(6)(7)(8)(9)
關於KKT 條件的理解:第一個條件是由解析函數的知識,對於各個變量的偏導數爲0。特別注意當
α∗i>0
時,由KKT鬆弛互補條件可知:
ci(x∗)=0
。(推導SVM中使用)
總結:
拉格朗日乘子法就是把原始的約束問題通過拉格朗日函數轉化爲無約束問題,如果原始問題求解棘手,在滿足KKT的條件下用求解對偶問題來代替求解原始問題,使得問題求解更加容易。
從等式優化——>不等式優化——>KKT條件理解拉格朗日乘子法,參考鏈接如下:
約束優化方法之拉格朗日乘子法與KKT條件
SVM(Support Vector Machine)
支持向量機即 Support Vector Machine,簡稱 SVM 。其目的就是尋找到一個超平面使樣本分成兩類,並且間隔(如何推導出間隔點我)最大。
線性可分SVM的推導
我們求得的w就代表着我們需要尋找的超平面的係數。用數學語言表達就是一個凸二次規劃問題(convex quadratic programming):
max1∥w∥,s.t.,yi(wTxi+b)≥1,i=1,…,n(10)(11)
通過求解這個問題,我們就可以找到一個間隔最大的分類器 ,如下圖所示,中間的紅色線條是最優超平面 :
這個問題等價於(爲了方便求解,加上平方,還有一個係數,顯然這兩個問題是等價的,因爲我們關心的並不是最優情況下目標函數的具體數值):
min12∥w∥2s.t.,yi(wTxi+b)≥1,i=1,…,n(12)(13)
提煉出線性可分情況下 SVM 的學習算法:
輸入:線性可分數據集
{(xi,yi)}Ni=1
1. 構造約束最優化問題:
minw,b12||w||2s.t. yi(w⋅xi+b)≥1, i=1,2,...,N
2. 求解得到
w∗,b∗
,分類超平面即爲
w∗⋅x+b∗=0
3. 對於新的觀測數據
x
,根據
f(x)=sign(w∗⋅x+b∗)f(x)=sign(w∗⋅x+b∗)
判斷其類別
y
即可.
現在回到之前的優化目標,也即原始問題
min12∥w∥2s.t.,yi(wTxi+b)≥1,i=1,…,n(14)(15)
這裏就可以使用拉格朗日乘子法了:
L(w,b,α)=12∥w∥2−∑i=1nαi(yi(wTxi+b)−1)
然後每對滿足原始問題與對偶問題的解都滿足 KKT 條件,即:
∇wL(w∗,b∗,a∗)=w∗−∑i=1Na∗iyixi=0∇bL(w∗,b∗,a∗)=−∑i=1Na∗iyi=0a∗i(yi(w∗⋅x+b∗)−1)=0yi(w∗⋅x+b∗)−1≥0ai≥0, i=1,2,...,N
這裏至少存在一個
a∗j>0
,使得
yj(w⋅xj+b)−1=0
,這便是支持向量,然後根據 KKT 條件可得:
∂L(w,b,a)∂w∂L(w,b,a)∂b=0⇒w−∑i=1Naiyixi=0=0⇒−∑i=1Naiyi=0w∗b∗=∑i=1Na∗iyixi=yj−∑i=1Na∗iyi(xi⋅xj)
將以上結果帶入
L(w,b,a)
會有:
現在的待優化函數 變爲:
maxai≥0 −12∑i=1N∑j=1N2∑i=1N∑j=1Naiajyiyj(xi⋅xj)+∑i=1N