拉格朗日乘子法與對偶問題分析


引言

拉格朗日乘子法和原始問題與對偶問題的轉換,最近總被人提到,我對網上的教程和書上的知識進行學習,嘗試從公式上進行理解,對於幾何中的理解稍微會接觸到,簡單做下筆記以防自己遺漏(防peach🐕)

拉格朗日乘子法

簡介

拉格朗日乘子法是用來求解帶約束條件的最優化的問題的方法,分為帶等式約束不等式約束
但是拉格朗日求出來的是局部最值,只有在凸優化的情況下才能確保是全局最值,所以我們將拉格朗日求出來的解稱為可行解

等式約束

\(\min_ \limits{x} f(x) \qquad (1) \\ s.t. h_i(x)=0,i=1,2...m \qquad (2)\)

  • 幾何解釋
    為了方便直觀的解釋,將m視作1。在圖中畫出f(x)的等值線和h(x,y)=0的約束條件。
    簡單實例簡單實例
    觀察到當f(x)取到最小值時,h(x,y)與相應的等值線相切,對應點的梯度向量共線。即\(\nabla_x f(x)=\alpha\nabla_x h(x)\)

  • 數學警告⚠

\(L(x,\alpha)=f(x)+\sum_{i=1}^m\alpha_i h_i(x) \qquad (3) \\ \nabla_xL(x,\alpha)=0 \qquad (4) \\ \nabla_\alpha L(x,\alpha)=0 \\ \Longleftrightarrow each\quad h_i(x)=0 \qquad(5)\)

(3)式為構造的拉格朗日函數,因為\(h_i(x)=0\)成立,所以\(L(x,\alpha)\)的極值點也是f(x)的極值點,故可以轉換為對\(L(x,\alpha)\)的無約束條件求極值點。
(4)式是\(L(x,\alpha)\)能取到極值點的必要條件,這里也印證了集合解釋中的相切
(5)式表明\(L(x,\alpha)\)中除了變量\(\alpha\)外其他的變量x都限定在了指定函數\(h_i(x)=0\)
通過(4)(5)式可得\(L(x,\alpha)\)的極值點也就是f(x)的極值點。

不等式約束

\(\min_ \limits{x} f(x) \qquad (6) \\ s.t. g_i(x)<=0,i=1,2...m \qquad (7)\)
以m=1為例
\(L(x,\lambda)=f(x)+\lambda g(x) \qquad (8)\)

  • 幾何解釋
    f(x)要么在g(x)<0的區域上找到極值點點,要么在g(x)=0的邊界上找到極值點
    簡單實例

    g(x)<0,如上左圖中在g(x)<0的區域上找極值點,那么只要直接對f(x)進行求導就可以了,即\(\lambda=0\)
    g(x)=0,如上右圖中在g(x)=0的邊界上找極值點,等價於約束優化問題。即\(g(x)=0\)
    無論在什么情況下,\(\lambda g(x)=0\)恆成立,保證了優化問題的目標沒有改變

  • 數學警告⚠
    對於\(\lambda(\neq 0)\)的取值
    最小化問題:邊界上,f(x)的法向量指向區域內,因為在整個區域上在邊界上取到最小值,內部的一定比取到的大。而g(x)邊界上的法向量指向區域外,因為約束條件是g(x)<0。故λ>0。
    最大化問題:邊界上,f(x)的法向量指向區域外,因為在整個區域上在邊界上取到最大值,內部的一定比取到的小。而g(x)邊界上的法向量指向區域外,因為約束條件是g(x)<0。故λ<0。

  • 求解
    根據上面的解釋發現,不等式約束優化問題需要一定的約束,構造的拉格朗日函數的優化目標與原始目標相同。

\(\min_ \limits{x} f(x) \qquad (9) \\ s.t. h_i(x)=0,i=1,2...m \qquad (10) \\ \quad g_j(x)<=0,j=1,2...n \qquad (11) \\ L(x,\alpha,\lambda)=f(x)+\sum^m_ \limits{i=1}\alpha_ih_i(x)+\sum^n_ \limits{j=1}\lambda_jg_j(x) \qquad (12)\)
可利用的方程:
\(\nabla_xL(x,\alpha,\lambda)=0 \\ h_i(x)=0,i=1,...,m \\ g_j(x)<=0,j=1,...,n \\ \lambda_j>=0,j=1,...,n\)

利用拉格朗日乘子法求解不等式約束問題不一定成功的,除非對偶問題與這個原始問題之間是強對偶性,才能利用KKT條件,這里可利用的方程只是KKT條件的一部分。

對偶問題分析

簡介

每個線性規划問題都有一個與之對應的對偶問題(極大極小值問題的轉換),對偶問題有良好的特性。
1.無論原始問題是否是凸的,對偶問題都是凸優化問題。
2.對偶問題可以給出原始問題一個下界。
3.當滿足一定條件(slater條件,KKT條件)時,原始問題與對偶問題是完全等價的(強對偶性)。

對偶問題

  • 原始問題
    \(\min_\limits{x} f(x) \\ s.t. h_i(x)=0,i=1,2,...,m \\ \qquad g_j(x)<=0,j=1,2,...,n \\ Lagrangian:\\ L(x,\alpha,\lambda)=f(x)+\sum^m_{i=1}\alpha_ih_i(x)+\sum^n_{j=1}\lambda_jg_j(x)\)
    因為約束條件的存在,所以\(f(x)=\max_\limits{\alpha\lambda;\lambda_j>=0}L(x,\alpha,\lambda)\)
    \(\min_\limits{x} f(x)=\min_\limits{x}\max_\limits{\alpha\lambda;\lambda_j>=0}L(x,\alpha,\lambda)\),將原始的最優化問題轉化成了廣義拉格朗日函數的極小極大問題。
    定義原始問題的最優值\(p^*=\min_ \limits{x} f(x)\)
    對原始問題進行利用拉格朗日乘子法相當於不等式約束求解,無法求出。

  • 對偶問題
    1.引入對偶函數\(D(\alpha,\lambda)\)
    \(D(\alpha,\lambda)=\min_\limits{x}L(x,\alpha,\lambda)\)
    2.對偶問題形式
    \(\max_\limits{\alpha\lambda;\lambda_j>=0}D(\alpha,\lambda)=\max_\limits{\alpha\lambda;\lambda_j>=0}\min_\limits{x}L(x,\alpha,\lambda)\)
    3.最優解\(d^*\)
    \(d^*=\max_\limits{\alpha\lambda;\lambda_j>=0}D(\alpha,\lambda)\)

  • 對偶問題與原始問題之間的關系
    1.若原始問題和對偶問題都有最優值,則\(d^*<=p^*\),通過對偶性為原始問題引入一個下界。
    證明:
    \(D(\alpha,\lambda)=\min_ \limits{x}L(x,\alpha,\lambda)\leq L(x,\alpha,\lambda)\leq\max_\limits{\alpha\lambda;\lambda_j>=0}L(x,\alpha,\lambda)=f(x)\)
    \(d^*=\max_\limits{\alpha\lambda;\lambda_j>=0}D(\alpha,\lambda)\leq\min_\limits{x}f(x)=p^*\)
    2.\(d^*\leq p^*\)是弱對偶性,\(d^*=p^*\)是強對偶性。在強對偶型的條件下,可以通過求解對偶問題來求解原始問題獲得最優解。
    簡單實例

3.slater條件:\(f(x),g_j(x)\)是凸函數,\(h_i(x)\)是仿射函數(最高次項為1的多項式函數),並且\(g_j(x)\)是嚴格可行的(存在x,對所有j有\(g_j(x)<0\)),則存在\(x^*,\alpha^*,\lambda^*\),使得\(x^*\)是原始問題的解,\(\alpha^*,\lambda^*\)是對偶問題的解,同時\(d^*=p^*=L(x^*,\alpha^*,\lambda^*)\)。也就是原始問題和對偶問題之間是強對偶性,滿足上圖下面那個圖形的條件,原始問題的最小值等於對偶問題的最大值。而又因為對偶問題是凸優化問題,所以求出對偶問題的解來解決原始問題。
求解對偶問題的過程,分為極小化拉格朗日函數和極大化對偶函數:
第一步:極小化拉格朗日函數,可以列出下面的可利用的方程:
\(\nabla_xL(x^*,\alpha^*,\lambda^*)=0 \qquad KKT1\\ h_i(x^*)=0,i=1,...,m \qquad KKT2\\ g_j(x^*)<=0,j=1,...,n \qquad KKT3\\ \lambda_j^*>=0,j=1,...,n \qquad KKT4\)
細心的人就已經發現了這就是解決不等式約束問題的可利用方程,同時也是對原始問題求解的過程,相當於求出一堆可行解,但是還缺少了方程。
PS:參數加上*是因為此時已經將可以確定參數了。
第二步:極大化對偶函數,可以利用的方程:
\(\lambda_j^*g_j(x^*)=0,j=1,...,n \qquad KKT5\)
KKT5稱為對偶互補松弛條件,相當於上圖右下方在可行解中取出最優解。
這5個條件合在一起稱為KKT條件。通過KKT條件可以解出不等式約束的最優化問題。

有時間再去更新添加一個例子

參考書籍和博客內容:

1.《統計機器學習》--李航老師
2.博客園
3.知乎

人生此處,絕對樂觀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM