拉格朗日乘子法、罰函數法、乘子罰函數法


       https://blog.csdn.net/lmm6895071/article/details/78329045?locationNum=7&fps=1

1. 拉格朗日乘子法
            1.1 無約束問題
            1.2 等式約束問題
            1.3 不等式約束問題(KKT條件)
            1.4 拉格朗日乘子法問題
        2. 罰函數法
            2.1 定義
            2.2 外罰函數法
            2.3 內罰函數法
        3. 廣義乘子法
            3.1 等式約束廣義乘子法:
            3.2 不等式約束廣義乘子法:
            3.3 一般約束廣義乘子法:

    本文簡單總結一些相關概念,具體證明以后再補充;
    1. 拉格朗日乘子法
    2. 罰函數法:外罰函數與內罰函數法
    3. 廣義乘子法

1. 拉格朗日乘子法
1.1 無約束問題

無約束問題,定義為 minf(x)
, 對於凸函數而言,直接利用費馬定理,f′(x)=0

,獲得最優解;
1.2 等式約束問題

等式約束定義如下:
minf(x)s.t.g(x)=0

現在利用拉格朗日乘子法,合並式子:
L(x,a)=f(x)+ag(x)

對x,a分別求偏導:
∇xL(x,a)=f′(x)+ag′(x)=0∇aL(x,a)=g(x)=0

發現第二個式子剛好是其約束條件;
                  ----------------------------------------------有兩個變量,求最值,對兩個變量分別求導,得出的是成對的自變量,使得函數值最小
    為什么?
    現在,我們在平面內投影函數,畫出f(x)

的等高線,以及g(x)=0的邊界線;如圖示:
藍色虛線代表了f(x,y)的等高線;紅色代表g(x,y)=c=0;
這里寫圖片描述
回顧:
1. 方向導數是各個方向上的導數
2. 偏導數連續才有梯度存在
3. 梯度的方向是方向導數中取到最大值的方向,梯度的值是方向導數的最大值(垂直方向)
假設f(x)的最小值在圓心處,即梯度方向向外;g(x,y)的梯度方向向下;
那么滿足條件的值一定是兩個函數相切處;如果相交,那么一定還存在一個等高線與紅線相切,而且更小;在切點處,兩個函數的梯度共線,即f′(x)=−ag′(x),a<0;做簡單的變換后:f′(x)+ag′(x)=0

    ,這就是第一個等式啦,同時還需要滿足第二個式子;

1.3 不等式約束問題(KKT條件)

不等式約束問題:
minf(x)s.t.g(x)=0h(x)<=0

引入拉格朗日函數:(KTT 條件)
L(x,a,b)=f(x)+ag(x)+bh(x)s.t.g(x)=0bh(x)=0

這樣就將不等式約束變成了等式約束,偏導等於零即可求得最優參數;
minf(x)等價於minxmaxa,bL(x,a,b)

對偶變換后有:
maxa,bminL(x,a,b)

因為h(x)<0,所以只有當bh(x)=0時,L(x,a,b)才能取得最大值;否則不滿足條件;所以KKT條件是minf(x)的必要條件;

    補充:SVM 滿足KKT條件:在邊界上的點,有h(x)=0

    ;非邊界處,令b=0;

1.4 拉格朗日乘子法問題

當 目標函數的Hess矩陣不正定時(特征值不全為正,或者行列式不為正,那么此時的偏導為0處,並不能確定是否是極值點),所以無法求解;

    例子:
    求解
    {minf=2x2+y2−2xys.t.x+y=1


我們定義L(x,y,λ)=f−λg(x)=2x2+y2−2xy−λ(x+y−1)
求偏導可得:
⎧⎩⎨⎪⎪∂L∂x=4x−2y−λ=0∂L∂y=2y−2x−λ=0∂L∂λ=x−y−1=0

我們可以計算原目標函數的Hess矩陣:=⎡⎣⎢⎢∂2L∂x2∂2L∂y∂x∂2L∂x∂y∂2L∂y2⎤⎦⎥⎥=[4−2−22]正定矩陣;
再看一個目標函數,方程稍作修改:
{minf=2x2+y2+3xys.t.x+y=1

直接求偏導,發現方程無解;
再看其Hess矩陣:=[4332]

    非正定矩陣;
    也就是說,在梯度為零處,我們無法判斷是否是極值;

2. 罰函數法
2.1 定義

罰函數法:根據約束條件的特點,構造出懲罰函數,然后加入到目標函數中,將其轉化為無約束問題;新目標函數的解與原始目標函數解一致;

2.1.1 等式約束的罰函數法:

{minf(x)s.t.gi(x)=0

我們引入一個增廣目標函數:
minF(x,σ)=f(x)+σP(x)P(x)=gTg

這里:σ是懲罰因子,取很大的正數,F(x,σ)是罰函數,σP(x)是懲罰項;
懲罰項的性質:
1. 當x為可行解時,P(x)=0,懲罰項為0;
2.當x不在可行域內,此時σP(x)會很大,那么求得minF(x,σ)必然有minf(x)與minx,σ[σP(x)]同時成立;所以,當σ充分大時,增廣目標函數的最優值接近於原始問題的最優值;(σ→∞,若原問題有解(F<∞),則會有g=0)

    例如:
    minf(x)=(x1+x2)2s.t.g(x)=x1+x2=c


構造罰函數為:
minL(x,σ)=minf(x)+σ||g(x)||22

σ

    設置的值較大;第一部分優化解,第二部分使得解在可行域內;
    如果x不在可行域內,需要我們大步迭代;

2.1.2 不等式約束的罰函數法:

{minf(x)s.t.hi(x)>=0

此時我們構造懲罰項;
(1)P(x)=∑[min(0,hi(x))]2,可以簡單分析出:當hi(x)>=0時P(x)=0,滿足條件;當不在可行域內時,我們需要加大懲罰;
(2)P(x)=∑αih2i,其中αi={0,hi>=01,hi<0

2.1.3 一般形式的罰函數法:
⎧⎩⎨⎪⎪minf(x)s.t.gi(x)=0hi(x)>=0

那么罰函數為:
P(x)=∑[gi(x)]2+∑[min(0,hi(x))]2

特別注意:懲罰因子是充分大的數,拉格朗日乘子是一個確定的參數,意義不一樣;(當懲罰因子過大時,在求解極小值的過程中,Hess矩陣變成病態矩陣?)
2.2 外罰函數法

    對不在可行域內,加大懲罰;上文介紹的就是外罰函數法;
    這里寫圖片描述

2.3 內罰函數法

    又稱障礙函數法,內點法);在可行域內築起高牆,迫使值在可行域內,目標函數無法穿越;(只適用於不等式約束)
    障礙函數一般取:(1)倒數 (2)對數
    障礙因子為很小的正數
    當x

    趨於邊界時,那么障礙函數趨於無窮;初始點在可行域內部;
    在可行域內時,障礙函數值很小,增廣目標函數與原始目標函數等價了;

    這里寫圖片描述

3. 廣義乘子法
3.1 等式約束廣義乘子法:

{minf(x)s.t.gi(x)=0

廣義乘子法是拉格朗日乘子法與罰函數法的結合;
ϕ(x,λ,σ)=f(x)+λTg(x)+12σgT(x)g(x)

在罰函數的基礎上增加了乘子項,首先在σ足夠大的基礎上,獲得ϕ的極小值,然后在調整λ獲得原問題的最優解;
迭代公式如下:
梯度等於零:∇xϕ(xk,λk,σk)=0,即
∇xf(xk)+λk∇xgT(xk)+σk∇xgT(xk)g(xk)=∇xf(xk)+∇xgT(xk)(σkg(xk)+λk)=0

令λk+1=σkg(xk)+λk,則導出拉格朗日乘子法的一階必要條件;
∇xf(xk)+λk+1∇g=0

計算方法:
(1)初始值設置:x,λ,σ
(2)計算梯度為0,獲得當前最優值xk,然后判斷是否終止;
(3)是否調整懲罰因子,獲得σk+1
(4)計算λk+1=σkg(xk)+λk

3.2 不等式約束廣義乘子法:

思想是:引入松弛變量,化不等式問題為等式約束;
{minf(x)s.t.hi(x)>=0→{minf(x)s.t.hi(x)=βi

那么原始問題轉化成:
minx,λϕ(x,λ,σ)=f(x)+λT(h(x)−β)+12σ(h(x)−β)T(h(x)−β)minx,λ,σ,βϕ(x,λ,σ,β)=f(x)+σ2((h+λσ−β)2−(λσ)2)β=1σmax{0,σh+λ}

首先計算關於β的極小值;因為β>=0,上式是關於β的二次函數,開口向上,對稱軸是h+λσ,
β={0h+λσh+λσ<0h+λσ>=0→1σmax{0,σh+λ}

這樣做的目的是:保證增廣目標函數最優解近似於原始問題最優解;
分析:當σh+λ>=0時,β=h+λσ,則
ϕ(x,λ,σ)=f(x)−σ2(λσ)2=f(x)−λ22σ∇xϕ(x,λ,σ)=∇xf(x)

當σh+λ<0時,β=0,則
ϕ(x,λ,σ)=f(x)−σ2(λσ)2+(σh+λ)22σ=f(x)−λ22σ+(σh+λ)22σ∇xϕ(x,λ,σ)=∇xf(x)+(σh+λ)∇h(x)

梯度為零計算最優解,發現剛好滿足朗格朗日乘子法的必要條件;

3.3 一般約束廣義乘子法:

混合等式不等式約束法,計算即可
---------------------  
作者:冰鋒  
來源:CSDN  
原文:https://blog.csdn.net/lmm6895071/article/details/78329045  
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

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



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