拉格朗日对偶性和似然函数
在學(xué)習(xí)最大熵模型和SVM的過程中,我們看到,前者需要求解滿足所有已知條件并且使得熵最大的模型,后者需要求解滿足間隔一致性約束條件并且使得幾何間隔最大的超平面,歸結(jié)起來其求解問題都是帶約束的極值問題,其解決方法一般采用拉格朗日對(duì)偶原理,對(duì)于概率性問題也可以用極大似然法來求解。下面簡單介紹拉格朗日對(duì)偶原理和似然函數(shù)。
拉格朗日對(duì)偶原理:約束條件可以分成不等式約束條件和等式約束條件,只有等式約束條件的問題我們?cè)诟叩葦?shù)學(xué)課程中已經(jīng)學(xué)習(xí)過了,其解決方法是直接將等式約束加入原問題構(gòu)造出拉格朗日函數(shù),然后求導(dǎo)即可。現(xiàn)在考慮更加一般性的問題:帶不等式約束和等式約束的極值問題如何構(gòu)造拉格朗日函數(shù)求解。
學(xué)習(xí)拉格朗日對(duì)偶原理重要的是理解構(gòu)造所得的原始問題和原函數(shù)的等價(jià)性,以及原始問題和對(duì)偶問題解得等價(jià)性。帶不等式約束的極值問題定義如下:
???????,其中的函數(shù)集合f,g,h都是定義在R上的連續(xù)可微函數(shù)。
這里面還需要說明一下凸函數(shù)的幾條性質(zhì):
1.對(duì)于定義域上可微函數(shù)f,若f得導(dǎo)數(shù)單調(diào)不減,則f是凸函數(shù);
2.如果凸函數(shù)存在極小值,則一定是全局極小值,也即凸函數(shù)的局部最小點(diǎn)就是全局最小點(diǎn);
3.嚴(yán)格凸函數(shù)的全局最小點(diǎn)唯一;
4.如果滿足約束條件的可行域是有界的,凸函數(shù)優(yōu)化有解。
一般,我們定義的目標(biāo)函數(shù)都是凸函數(shù),再利用拉格朗日對(duì)偶性求解全局最優(yōu)解。正是由于凸函數(shù)滿足以上性質(zhì),便于我們求解問題,而不用考慮復(fù)雜情況。
引入一般化的拉格朗日公式:
其中和稱為拉格朗日算子,要求非負(fù)。
下面的步驟將拉格朗日函數(shù)和最初的函數(shù)f等價(jià)起來:
定義函數(shù):
這里的P代表primal,表示原始問題。假設(shè)給定某個(gè)w,如果w違反原始問題的約束條件,即或者,那么我們總是可以調(diào)整和來使得有最大值為正無窮。而只有g(shù)和h都滿足約束時(shí),為f(w)。總結(jié)下來就是:
看到了沒,這樣就把拉格朗日函數(shù)和f聯(lián)系在了一起。
于是我們?cè)瓉硪蟮膍in f(w)就轉(zhuǎn)化成求了。 ???
????
令=,現(xiàn)在我們的任務(wù)就是求解,如果直接求解這個(gè)問題會(huì)很復(fù)雜,因此一般不會(huì)直接求解,而是引入對(duì)偶問題,利用對(duì)偶問題的解作為原始問題的解。
原始問題向?qū)ε紗栴}的轉(zhuǎn)換過程如下:
引入公式:
D的意思是對(duì)偶(dual)。
將拉格朗日函數(shù)轉(zhuǎn)換成兩個(gè)參數(shù)的a和b的函數(shù),并在此基礎(chǔ)上求解最大值:
?我們把這個(gè)問題稱為原問題的對(duì)偶問題,從形式上看相對(duì)于原問題對(duì)偶問題只是更換了min和max的順序,實(shí)際上替換前后兩者的值并不一定相同。在滿足一些條件下,對(duì)偶問題的解和原始問題的解相同,用表示對(duì)偶問題的值:
????
?原始問題和對(duì)偶問題的關(guān)系:
原始問題的值和對(duì)偶問題的值滿足公式:d*<=p*,如果等式成立,則它們的解是相同的。
1.假設(shè)函數(shù)f和g是凸函數(shù),h是仿射函數(shù),并且假定不等式約束g是嚴(yán)格可行的,也即存在w,滿足所有的不等式約束,則原始問題和對(duì)偶問題有解,并且解相同。其解相同的充要條件是解滿足KKT條件:
總結(jié)
以上是生活随笔為你收集整理的拉格朗日对偶性和似然函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ STL算法之accumulate
- 下一篇: matlab中矩阵的左除右除