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