拉格朗日乘子法的證明

2021-08-02 18:23:12 字數 2393 閱讀 6103

在學習支援向量機的時候,計算對偶問題時用到了拉格朗日乘子法((lagrange multiplier method)),回想起高中時使用拉格朗日乘子法求不等式約束條件下的最優化問題時的困惑,雖然一直知道用,但是卻不知道為什麼拉格朗日乘子法能夠用。知其然更應知其所以然,本文就來扒一扒「拉格朗日乘子法」的來龍去脈。

給定乙個不等式約束條件下的最優化問題,

$$\begin \mathop \limits_x \quad f(x) \ s.t.\quad g(x) = 0\end\quad\quad (1)$$

此處假定$f(x)$為凸函式,需要找到的是在約束條件$g(x)=0$的條件下,使得目標函式$f(x)$最小的$x$值(注:$x$為乙個n維向量)。一般情況下,對於乙個凸函式的極值問題,我們只需要找到令目標函式的導數$}=0$的點$x$即可。然而,由於此處存在的等式約束條件,使得目標函式導數等於0的點不一定能夠滿足約束條件。

從幾何的角度看,這個問題的目標是在由方程$g(x)=0$所確定的$d-1$維曲面上,找到能使得目標函式$f(x)$最小化的$d$維點。我們以下圖中二維空間為例:求函式$f(x,y)$在約束條件$g(x,y)=0$下的最小值。我們想象$f(x,y)$是一座「山」,$x$與$y$分別是其經緯度,$f(x,y)$為其海拔,圖中的橢圓為這座"山"的等高線;約束條件$g(x,y)=0$為海拔為0的平面上的一條曲線。我們在這座"山"上亂逛,想要找到乙個最高的點(最大與最小問題是相對的),但是我們的經緯度必須滿足$g(x)=0$,即投影到海拔為0的平面上的話必須與圖中紅色曲線一致。

顯然,如果我們找到了乙個最高點,必然有最高點所在的等高線$f(x,y)=d_1$與約束曲線$g(x)=0$是相切的。否則,我必然還可以沿著紅色的約束曲線繼續走,找到乙個更高的點(例如:圖中紅色曲線與登高線$f(x,y)=d_2$相交)。用數學語言描述相切便意味著,在極值點,有:$$\nabla f(x) = \lambda *\nabla g(x)$$,即兩個函式在極值點的梯度向量是平行的。

這個時候我們引入拉格朗日函式:$l(x, \lambda) = f(x) + \lambda g(x)$, 其中,$\lambda$就是拉格朗日乘子,為乙個未知常數。 在求該函式關於$x,\lambda$極值問題時有:

$$\begin^\quad \nabla_x l(x,\lambda) = \nabla f(x) - \lambda *\nabla g(x)=0 \ 2^ \quad \nabla_l(x,\lambda) = g(x)=0\end \qquad (2)$$

這意味著: 無約束條件下最小化拉格朗日函式$l(x,\lambda)$與有約束條件$g(x)=0$下原目標函式$f(x)$最小化的問題是一致的。求出令拉格朗日函式$l(x,\lambda)$最小的$(x,\lambda)$的值,便解出了原優化問題$(1)$的解,即我們將原優化問題$(1)$轉換成了優化問題$(2)$:

$$\mathop\limits_l(x, \lambda) = f(x)+\lambda g(x) \qquad(3)$$

只要解除了$(2)$中線性方程組的解,那麼便能夠得到原目標函式的極值了。

等式約束下的最優化的問題只是熱熱身,真正麻煩卻也重要的,是不等式約束下的最優化問題。考慮將$(1)$中的問題進行推廣,對最優化問題加上不等式約束:

$$\begin \mathop \limits_x \quad f(x) \ s.t.\quad h(x) = 0\ \qquad \ \ \ g(x) \le 0\end \quad\quad (4)$$

仍然考慮向量$x$為二維空間中的點的場景,圖中陰影部分為$g(x)<0$區域,橢圓線為"盆地"的登高線, 不等式約束意味著我們只能在陰影區域找"盆地"的最低點。此時可能存在兩種情況:

「盆地「的中心在陰影部分區域,此時我們可以不用理會約束條件,直接求$f(x)$的極小值就行;

「盆地」的中心在陰影部分外面,此時在我們所能找到的極值點,必然有$g(x)=0$曲線與極值點的登高線相切,否則必然能夠往陰影區域繼續找到乙個海拔更低的點。並且該極小值點關於約束函式的梯度$\nabla g(x)$與關於目標函式的梯度$\nabla f(x)$方向必定是相反的(不相反卻相切的情況,只能是第一種,但那種情況的切點並不是極小值) 。

總結上面的情況,給出不等式約束條件下的庫恩-塔克條件為:

$$相切要麼相切要麼極大值與無關\begin1^\nabla_x l(x) = \nabla f(x) + \lambda\nabla g(x) +u\nabla h(x) = 0 \quad...相切\ 2^ \nabla_u l(x) = h(x) = 0 \ 3^ \nabla_ \lambda l(x) = g(x) \le 0 \ 4^\lambda \ge0 \ 5^u*g(x) = 0 \quad....要麼相切g(x)=0,要麼極大值與g(x)無關,\lambda=0\end$$

拉格朗日乘子法

最近在學習 svm 的過程中,遇到關於優化理論中拉格朗日乘子法的知識,本文是根據幾篇文章總結得來的筆記。由於是剛剛接觸,難免存在錯誤,還望指出?另外,本文不會聊到深層次的數學推導,僅僅是介紹拉格朗日乘子法的內容,應用,以及個人對它的感性理解。按照維基百科的定義,拉格朗日乘數法是一種尋找多元函式在其變...

拉格朗日乘子法

最優化基本知識這裡就不贅述了,詳情可以參考個種最優化書籍,這篇部落格主要是幫助回憶優化應用中較常用的方法。一般情況下,最優化問題會碰到一下三種情況 1.無約束,2.等式約束 3.不等式約束。對於無約束情況,只要將優化目標對於變數求導,並令其等於0即可,我們主要討論第二種情況。設目標函式為f x 約束...

拉格朗日乘子法

在求取有約束條件的優化問題時,拉格朗日乘子法 lagrange multiplier 和kkt條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值 如果含有不等式約束,可以應用kkt條件去求取。當然,這兩個方法求得的結果只是必要條件,只有當是凸函式的情況下,才能保...