拉格朗日乘數法介紹

2021-03-01 GATE中文自然語言處理
1. 拉格朗日乘數法的基本思想

  作為一種優化算法,拉格朗日乘子法主要用於解決約束優化問題,它的基本思想就是通過引入拉格朗日乘子來將含有n個變量和k個約束條件的約束優化問題轉化為含有(n+k)個變量的無約束優化問題。拉格朗日乘子背後的數學意義是其為約束方程梯度線性組合中每個向量的係數。

  如何將一個含有n個變量和k個約束條件的約束優化問題轉化為含有(n+k)個變量的無約束優化問題?拉格朗日乘數法從數學意義入手,通過引入拉格朗日乘子建立極值條件,對n個變量分別求偏導對應了n個方程,然後加上k個約束條件(對應k個拉格朗日乘子)一起構成包含了(n+k)變量的(n+k)個方程的方程組問題,這樣就能根據求方程組的方法對其進行求解。

  解決的問題模型為約束優化問題:

  min/max a function f(x,y,z), where x,y,z are not independent and g(x,y,z)=0.

  即:min/max f(x,y,z)

    s.t. g(x,y,z)=0

2. 數學實例

  首先,我們先以麻省理工學院數學課程的一個實例來作為介紹拉格朗日乘數法的引子。

  【麻省理工學院數學課程實例】求雙曲線xy=3上離遠點最近的點。

  解:

  首先,我們根據問題的描述來提煉出問題對應的數學模型,即:

  min f(x,y)=x2+y2(兩點之間的歐氏距離應該還要進行開方,但是這並不影響最終的結果,所以進行了簡化,去掉了平方)

  s.t. xy=3.

  根據上式我們可以知道這是一個典型的約束優化問題,其實我們在解這個問題時最簡單的解法就是通過約束條件將其中的一個變量用另外一個變量進行替換,然後代入優化的函數就可以求出極值。我們在這裡為了引出拉格朗日乘數法,所以我們採用拉格朗日乘數法的思想進行求解。

  我們將x2+y2=c的曲線族畫出來,如下圖所示,當曲線族中的圓與xy=3曲線進行相切時,切點到原點的距離最短。也就是說,當f(x,y)=c的等高線和雙曲線g(x,y)相切時,我們可以得到上述優化問題的一個極值(注意:如果不進一步計算,在這裡我們並不知道是極大值還是極小值)。

  現在原問題可以轉化為求當f(x,y)和g(x,y)相切時,x,y的值是多少?

  如果兩個曲線相切,那麼它們的切線相同,即法向量是相互平行的,▽f//▽g.

  由▽f//▽g可以得到,▽f=λ*▽g。

  這時,我們將原有的約束優化問題轉化為了一種對偶的無約束的優化問題,如下所示:

  原問題:min f(x,y)=x2+y2              對偶問題:由▽f=λ*▽g得,

      s.t. xy=3                                       fx=λ*gx,

                                                                     fy=λ*gy,

                                                                          xy=3.

                  約束優化問題                                   無約束方程組問題

  通過求解右邊的方程組我們可以獲取原問題的解,即

  2x=λ*y

  2y=λ*x

  xy=3

  通過求解上式可得,λ=2或者是-2;當λ=2時,(x,y)=(sqrt(3), sqrt(3))或者(-sqrt(3), -sqrt(3)),而當λ=-2時,無解。所以原問題的解為(x,y)=(sqrt(3), sqrt(3))或者(-sqrt(3), -sqrt(3))。

  通過舉上述這個簡單的例子就是為了體會拉格朗日乘數法的思想,即通過引入拉格朗日乘子(λ)將原來的約束優化問題轉化為無約束的方程組問題。

3. 拉格朗日乘數法的基本形態

   求函數在滿足下的條件極值,可以轉化為函數的無條件極值問題。

  我們可以畫圖來輔助思考。

  綠線標出的是約束g(x,y)=c的點的軌跡。藍線是f(x,y)的等高線。箭頭表示斜率,和等高線的法線平行。

  從圖上可以直觀地看到在最優解處,f和g的斜率平行。

  ▽[f(x,y)+λ(g(x,y)−1)]=0, λ≠0

  一旦求出λ的值,將其套入下式,易求在無約束極值和極值所對應的點。

  F(x,y)=f(x,y)+λ(g(x,y)−c)

  新方程F(x,y)在達到極值時與f(x,y)相等,因為F(x,y)達到極值時g(x,y)−c總等於零。

  上述式子取得極小值時其導數為0,即▽f(x)+▽∑λigi(x)=0,也就是說f(x)和g(x)的梯度共線。

  題目1:

  給定橢球

     

  求這個橢球的內接長方體的最大體積。這個問題實際上就是條件極值問題,即在條件   

    

  下,求的最大值。

  當然這個問題實際可以先根據條件消去,然後帶入轉化為無條件極值問題來處理。但是有時候這樣做很困難,甚至是做不到的,這時候就需要用拉格朗日乘數法了。通過拉格朗日乘數法將問題轉化為

     

  對求偏導得到

     

  聯立前面三個方程得到,帶入第四個方程解之

      

  帶入解得最大體積為

      

  拉格朗日乘數法對一般多元函數在多個附加條件下的條件極值問題也適用。

  題目2:

  題目:求離散分布的最大熵。

  分析:因為離散分布的熵表示如下

     

     而約束條件為

     

     要求函數的最大值,根據拉格朗日乘數法,設

     

     對所有的求偏導數,得到

     

     計算出這個等式的微分,得到

     

     這說明所有的都相等,最終解得

     

     因此,使用均勻分布可得到最大熵的值。

4. 拉格朗日乘數法與KKT條件

  我們上述討論的問題均為等式約束優化問題,但等式約束並不足以描述人們面臨的問題,不等式約束比等式約束更為常見,大部分實際問題的約束都是不超過多少時間,不超過多少人力,不超過多少成本等等。所以有幾個科學家拓展了拉格朗日乘數法,增加了KKT條件之後便可以用拉格朗日乘數法來求解不等式約束的優化問題了。

  首先,我們先介紹一下什麼是KKT條件。

  KKT條件是指在滿足一些有規則的條件下, 一個非線性規劃(Nonlinear Programming)問題能有最優化解法的一個必要和充分條件. 這是一個廣義化拉格朗日乘數的成果. 一般地, 一個最優化數學模型的列標準形式參考開頭的式子, 所謂 Karush-Kuhn-Tucker 最優化條件,就是指上式的最優點x∗必須滿足下面的條件:

  1). 約束條件滿足gi(x∗)≤0,i=1,2,…,p, 以及,hj(x∗)=0,j=1,2,…,q

  2). ∇f(x∗)+∑i=1μi∇gi(x∗)+∑j=1λj∇hj(x∗)=0, 其中∇為梯度算子;

  3). λj≠0且不等式約束條件滿足μi≥0,μigi(x∗)=0,i=1,2,…,p。

  KKT條件第一項是說最優點x∗必須滿足所有等式及不等式限制條件, 也就是說最優點必須是一個可行解, 這一點自然是毋庸置疑的. 第二項表明在最優點x∗, ∇f必須是∇gi和∇hj的線性組合, μi和λj都叫作拉格朗日乘子. 所不同的是不等式限制條件有方向性, 所以每一個μi都必須大於或等於零, 而等式限制條件沒有方向性,所以λj沒有符號的限制, 其符號要視等式限制條件的寫法而定.

  為了更容易理解,我們先舉一個例子來說明一下KKT條件的由來。

  let L(x,μ)=f(x)+∑k=1μkgk(x),其中μk≥0,gk(x)≤0

  ∵μk≥0 gk(x)≤0  =>  μg(x)≤0

  ∴maxμL(x,μ)=f(x)                  (2)

  ∴minxf(x)=minxmaxμL(x,μ)     (3)

  maxμminxL(x,μ)=maxμ[minxf(x)+minxμg(x)]=maxμminxf(x)+maxμminxμg(x)=minxf(x)+maxμminxμg(x)

  又∵μk≥0, gk(x)≤0

  

  ∴maxμminxμg(x)=0, 此時μ=0 or g(x)=0.

  ∴maxμminxL(x,μ)=minxf(x)+maxμminxμg(x)=minxf(x)      (4)

  此時μ=0 or g(x)=0.

  聯合(3),(4)我們得到minxmaxμL(x,μ)=maxμminxL(x,μ), 亦即

   

  minxmaxμL(x,μ)=maxμminxL(x,μ)=minxf(x)

  我們把maxμminxL(x,μ)稱為原問題minxmaxμL(x,μ)的對偶問題,上式表明當滿足一定條件時原問題、對偶的解、以及minxf(x)是相同的,且在最優解x∗處μ=0 or g(x∗)=0。把x∗代入(2)得maxμL(x∗,μ)=f(x∗),由(4)得maxμminxL(x,μ)=f(x∗),所以L(x∗,μ)=minxL(x,μ),這說明x∗也是L(x,μ)的極值點,即

  

  最後總結一下:

  

  KKT條件是拉格朗日乘子法的泛化,如果我們把等式約束和不等式約束一併納入進來則表現為:

  

  註:x,λ,μ都是向量。

  

  表明f(x)在極值點x∗處的梯度是各個hi(x∗)和gk(x∗)梯度的線性組合。

相關焦點

  • 拉格朗日乘數法
    拉格朗日乘數法 在數學最優問題中,拉格朗日乘數法(以數學家約瑟夫·路易斯·拉格朗日命名)是一種尋找變量受一個或多個條件所限制的多元函數的極值的方法。這種方法將一個有n 個變量與k 個約束條件的最優化問題轉換為一個有n + k個變量的方程組的極值問題,其變量不受任何約束。
  • 不等式專題之二元條件最值中的拉格朗日乘數法
    在大學中函數的維度不再局限為一元,大學課程中有關於二元函數最值求解內容,也有二元條件最值的求解內容,今天給出大學中利用拉格朗日乘數法求解二元條件最值的方法,該方法很容易掌握,避免了技巧性過高的拼湊,但是在計算複雜度上可能有所提高,內容僅供參考。
  • 拉格朗日乘子法
    這一篇先來介紹拉格朗日乘子法。 問題由來 在對函數優化時,如果沒有限制條件,一般直接對其求導,然後令導數為0,即可求解出極值點。但在更多的情況下,是有一些約束條件的。通常情況下,約束問題可以表示為: 也就是說,約束問題主要有2類。一類為不等式約束,另一類為等式約束。
  • 深入理解拉格朗日乘子法和KKT條件
    (Lagrange Multiplier) 和KKT條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值;如果含有不等式約束,可以應用KKT條件去求取。KKT條件是拉格朗日乘子法的泛化。之前學習的時候,只知道直接應用兩個方法,但是卻不知道為什麼拉格朗日乘子法(Lagrange Multiplier) 和KKT條件能夠起作用,為什麼要這樣去求取最優值呢?本文將首先把什麼是拉格朗日乘子法(Lagrange Multiplier) 和KKT條件敘述一下;然後開始分別談談為什麼要這樣求最優值。一.
  • 拉格朗日乘子法與KTT條件
    帶約束的優化過程應用非常普遍,拉格朗日乘子法以及其推廣KTT條件是凸函數求解極值時中常用的方法。
  • 通俗易懂 | SVM之拉格朗日乘子法
    在SVM中,將約束問題轉化成非約束問題採用到了拉格朗日乘子法。這個文章就講一下拉格朗日乘子法與KKT約束是怎麼回事。本人不是數學科班出身,但是也只能硬著頭皮講一講了。這個就是拉格朗日乘子法的直觀理解。我們會將約束問題通過拉格朗日乘子法轉換成非約束問題
  • 拉格朗日點和拉格朗日乘子法
    拉格朗日點指受兩大物體引力作用下,能使小物體穩定的點。一個小物體在兩個大物體的引力作用下在空間中的一點,在該點處,小物體相對於兩大物體基本保持靜止。在每個由兩大天體構成的系統中,按推論有5個拉格朗日點,但只有兩個是穩定的,即小物體在該點處即使受外界引力的攝擾,仍然有保持在原來位置處的傾向,每個穩定點同兩大物體所在的點構成一個等邊三角。
  • 支持向量機(三):圖解KKT條件和拉格朗日乘子法
    前言支持向量機求解最優化參數的過程中需要用到拉格朗日乘子法和KKT條件,本文用清晰易懂的圖解法說明拉格朗日乘子法和
  • 如何搞定機器學習中的拉格朗日?看看這個乘子法與KKT條件大招
    一 前置知識本文引用地址:http://www.eepw.com.cn/article/201709/363864.htm  拉格朗日乘子法是一種尋找多元函數在一組約束下的極值方法,通過引入拉格朗日乘子,可將有m個變量和n個約束條件的最優化問題轉化為具有
  • 拉格朗日插值定理的理論基礎
    而插值裡面比較常用的方法之一就是拉格朗日插值法,這篇文章就跟大家講講拉格朗日插值的理論基礎。為什麼需要進行插值我們進行數據處理的理想,當然是希望數據非常的完備,啥玩意兒都有。但現實往往不盡如人意,數據經常會缺東少西的,那怎麼辦呢?我們需要對一些不存在的數據進行一些插補。
  • 求最優化方法:拉格朗日乘數法 圖解高等數學-下 15
    11.8 Lagrange 乘子如果是求定義域內約束在某個區域內函數的極值, 可以用本次講述的 Lagrange乘子法.約束最大值和最小值觀察下面函數 f(x,y)=49-x^2y^2 受約束 g(x,y)=x+3y-10=0 的圖形.
  • 拉格朗日
    約瑟夫•拉格朗日(Joseph Louis Lagrange),法國數學家、物理學家。他在數學、力學和天文學三個學科領域中都有歷史性的貢獻,其中尤以數學方面的成就最為突出。  拉格朗日生平  拉格朗日1736年1月25日生於義大利西北部的都靈。
  • 大魔王拉格朗日的故事及拉格朗日中值定理
    17歲時,他讀了英國天文學家哈雷的介紹牛頓微積分成就的短文,開始專攻數學分析。20歲時,受歐拉的舉薦,拉格朗日被任命為普魯士科學院通訊院士。1.1 幾何&物理意義由下圖可知,拉格朗日中值定理的幾何意義是非常直觀的,幾乎所有的教材都會介紹. 其 classical證明就是基於幾何意義構造輔助函數.
  • 說說 乘數效應
    經濟學上也有類似於多米諾骨牌效應的原理,即乘數效應。 乘數效應由乘數原理而來,指的是在連鎖反應中,變量的變化引起另一變量成倍變化的經濟理論。 宏觀經濟學家凱恩斯將其應用到政府干預經濟的政策理論上來。而這一系列的連鎖反應,就是乘數效應。 觀點是一個中性詞,但是當觀點與時代背景發生結合,並且最終在社會發展進程中起到了推波助瀾的作用,則此時,觀點已經超越了知識本身的價值,多了一重身份,在歷史長河裡兼具了路標和裡程碑的意義。 從這個角度看,乘數效應恰好站在了一個時代的轉捩點。
  • 拉格朗日的傳奇人生
    之前小棗君的文章裡,曾經給大家介紹過18世紀法國兩位大神級的數學家——傅立葉和拉普拉斯。今天,我要介紹的,是和傅爺、拉爺並稱「高數三巨頭」的最後一位大神。嗯,沒錯,他就是拉格朗日。起初,他對文學非常感興趣,直到16歲那年,他偶然讀到一篇介紹牛頓微積分的文章《微積分簡介——微積分方法和它對於希臘幾何方法的優越性》,使他對牛頓產生了無限崇拜和敬仰之情,於是,他下決心要成為牛頓那樣的數學家。
  • 經濟周期視角下的中國財政支出乘數研究
    克服已有模型局限,將經濟周期特徵納入中國財政支出乘數問題研究框架,系統測算中國財政支出乘數,並著重定量考察財政支出乘數與經濟周期的關係,研究發現:中國財政支出乘數高於欠發達國家和地區,但與世界主要發達經濟體還存在一定的差距;財政支出乘數具有比較明顯的逆周期特徵,經濟低迷時期財政支出乘數是經濟繁榮期的2.3倍;1998年亞洲金融危機與2008年國際金融危機期間的財政支出乘數顯著高於其他時期。
  • 高等數學入門——拉格朗日中值定理
    例如用ε-δ語言證明函數極限這類高等數學課程不要求掌握的內容,我們不作過多介紹。本系列文章適合作為大一新生初學高等數學時的課堂同步輔導,也可作為高等數學期末複習以及考研第一輪複習時的參考資料。文章中的例題大多為紮實基礎的常規性題目和幫助加深理解的概念辨析題,並適當選取了一些考研數學試題。所選題目難度各異,對於一些難度較大或對理解所學知識有幫助的「經典好題」,我們會詳細講解。
  • 高等數學——多元函數極值及其求法
    本篇文章要講的是多元函數極值及其求法,主要包含三個內容:多元函數的極值、最值的應用問題、條件極值。三:條件極值極值問題可分為無條件極值(對自變量只有定義域限制)和條件極值(對自變量除了定義域限制外,還有其它的條件限制)求解這類問題一般是以下兩種方法:(1)帶入法:
  • 拉格朗日【數學史】
    拉格朗日和歐拉被認為是18世紀兩個最偉大的數學家。拉格朗日出生在義大利的都靈,混雜著法國和義大利的血統。他的祖父是法國騎兵隊隊長,為撒丁島的國王服務以後,在都靈定居,並與當地的一個著名家族聯姻。拉格朗日的父親一度擔任撒丁王國的陸軍司庫,但卻沒有管理好自己的財產,因此拉格朗日所繼承的遺產寥寥無幾。