SVM(二)從拉格朗日對偶問題到SVM
2.1 拉格朗日對偶(Lagrange duality)
先拋開上面的二次規劃問題,先來看看存在等式約束的極值問題求法,比如下面的最優化問題:
目標函式是f(w),下面是等式約束。通常解法是引入拉格朗日運算元,這裡使用來表示運算元,得到拉格朗日公式為
L是等式約束的個數。
然後分別對w和求偏導,使得偏導數等於0,然後解出w和。至於為什麼引入拉格朗日運算元可以求出極值,原因是f(w)的dw變化方向受其他不等式的約束,dw的變化方向與f(w)的梯度垂直時才能獲得極值,而且在極值處,f(w)的梯度與其他等式梯度的線性組合平行,因此他們之間存線上性關係。
然後我們探討有不等式約束的極值問題求法,問題如下:
我們定義一般化的拉格朗日公式
這裡的和都是拉格朗日運算元。如果按這個公式求解,會出現問題,因為我們求解的是最小值,而這裡的已經不是0了,若將調整成很大的正值,最後的函式結果是負無窮。因此我們需要排除這種情況,我們定義下面的函式:
這裡的P代表primal。假設或者,那麼我們總是可以調整和來使得有最大值為正無窮。而只有g和h滿足約束時,為f(w)。這個函式的精妙之處在於,而且求極大值。(只有ai=0,g(w)<0或者ai>0,g(w)=0值才會最大)
因此我們可以寫作
我們使用來表示。如果直接求解,首先面對的是兩個引數,而也是不等式約束,然後再在w上求最小值。這個過程不容易做,那麼怎麼辦呢?
D的意思是對偶,將問題轉化為先求拉格朗日關於w的最小值,將和看作是固定值。之後在求最大值的話:
這個問題是原問題的對偶問題,相對於原問題只是更換了min和max的順序,而一般更換順序的結果是Max Min(X) <= MinMax(X)。然而在這裡兩者相等。用來表示對偶問題如下:
下面解釋在什麼條件下兩者會等價
所以如果滿足了庫恩-塔克條件,那麼他們就是原問題和對偶問題的解。讓我們再次審視公式(5),這個條件稱作是KKT dual complementarity條件。這個條件隱含了如果,那麼。也就是說,時,w處於可行域的邊界上,這時才是起作用的約束。而其他位於可行域內部(的)點都是不起作用的約束,其。這個KKT雙重補足條件會用來解釋支援向量和SMO的收斂測試。
這部分內容思路比較凌亂,還需要先研究下《非線性規劃》中的約束極值問題,再回頭看看。KKT的總體思想是將極值會在可行域邊界上取得,也就是不等式為0或等式約束裡取得,而最優下降方向一般是這些等式的線性組合,其中每個元素要麼是不等式為0的約束,要麼是等式約束。對於在可行域邊界內的點,對最優解不起作用,因此前面的係數為0。
2.2 線性可分
重新回到SVM的優化問題:
我們將約束條件改寫為:
從KKT條件得知只有函式間隔是1(離超平面最近的點),對於在線上的點(),前面的係數,對於其他的不在線上的點(),極值不會在他們所在的範圍內取得,因此前面的係數,注意每一個約束式實際對應一個訓練樣本。
看下面的圖:
實線是最大間隔超平面,假設×號的是正例,圓圈的是負例。在虛線上的點就是函式間隔是1的點,那麼他們前面的係數,其他點都是。這三個點稱作支援向量。構造拉格朗日函式如下:
注意到這裡只有沒有是因為原問題中沒有等式約束,只有不等式約束。
下面我們按照對偶問題的求解步驟來一步步進行,
首先求解的最小值,對於固定的,的最小值只與w和b有關。對w和b分別求偏導數。
並得到
將上式帶回到拉格朗日函式中得到,此時得到的是該函式的最小值(目標函式是凸函式)
代入後,化簡過程如下:
最後得到
由於最後一項是0,因此簡化為
此時的拉格朗日函式只包含了變數。然而我們求出了才能得到w和b。
前面提到過對偶問題和原問題滿足的幾個條件,首先由於目標函式和線性約束都是凸函式,而且這裡不存在等式約束h。存在w使得對於所有的i,。因此,一定存在使得是原問題的解,是對偶問題的解。在這裡,求就是求了。
即可求出b。即離超平面最近的正的函式間隔要等於離超平面最近的負的函式間隔。
關於上面的對偶問題如何求解,將在SMO演算法一章中來闡明。
這裡考慮另外一個問題,由於前面求解中得到
我們通篇考慮問題的出發點是,根據求解得到的,我們代入前式得到
也就是說,以前新來的要分類的樣本首先根據w和b做一次線性運算,然後看求的結果是大於0還是小於0,來判斷正例還是負例。現在有了,我們不需要求出w,只需將新來的樣本和訓練資料中的所有樣本做內積和即可。那有人會說,與前面所有的樣本都做運算是不是太耗時了?其實不然,我們從KKT條件中得到,只有支援向量的,其他情況。因此,我們只需求新來的樣本和支援向量的內積,然後運算即可。
2.3 線性不可分
我們之前討論的情況都是建立在樣例線性可分的假設上,當樣例線性不可分時,我們可以嘗試使用核函式來將特徵對映到高維,這樣很可能就可分了。然而,對映後我們也不能100%保證可分。那怎麼辦呢,我們需要將模型進行調整,以保證在不可分的情況下,也能夠儘可能地找出分隔超平面。
看下面兩張圖:
可以看到一個離群點(可能是噪聲)可以造成超平面的移動,間隔縮小,可見以前的模型對噪聲非常敏感。再有甚者,如果離群點在另外一個類中,那麼這時候就是線性不可分了。
這時候我們應該允許一些點遊離並在在模型中違背限制條件(函式間隔小於1)。我們設計得到新的模型如下(也稱軟間隔):
引入非負引數後(稱為鬆弛變數),就允許(1)某些樣本點的函式間隔小於1,即在最大間隔區間裡面,(2)函式間隔是負數,即樣本點在對方的區域中。而放鬆限制條件後,我們需要重新調整目標函式,以對離群點進行處罰,目標函式後面加上的就表示離群點越多,目標函式值越大,而我們要求的是儘可能小的目標函式值。這裡的C是離群點的權重,C越大表明離群點對目標函式影響越大,也就是越不希望看到離群點。我們看到,目標函式控制了離群點的數目和程度,使大部分樣本點仍然遵守限制條件。
模型修改後,拉格朗日公式也要修改如下:
這裡的和都是拉格朗日乘子,回想我們在拉格朗日對偶中提到的求法,先寫出拉格朗日公式(如上),然後將其看作是變數w和b的函式,分別對其求偏導,得到w和b的表示式。然後代入公式中,求帶入後公式的極大值。整個推導過程類似以前的模型,這裡只寫出最後結果如下:
此時,我們發現沒有了引數,與之前模型唯一不同在於又多了的限制條件。需要提醒的是,b的求值公式也發生了改變,改變結果在SMO演算法裡面介紹。先看看KKT條件的變化:
上面式子分別表明在兩條間隔線外的樣本點前面的係數為0,離群樣本點前面的係數為C,而支援向量(也就是在超平面兩邊的最大間隔線上)的樣本點前面係數在(0,C)上。通過KKT條件可知,某些在最大間隔線上的樣本點也不是支援向量,相反也可能是離群點。
相關推薦
SVM(二)從拉格朗日對偶問題到SVM
2.1 拉格朗日對偶(Lagrange duality) 先拋開上面的二次規劃問題,先來看看存在等式約束的極值問題求法,比如下面的最優化問題: 目標函式是f(w),下面是等式約束。通常解法是引入拉格朗日運算元,這裡使用來表示運算元
詳解SVM系列(二):拉格朗日對偶性
拉格朗日函式有什麼用? 在約束最優化問題中,常常利用拉格朗日對偶性將原始問題轉換為對偶問題,通過解對偶問題而得到原始問題的解。 原始問題: 假設 f (
SVM支援向量機-拉格朗日乘子與對偶問題(1)
對於支援向量機,我們首先要關注的幾個點就是間隔,超平面,支援向量,再深入的話就是對偶問題,拉格朗日對偶問題,凸優化,和 KKT條件,我們先從基本的間隔,超平面,支援向量說起。1.SVM基礎模型給定訓練集
拉格朗日對偶性(KKT)
sum 問題 clas 4.4 我們 line 約束 分別是 lin 1. 前言 在約束最優化問題中,常常利用拉格朗日對偶性將原始問題轉化為對偶問題,通過求解對偶問題獲得原始問題的解。該方法應用在許多統計學方法中,如最大熵模型、支持向量機。 2. 原始問題 假設\(f(x)
機器學習數學原理(5)——廣泛拉格朗日乘子法
機器學習數學原理(5)——廣泛拉格朗日乘子法 這一篇部落格針對的是有約束的凸優化問題,主要是為後面的最優間隔分類器以及其演化的SVM(支援向量機,Support Vector Machine)演算法作鋪墊。Andrew Ng在講解最優間隔分類器時運用了廣泛拉格朗日乘子法但並沒有講的十
SVM支援向量機-拉格朗日,對偶演算法的初解
許多地方得SVM講得都很晦澀,不容易理解,最近看到一篇不錯的博文寫得很好,同時加上自己的理解,重新梳理一下知識要點 http://blog.csdn.net/zouxy09/article/details/17291543 一、引入 SVM是個分類器。我們知道,分類的目的
拉格朗日對偶問題(李航《統計學習方法》)
思路 具體的公式就不黏貼了,只把大體思路記錄下來,方便本人及有需要的人查閱。具體講解可以去看李航的《統計學習方法》。 首先給出一個原始問題,原始問題一般都是帶約束條件的,第一步就是利用拉格朗日乘子將原始問題轉化為無約束最優化問題。 將x視作常量,α,β
實驗二:Lagrange拉格朗日插值法之C語言程式碼
拉格朗日插值多項式的演算法就比前面的簡單些,30行程式碼左右可以搞定,不過為了通俗易懂,這裡我寫了比較多的註釋.題目:已知下列函式表: x | 0.56160 | 0.56280 | 0.56401 | 0.56521 | y
拉格朗日對偶性
class 機器 引入 nbsp beta blog pos max 必要條件 整理自統計機器學習附錄C。 目錄: 原始問題 對偶問題 原始問題與對偶問題的關系 1、原始問題 $\underset{x \in R^n} {min} \quad f(x)$ $s.
拉格朗日對偶
向量 拉格朗日乘數法 9.png 最優解 不等式 問題: 其中 bubuko 應用 拉格朗日對偶 對偶是最優化方法裏的一種方法,它將一個最優化問題轉換成另外一個問題,二者是等價的。拉格朗日對偶是其中的典型例子。對於如下帶等式約束和不等式約束的優化問題:
為什麼支援向量機要用拉格朗日對偶演算法來解最大化間隔問題
這樣: 就可以由求特徵向量w轉化為求比例係數a, 就可以匯出含有內積形式的目標函式, 就可以實現對內積後的gram矩陣使用核函式,以達到非線性分類的目的。 簡而言之,就是以上。 有人回覆:嗯,這是為了方便引入核函式。如果是線性可分問題,那麼直接用一般解QP問題的方法是否更好? 個人意見:支援向量機實現非線性的
ML—拉格朗日對偶和KKT條件
Andrew Zhang Tianjin Key Laboratory of Cognitive Computing and Application Tianjin University Oct
《統計學習方法》附錄C拉格朗日對偶性學習筆記
最優化問題有三種形式:(1)無約束優化問題;(2)有等式約束的優化問題;(3)有不等式約束的優化問題。這部分是解決第三種最優化問題,即有不等式約束的優化問題。 一、原始問題:極小極大問題 假設f(x),ci(x),hj(x)是定義在Rn上的連續可微函式,
解密SVM系列(一):關於拉格朗日乘子法和KKT條件
寫在之前 支援向量機(SVM),一個神祕而眾知的名字,在其出來就受到了莫大的追捧,號稱最優秀的分類演算法之一,以其簡單的理論構造了複雜的演算法,又以其簡單的用法實現了複雜的問題,不得不說確實完美。 本系列旨在以基礎化的過程,例項化的形式一探S
SVM演算法(深入理解拉格朗日乘子法與KKT條件的證明)
SVM應該是一個應用到數學知識很多的AI演算法,關於KKT的證明花了很長時間,裡面涉及到大量線性代數的知識。 對偶關係、方向導數與梯度的關係、梯度方向與構造的可取區域的關係、拉格朗日乘子引入的真實含義等等。 (一)間隔與支援向量 SVM(support vector
bzoj2876 [NOI2012]騎行川藏(拉格朗日乘數法)
輸入輸出格式 int 至少 lin 答案 就是 math spa space 題目描述 蛋蛋非常熱衷於挑戰自我,今年暑假他準備沿川藏線騎著自行車從成都前往拉薩。川藏線的沿途有著非常美麗的風景,但在這一路上也有著很多的艱難險阻,路況變化多端,而蛋蛋的體力十分有限,因此在每天的
尋找“最好”(3)——函數和泛函的拉格朗日乘數法
big 我們 -a 都是 使用 col 可能 條件 解釋 拉格朗日乘數法 大多數的優化問題都會加入特定的約束,而不僅僅是指定起點和終點,此時需要更好的辦法去解決優化問題,拉格朗日乘數法正是一種求約束條件下極值的方法。 簡單地說,拉格朗日乘數法(又稱為拉格朗日乘數法)
CodeForces - 813C The Tag Game(拉格朗日乘數法,限制條件求最值)
The int main fixed 方法 情況 upper typedef 題目 【傳送門】http://codeforces.com/problemset/problem/813/C 【題意】給定整數a,b,c,s,求使得 xa yb zc值最大的實數 x,y,z
拉格朗日二次插值法C語言版
數值表是這樣的 X:0.46,0.47,0.48,,,,,,, Y:0.4846555,0.4937452,0.5027498,,,,,, 由於是二次插值法,只需要三組XY資料 程式碼如下: #include "stdafx.h" #include "iostre
2018牛客網暑期ACM多校訓練營(第一場)F.Sum of Maximum(組合數學+拉格朗日插值)
題目連結:https://www.nowcoder.com/acm/contest/139#question 轉載出處:http://tokitsukaze.live/2018/07/19/2018niuke1.F/ 程式碼: #include <bits/