通俗易懂 | SVM之拉格朗日乘子法

2021-01-14 機器學習煉丹術

在SVM中,將約束問題轉化成非約束問題採用到了拉格朗日乘子法。這個文章就講一下拉格朗日乘子法與KKT約束是怎麼回事。本人不是數學科班出身,但是也只能硬著頭皮講一講了。

從零理解

現在我們要解決這樣一個問題:這個函數距離原點最近的距離是多少。

先畫出函數圖像:

然後想求出最短距離:

這裡的思路就是,做一個以原點為中心的圓形:

不斷擴大圓形的半徑,直到圓與藍色的曲線相切:

現在。第一次與

這個,圓形與曲線相切,且切線既是圓形的切線,也是曲線的相切。

這時候,這個切線的垂線其實也就是我們所說的梯度,也叫做等高線的法線,看下面兩個圖可能會好理解一些:

那麼這個梯度怎麼計算呢?先看圓形

再看曲線的梯度計算

在相切的時候,兩者的梯度方向都在同一條直線上,可以稱之為,成比例,這裡用比例係數

所以我們匯總一下所有的已知信息,得到下面的方程組:

可以求解得到:

這個就是拉格朗日乘子法的直觀理解。

抽象成數學的形式

我們要解決的問題:

我們會將約束問題通過拉格朗日乘子法轉換成非約束問題:

【為什麼可以這樣呢?】如果求極值,偏導數為0。先對上面的公式進行求偏導數:

這兩個等式與這個等價,唯一的不同就是

當然,對於

KKT條件KKT的英文全稱:Karush-Kuhn-Tucker

之前的拉格朗日的約束條件是等值的,現在可以通過KKT條件推廣到不等式。因為限制條件往往是不大於,小於這樣的不等式,所以KKT才是拉格朗日化約束問題為非約束問題的關鍵。

對於不等式問題,就是有兩種情況:

可行解在g(x)<0,就表示這個約束條件並沒有起到約束效果,有跟沒有是一個效果(下圖中的左圖);可行解g(x)=0,就表示這個約束條件起到作用了,這就表示g(x)與f(x)相切,也就是下圖中右邊的圖。

【g(x)<0的情況】這種情況下,就是沒有限制條件下的情況,其實就是沒有約束條件的限制,也就是

【g(x)=0的情況】如果是g(x)=0的情況,那也就是約束條件起到作用了,也就意味著

所以綜上所述,在這種情況下,我們所有的條件綜合起來可以得到,其中

這三個就是KKT條件。

相關焦點

  • 拉格朗日乘子法
    這一篇先來介紹拉格朗日乘子法。 問題由來 在對函數優化時,如果沒有限制條件,一般直接對其求導,然後令導數為0,即可求解出極值點。但在更多的情況下,是有一些約束條件的。通常情況下,約束問題可以表示為: 也就是說,約束問題主要有2類。一類為不等式約束,另一類為等式約束。
  • 拉格朗日乘子法與KTT條件
    帶約束的優化過程應用非常普遍,拉格朗日乘子法以及其推廣KTT條件是凸函數求解極值時中常用的方法。
  • 深入理解拉格朗日乘子法和KKT條件
    (Lagrange Multiplier) 和KKT條件是非常重要的兩個求取方法,對於等式約束的優化問題,可以應用拉格朗日乘子法去求取最優值;如果含有不等式約束,可以應用KKT條件去求取。KKT條件是拉格朗日乘子法的泛化。之前學習的時候,只知道直接應用兩個方法,但是卻不知道為什麼拉格朗日乘子法(Lagrange Multiplier) 和KKT條件能夠起作用,為什麼要這樣去求取最優值呢?本文將首先把什麼是拉格朗日乘子法(Lagrange Multiplier) 和KKT條件敘述一下;然後開始分別談談為什麼要這樣求最優值。一.
  • 支持向量機(三):圖解KKT條件和拉格朗日乘子法
    前言支持向量機求解最優化參數的過程中需要用到拉格朗日乘子法和KKT條件,本文用清晰易懂的圖解法說明拉格朗日乘子法和
  • 如何搞定機器學習中的拉格朗日?看看這個乘子法與KKT條件大招
    一 前置知識本文引用地址:http://www.eepw.com.cn/article/201709/363864.htm  拉格朗日乘子法是一種尋找多元函數在一組約束下的極值方法,通過引入拉格朗日乘子,可將有m個變量和n個約束條件的最優化問題轉化為具有
  • 拉格朗日乘數法介紹
    拉格朗日乘數法的基本思想  作為一種優化算法,拉格朗日乘子法主要用於解決約束優化問題,它的基本思想就是通過引入拉格朗日乘子來將含有n個變量和k個約束條件的約束優化問題轉化為含有(n+k)個變量的無約束優化問題。拉格朗日乘子背後的數學意義是其為約束方程梯度線性組合中每個向量的係數。
  • 拉格朗日點和拉格朗日乘子法
    拉格朗日點指受兩大物體引力作用下,能使小物體穩定的點。一個小物體在兩個大物體的引力作用下在空間中的一點,在該點處,小物體相對於兩大物體基本保持靜止。在每個由兩大天體構成的系統中,按推論有5個拉格朗日點,但只有兩個是穩定的,即小物體在該點處即使受外界引力的攝擾,仍然有保持在原來位置處的傾向,每個穩定點同兩大物體所在的點構成一個等邊三角。
  • 【直觀詳解】拉格朗日乘法和KKT條件
    【閱讀時間】8min - 10mun【內容簡介】直觀的解讀了什麼是拉格朗日乘子法,以及如何求解拉格朗日方程,並且給出幾個直觀的例子,針對不等式約束解讀了KKT條件的必要條件和充分條件拉格朗日乘法(Lagrange multiplier)是一種在最優化的問題中尋找多元函數在其變量受到一個或多個條件的相等約束時的求局部極值的方法。
  • 拉格朗日乘數法
    拉格朗日乘數法 在數學最優問題中,拉格朗日乘數法(以數學家約瑟夫·路易斯·拉格朗日命名)是一種尋找變量受一個或多個條件所限制的多元函數的極值的方法。這種方法將一個有n 個變量與k 個約束條件的最優化問題轉換為一個有n + k個變量的方程組的極值問題,其變量不受任何約束。
  • 求最優化方法:拉格朗日乘數法 圖解高等數學-下 15
    11.8 Lagrange 乘子如果是求定義域內約束在某個區域內函數的極值, 可以用本次講述的 Lagrange乘子法.約束最大值和最小值觀察下面函數 f(x,y)=49-x^2y^2 受約束 g(x,y)=x+3y-10=0 的圖形.
  • 不等式專題之二元條件最值中的拉格朗日乘數法
    在大學中函數的維度不再局限為一元,大學課程中有關於二元函數最值求解內容,也有二元條件最值的求解內容,今天給出大學中利用拉格朗日乘數法求解二元條件最值的方法,該方法很容易掌握,避免了技巧性過高的拼湊,但是在計算複雜度上可能有所提高,內容僅供參考。
  • 拉格朗日插值定理的理論基礎
    而插值裡面比較常用的方法之一就是拉格朗日插值法,這篇文章就跟大家講講拉格朗日插值的理論基礎。為什麼需要進行插值我們進行數據處理的理想,當然是希望數據非常的完備,啥玩意兒都有。但現實往往不盡如人意,數據經常會缺東少西的,那怎麼辦呢?我們需要對一些不存在的數據進行一些插補。
  • 點寬專欄-SVM帶你玩轉期貨品種
    從線性可分到線性不可分2.1 拉格朗日對偶性變換對於之前的目標函數:可以通過拉格朗日對偶性變換到對偶變量的優化問題,即線性可分條件下支持向量機的對偶算法,這樣做的優點是:一者對偶問題往往容易求解,二者可以自然的引入核函數,進而推廣到非線性分類問題。通過拉格朗日對偶性變換得到的目標函數為(若x_i是支持向量的話,紅色部分為0):
  • [數值算法與編程]高斯消去法
    通常情況下,得到的該方程組中的K不是滿秩矩陣,其矩陣行列式為0,因此此時U的解不唯一,在採用拉格朗日乘子法或者罰函數法等方式引入了邊界條件進行修正後,K為滿秩矩陣,從而U的解唯一。  之後的任務就是求解這個方程組。求解該方程組的方式通常有兩種:直接法和迭代法。
  • 【知識庫】重力乘子∑Mweight不等於1的特殊應用
    重力乘子∑Mweight不等於1的特殊應用
  • svm是什麼?如何找到正確的超平面
    首先,我們通過一個簡單的遊戲來幫助你理解svm。遊戲規則:請將下面圖中的籃球與紅球分離開關卡一:通過這個小遊戲,你應該對svm有了一點初步的認識。藍球和白球是數據源,用來區分藍球和紅球的直線叫做分類器。
  • 科普欄目|將加子轉換為乘子--直觀理解e^πi+1=0
    x^n+…在對待e^πi這個數時,我們也可以不通過定義的無限項加和式來理解它,而是將其當作加子轉換為乘子的過程。其實在二維的複數平面上加子乘子動作的變換也是可以應用的。每個複數都是複平面上的一個點。對於加子,我們可以滑動平面,讓0點平移到此複數對應的點。而對於乘子,我們仍可以保持0點不動,將1變換到複數對應的點。
  • 拉格朗日
    約瑟夫•拉格朗日(Joseph Louis Lagrange),法國數學家、物理學家。他在數學、力學和天文學三個學科領域中都有歷史性的貢獻,其中尤以數學方面的成就最為突出。  拉格朗日生平  拉格朗日1736年1月25日生於義大利西北部的都靈。