拉格朗日對偶性

2021-09-10 02:52:57 字數 1853 閱讀 7156

在約束最優化問題中,常常會利用到拉格朗日對偶性求解。在常用的機器學習演算法中,支援向量機和最大熵模型都使用到該方法求最優解。因為後面將要講到這兩個演算法,所以先介紹這種方法作為知識的鋪墊。

對於有約束的問題,拉格朗日對偶性是將原始問題轉化為最優問題,通過求解對偶問題而得到原始問題的解。

一、 原始問題

假設f(x),ci(x),hj(x)是定義在rn上的連續可微函式,最優化原始問題為:

首先,引進廣義拉格朗日函式:

其中,α和β是拉格朗日乘子,且α_i≥0。

因為α_i≥0,c_i≤0,h_j等於0,所以l(x,α,β)的第二項小於等於0,第三項等於0,則可以推出:l(x,α,β)≤f(x)。

所以max l(x,α,β)=f(x)。定義:

則最優化原始問題等價於廣義拉格朗日問題的極小極大問題:

定義原始問題的最優解為:

二、 對偶問題

定義:

再考慮極大化上式,即:

這個廣義拉格朗日的極大極小問題稱為原始問題的對偶問題。

原始問題和對偶問題的關係:

如果原始問題和對偶問題都有最優解,則有:

證明:對任意的α,β和x,有

即:由於原始問題和對偶問題都有最優值,所以:

即:

一句話總結就是對於同乙個函式l,最小化後的最大值仍然小於或等於最大化後的最小值。

三、 kkt條件

為了使得對偶問題的最優解也是原始問題的最優解,就必須滿足kkt條件,也就是說kkt條件是其充分必要條件。接下來我們將講解為什麼要滿足以下的kkt條件。

解釋:要使得對偶問題的最優解也是原始問題的最優解就要滿足d_=p_,首先前三個條件對各變數求偏導得到他們的極值,這也是為什麼要一開始要定義三個函式連續可導。

第四個條件是因為在前面已經提及l(x,α,β)的第二項小於等於0,要使得l等於f(x),就得讓第二項等於0,因為α_i≥0,c_i小於等於0,所以要保證第二項等於0,只能是每個α_i*c_i等於0。

第五個條件和第七個條件是原始問題的約束條件,第六個問題是拉格朗日乘子法需要滿足的定義。

四、 為什麼要通過求解對偶問題來得到原始問題的最優解?

使用對偶問題求解是因為求解對偶問題比求解原始問題更加簡單方便。比如在svm中通過求解對偶問題能夠使得求解的演算法複雜度降低,方便核函式的引入等好處。具體為什麼將在svm講解的時候解釋。

拉格朗日對偶性

在支援向量機中,需要用拉格朗日對偶性將原始問題轉換成對偶問題,解得對偶問題的解從而得到原始問題的解。在此簡單介紹拉格朗日對偶性的基本原理和方法。假設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 ...

拉格朗日對偶性 Lagrange duality

有時候原問題 primal problem 不太好解,但是對偶問題 dual problem 卻很好解,我們就可以通過求解對偶問題來迂迴地解答原問題。通過下面兩步,構造拉格朗日函式為 1.引入 鬆弛變數 kkt乘子 j j 0 把不等式約束條件轉化為等式約束條件。2.入拉格朗日乘子 k把等式約束轉化...