拉格朗日乘數(shù)法
在求解函數(shù)最優(yōu)化問題中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)條件是兩種最常用的方法。函數(shù)有等式約束時(shí)使用拉格朗日乘子法,函數(shù)有不等約束時(shí)使用KKT條件。
#本篇文章主要整理拉格朗日乘子法
本文用于自己筆記整理。搜索到的解釋有些太難以理解,索性自己研究一下,寫了本篇筆記。(本文中的公式由于簡(jiǎn)書不支持latex原因無法正常顯示,讀文章的讀者們將就看看吧)如果想看原文帶公式的請(qǐng)移步我的博客上,會(huì)顯示的好一些。
這種方法可以將一個(gè)有 n 個(gè)變量與 k 個(gè)約束條件的最優(yōu)化問題轉(zhuǎn)換為一個(gè)解有 n + k 個(gè)變量的方程組的解的問題。這種方法中引入了一個(gè)或一組新的未知數(shù),即拉格朗日乘數(shù),又稱拉格朗日乘子,或拉氏乘子,它們是在轉(zhuǎn)換后的方程,即約束方程中作為梯度(gradient)的線性組合中各個(gè)向量的系數(shù)。
總結(jié)伸手黨,比如兩個(gè)變量求最優(yōu)時(shí),求 在條件
時(shí)的最大值,我們可以引入新變量拉格朗日乘數(shù)
,這時(shí)我們只需要下列拉格朗日函數(shù)的極值,此時(shí)就回歸到了無約束時(shí)的最值問題:
無約束時(shí)函數(shù)最優(yōu)問題
這種問題,通常的解決辦法是,對(duì)各變量求偏導(dǎo),使得各偏導(dǎo)同時(shí)為零得到駐點(diǎn)。再判斷駐點(diǎn)是否為極值點(diǎn),最后代入原函數(shù)驗(yàn)證最優(yōu)。
等式約束時(shí)函數(shù)最優(yōu)問題
設(shè)目標(biāo)函數(shù)為 , 約束條件為
。問題是如何在滿足約束條件的情況下,使得目標(biāo)函數(shù)最大(最小)。
使用一個(gè)例子來描述這個(gè)問題:在雙曲線 xy=3 的情況下,哪個(gè)點(diǎn)離原點(diǎn)最近。
如圖:

那么f(x,y) 可以被描述為無數(shù)個(gè)一圈圈的等高線(圖中所有顏色的圓圈線),這些等高線與雙曲線相交的點(diǎn)是滿足約束條件的點(diǎn)。那么離原點(diǎn)最近的點(diǎn),就是等高線與雙曲線互切處的點(diǎn),如圖中,紅色的點(diǎn)。

- 綠色的等高線無法與雙曲線相交,沒有滿足約束條件的解
- 藍(lán)色點(diǎn)雖然滿足約束條件,但并非最優(yōu)解
- 只有等高線與雙曲線相切的紅色的點(diǎn),才是最優(yōu)解。
在取最優(yōu)解時(shí),我們發(fā)現(xiàn)只有相切才能取最優(yōu)解。那么如何判斷相切呢? 那就使用梯度向量(如圖中紅色藍(lán)色的梯度向量),如果兩者梯度向量互相平行時(shí),那么兩條曲線相切。于是引入一個(gè)參數(shù) 使得滿足如下梯度公式:
那么原目標(biāo)函數(shù) f(x,y) 和 約束條件 g(x,y) ,在取最優(yōu)值時(shí)滿足上述公式那么:
此時(shí)我們就擁有了三個(gè)公式,三個(gè)未知數(shù)的多項(xiàng)式。把三個(gè)未知數(shù)全部解出來。代入原目標(biāo)函數(shù)就是函數(shù)最值。
最后我們稍微整理下這三條公式:
發(fā)現(xiàn)原最優(yōu)問題可以被替換成求的最優(yōu)問題。且這個(gè)問題不受g(x,y)所約束,因此可以使用無約束時(shí)函數(shù)最優(yōu)問題來解決。至此呼應(yīng)了開頭伸手黨結(jié)論。