拉格朗日对偶(转)
1.原始問題
假設(shè)是定義在上的連續(xù)可微函數(shù)(為什么要求連續(xù)可微呢,后面再說,這里不用多想),考慮約束最優(yōu)化問題:
稱為約束最優(yōu)化問題的原始問題。
現(xiàn)在如果不考慮約束條件,原始問題就是:
因?yàn)榧僭O(shè)其連續(xù)可微,利用高中的知識(shí),對(duì)求導(dǎo)數(shù),然后令導(dǎo)數(shù)為0,就可解出最優(yōu)解,很easy. 那么,問題來了(呵呵。。。),偏偏有約束條件,好煩啊,要是能想辦法把約束條件去掉就好了,bingo! 拉格朗日函數(shù)就是干這個(gè)的。
?
?
引進(jìn)廣義拉格朗日函數(shù)(generalized Lagrange function):
不要怕這個(gè)式子,也不要被拉格朗日這個(gè)高大上的名字給唬住了,讓我們慢慢剖析!這里,是拉格朗日乘子(名字高大上,其實(shí)就是上面函數(shù)中的參數(shù)而已),特別要求.
?
?
現(xiàn)在,如果把看作是關(guān)于的函數(shù),要求其最大值,即
再次注意是一個(gè)關(guān)于的函數(shù),經(jīng)過我們優(yōu)化(不要管什么方法),就是確定的值使得取得最大值(此過程中把看做常量),確定了的值,就可以得到的最大值,因?yàn)橐呀?jīng)確定,顯然最大值就是只和有關(guān)的函數(shù),定義這個(gè)函數(shù)為:
其中?
?
下面通過是否滿足約束條件兩方面來分析這個(gè)函數(shù):
- 考慮某個(gè)違反了原始的約束,即或者,那么:
注意中間的最大化式子就是確定的之后的結(jié)果,若,則令,如果,很容易取值使得
?
- 考慮滿足原始的約束,則:,注意中間的最大化是確定的過程,就是個(gè)常量,常量的最大值顯然是本身.
?
通過上面兩條分析可以得出:
那么在滿足約束條件下:
即與原始優(yōu)化問題等價(jià),所以常用代表原始問題,下標(biāo) P 表示原始問題,定義原始問題的最優(yōu)值:
?
?
原始問題討論就到這里,做一個(gè)總結(jié):通過拉格朗日這位大神的辦法重新定義一個(gè)無約束問題(大家都喜歡無拘無束),這個(gè)無約束問題等價(jià)于原來的約束優(yōu)化問題,從而將約束問題無約束化!
?
2.對(duì)偶問題
定義關(guān)于的函數(shù):
注意等式右邊是關(guān)于的函數(shù)的最小化,確定以后,最小值就只與有關(guān),所以是一個(gè)關(guān)于的函數(shù).?
?
考慮極大化,即
這就是原始問題的對(duì)偶問題,再把原始問題寫出來:
形式上可以看出很對(duì)稱,只不過原始問題是先固定中的,優(yōu)化出參數(shù),再優(yōu)化最優(yōu),而對(duì)偶問題是先固定,優(yōu)化出最優(yōu),然后再確定參數(shù).
定義對(duì)偶問題的最優(yōu)值:
?
3. 原始問題與對(duì)偶問題的關(guān)系
定理:若原始問題與對(duì)偶問題都有最優(yōu)值,則
證明:對(duì)任意的和,有
即
由于原始問題與對(duì)偶問題都有最優(yōu)值,所以
即
也就是說原始問題的最優(yōu)值不小于對(duì)偶問題的最優(yōu)值,但是我們要通過對(duì)偶問題來求解原始問題,就必須使得原始問題的最優(yōu)值與對(duì)偶問題的最優(yōu)值相等,于是可以得出下面的推論:
推論:設(shè)分別是原始問題和對(duì)偶問題的可行解,如果,那么分別是原始問題和對(duì)偶問題的最優(yōu)解。
所以,當(dāng)原始問題和對(duì)偶問題的最優(yōu)值相等:時(shí),可以用求解對(duì)偶問題來求解原始問題(當(dāng)然是對(duì)偶問題求解比直接求解原始問題簡(jiǎn)單的情況下),但是到底滿足什么樣的條件才能使的呢,這就是下面要闡述的?KKT 條件
?
4. KKT 條件
定理:對(duì)于原始問題和對(duì)偶問題,假設(shè)函數(shù)和是凸函數(shù),是仿射函數(shù)(即由一階多項(xiàng)式構(gòu)成的函數(shù),f(x)=Ax + b, A是矩陣,x,b是向量);并且假設(shè)不等式約束是嚴(yán)格可行的,即存在,對(duì)所有有,則存在,使得是原始問題的最優(yōu)解,是對(duì)偶問題的最優(yōu)解,并且
?
?
定理:對(duì)于原始問題和對(duì)偶問題,假設(shè)函數(shù)和是凸函數(shù),是仿射函數(shù)(即由一階多項(xiàng)式構(gòu)成的函數(shù),f(x)=Ax + b, A是矩陣,x,b是向量);并且假設(shè)不等式約束是嚴(yán)格可行的,即存在,對(duì)所有有,則分別是原始問題和對(duì)偶問題的最優(yōu)解的充分必要條件是滿足下面的Karush-Kuhn-Tucker(KKT)條件:
注意,下面的第四行使用了愛因斯坦求和約定,省略了Σ符號(hào)
關(guān)于KKT 條件的理解:前面三個(gè)條件是由解析函數(shù)的知識(shí),對(duì)于各個(gè)變量的偏導(dǎo)數(shù)為0(這就解釋了一開始為什么假設(shè)三個(gè)函數(shù)連續(xù)可微,如果不連續(xù)可微的話,這里的偏導(dǎo)數(shù)存不存在就不能保證),后面四個(gè)條件就是原始問題的約束條件以及拉格朗日乘子需要滿足的約束。
特別注意當(dāng)時(shí),由KKT對(duì)偶互補(bǔ)條件可知:,這個(gè)知識(shí)點(diǎn)會(huì)在 SVM 的推導(dǎo)中用到.
?
5. 總結(jié)
一句話,某些條件下,把原始的約束問題通過拉格朗日函數(shù)轉(zhuǎn)化為無約束問題,如果原始問題求解棘手,在滿足KKT的條件下用求解對(duì)偶問題來代替求解原始問題,使得問題求解更加容易。
總結(jié)
- 上一篇: SVM基本思想及入门学习(转载+自己解释
- 下一篇: 用初中数学题理解SVM中不等式约束、拉格