有時候原問題 (primal problem) 不太好解,但是對偶問題 (dual problem) 卻很好解,我們就可以通過求解對偶問題來迂迴地解答原問題。
通過下面兩步,構造拉格朗日函式為:
1.引入 鬆弛變數 / kkt乘子μj(μj≥0),把不等式約束條件轉化為等式約束條件。
2.入拉格朗日乘子λk把等式約束轉化為無約束優化問題
定義拉格朗日對偶函式為拉格朗日函式把λ,μ當作常數,關於x取最小值得到的函式:
它一定是凹函式。
那麼為什麼拉格朗日對偶函式一定是凹函式?
證明:
原問題是最小化f(x),顯然f(x)>=l
假設f∗是滿足原問題約束下的最優解,那麼:
g(λ,μ)是原問題最優解的下界。
找下界當然是要找最大的下界,所以匯出拉格朗日對偶問題:
由於g(λ,μ)一定是凹函式,所以拉格朗日對偶問題一定是凸優化問題。
原問題的關於x的最小化轉化為了對偶問題關於λ,μ的最大化。
交換以後的新問題是原始問題的對偶問題,這個新問題的最優值用d* 來表示。而且d*<=p*。我們關心的是d=p的時候,這才是我們要的解。需要什麼條件才能讓d=p呢?
首先必須滿足這個優化問題是凸優化問題。
其次,需要滿足kkt條件。
拉格朗日對偶性
在支援向量機中,需要用拉格朗日對偶性將原始問題轉換成對偶問題,解得對偶問題的解從而得到原始問題的解。在此簡單介紹拉格朗日對偶性的基本原理和方法。假設f x ci x hj x 是定義在rn 上的連續可微函式。考慮約束最優化問題 minx r nf x s.t ci x hj x 0,i 1,2,k ...
拉格朗日對偶性
拉格朗日對偶性常常被用來解決有約束條件的最優化問題,在最大熵模型或者支援向量機的優化中最為常見,其主要思路就是將帶約束條件的原始為題轉換為沒有約束條件的對偶問題。首先呈現以下原始問題,我們在做優化的時候,會遇到需要優化乙個函式 f x 這個函式還帶著兩個約束條件,這裡分別用 ci x 和 hj x ...
拉格朗日對偶性
在約束最優化問題中,常常會利用到拉格朗日對偶性求解。在常用的機器學習演算法中,支援向量機和最大熵模型都使用到該方法求最優解。因為後面將要講到這兩個演算法,所以先介紹這種方法作為知識的鋪墊。對於有約束的問題,拉格朗日對偶性是將原始問題轉化為最優問題,通過求解對偶問題而得到原始問題的解。一 原始問題 假...