支持向量機(jī)(SVM)
目錄
·簡(jiǎn)介
·凸二次規(guī)劃
·拉格朗日乘數(shù)法與KKT條件
·拉格朗日對(duì)偶問題
·支持向量機(jī)(SVM)
·再生核希爾伯特空間览芳、核函數(shù)與核技巧
·軟間隔(softmargin)與正則化
·SVM與邏輯回歸
·SVM與神經(jīng)網(wǎng)絡(luò)
·支持向量回歸機(jī)(SVR)
·SVR與多項(xiàng)式回歸
·順序最小化算法(SMO)
·半監(jiān)督SVM
簡(jiǎn)介
支持向量機(jī)(SVM)做為一種二分類算法斜姥,與其他分類算法相比,在小的數(shù)據(jù)集上沧竟,分類效果好铸敏,泛化能力強(qiáng),且可以處理非線性的分類問題屯仗,支持向量回歸機(jī)(SVR)是支持向量機(jī)在回歸問題上的一種推廣搞坝。半監(jiān)督的支持向量機(jī)(S3VM)是支持向量機(jī)在半監(jiān)督學(xué)習(xí)上的一種推廣搔谴。
本文主要真對(duì)SVM魁袜,系統(tǒng)的在數(shù)學(xué)上進(jìn)行理論推導(dǎo),要想在數(shù)學(xué)上推導(dǎo)SVM,首先要介紹三個(gè)內(nèi)容:凸二次規(guī)劃峰弹、拉格朗日乘數(shù)法和KKT店量、拉格朗日對(duì)偶問題。
凸二次規(guī)劃(convex quadratic programming)
凸二次規(guī)劃從名字上既可以理解鞠呈,什么是凸融师,其目標(biāo)函數(shù)二階導(dǎo)數(shù)大于等于零(既目標(biāo)函數(shù)為凸函數(shù)),且可行域是凸集蚁吝,什么是二次旱爆,其目標(biāo)函數(shù)最高是二次的,什么是規(guī)劃窘茁,其解決的問題是給定條件下求目標(biāo)函數(shù)的最值怀伦。為什么要單獨(dú)討論他,是因?yàn)楹芏鄶?shù)學(xué)模型都是凸二次規(guī)劃模型山林,如:投資組合中的馬科維茨模型房待。凸二次規(guī)劃具體的數(shù)學(xué)定義如下:
考慮如下優(yōu)化問題:
若其中A是有限維實(shí)矩陣,Q為半正定實(shí)矩陣驼抹。
上面給出的就是凸二次規(guī)劃的定義。
對(duì)于凸二次規(guī)劃給出幾點(diǎn)說明
1、約束條件等式問題
標(biāo)準(zhǔn)的二次規(guī)劃問題約束條件中并沒有等式約束丰包,但是當(dāng)約束條件中出現(xiàn)等式是担汤,可以將這個(gè)等式轉(zhuǎn)化為兩個(gè)不等式約束,如可以轉(zhuǎn)化為
和
兩個(gè)不等式明也, 所以約束條件中可以含有等式镣隶。
2、矩陣Q的問題
為什么Q是半正定矩陣問題就是凸問題诡右。只要證明是凸函數(shù)即可安岂,
對(duì)于任意的,有:
而:
所以上面兩公式相減帆吻,得到域那。
若Q是半正定矩陣,則上式大于零猜煮,有:
所以問題是凸的次员。
3、矩陣Q到底是什么王带。
對(duì)于
對(duì)向量x的各個(gè)分量求二階導(dǎo)淑蔚,
其中 是Q的第i行第j列的元素。
所以其實(shí)Q是一個(gè)黑森矩陣愕撰,是描述這個(gè)超曲面的局部曲率刹衫。
上面就是凸二次規(guī)劃問題的介紹醋寝,求解這個(gè)凸二次規(guī)劃問題常用的方法為橢球法,內(nèi)點(diǎn)法和拉格朗日法带迟。下面詳細(xì)介紹拉格朗日乘數(shù)法音羞。
拉格朗日乘數(shù)法
其實(shí)每個(gè)模型的特點(diǎn),都與其獨(dú)特的數(shù)學(xué)推導(dǎo)過程仓犬,息息相關(guān)嗅绰,在推導(dǎo)中用的方法一定程度上決定了最后模型的特點(diǎn),如Adaboost只能用指數(shù)損失函數(shù)推導(dǎo)搀继,SVM也一樣窘面,其最后的特點(diǎn)完全是由推導(dǎo)過程中,使用了拉格朗日乘數(shù)法和KKT條件所決定的叽躯。
對(duì)于一般無約束的的函數(shù)優(yōu)化問題民镜,我們可以直接求導(dǎo),令導(dǎo)數(shù)等于零险毁,找到極值點(diǎn)制圈,再驗(yàn)證最大值最小值。而對(duì)于有約束的函數(shù)優(yōu)化問題畔况,可以使用拉格朗日乘數(shù)法鲸鹦,將其轉(zhuǎn)化為無約束的函數(shù)最優(yōu)化問題。
但需要特別指出的是跷跪,轉(zhuǎn)化成的無約束的函數(shù)最優(yōu)化馋嗜,也只能求其極值,極值和最值還是有一定差別吵瞻,一定要理解這個(gè)差別葛菇,拉格朗日乘數(shù)法求得的是極值,并不是最值橡羞,還有其并不能確定極值一定存在眯停,即使轉(zhuǎn)化前的目標(biāo)函數(shù)是凸函數(shù),由于存在約束條件卿泽,其也可能沒有極值莺债。轉(zhuǎn)化后的目標(biāo)函數(shù)如果是凸函數(shù),由于沒有約束條件签夭,那必存在機(jī)值齐邦。以下討論在極值存在下討論。
其具體的推導(dǎo)如下:
先考慮只有等式約束的優(yōu)化問題第租;
其中x是一個(gè)n維向量措拇,,這里f(x)需滿足一個(gè)條件,即f(x)對(duì)向量x各個(gè)分量的偏導(dǎo)數(shù)連續(xù)慎宾。很明顯凸二次規(guī)劃的目標(biāo)函數(shù)滿足之一條件丐吓。
對(duì)于g(x)=0,是一個(gè)n維空間的超曲面浅悉,我們先討論g(x)=0這個(gè)超曲面的一些性質(zhì)。對(duì)于超曲面上的任意一個(gè)點(diǎn)汰蜘,這里討論的g(x)都是連續(xù)可導(dǎo)的,不連續(xù)之宿,不可導(dǎo)的g(x)不做討論族操。由于這個(gè)超曲面是連續(xù)可導(dǎo),所以其上對(duì)于任意的點(diǎn)
比被,都存在一個(gè)小的領(lǐng)域U色难,在鄰域U里面過點(diǎn)
的任意曲線,都可以參數(shù)化表示等缀。
設(shè)過點(diǎn)的任意曲線的參數(shù)表達(dá)式為:
則該曲線在點(diǎn)x處的方向?qū)?shù)為:
又點(diǎn)x在曲面g(x)=0上,所以有:
兩邊關(guān)于t求導(dǎo)得到:
所以有:
所以兩個(gè)向量是正交的尺迂,而向量是函數(shù)
的梯度方向笤妙。但是很明顯這里g(x_1,x_2,...x_3)=0是一個(gè)超曲面,并不是一個(gè)函數(shù)噪裕。所以這里要區(qū)分開來蹲盘。而從這個(gè)公式,可以看出膳音,這個(gè)方向正交與過這一點(diǎn)的任意曲線在這一點(diǎn)上的方向向量召衔,所以這個(gè)方向是曲面的法向量方向。
所以我們?cè)诖说玫搅艘粋€(gè)結(jié)論:
結(jié)論一祭陷、超曲面g(x)=0的法向量是函數(shù)y=g(x)的梯度方向苍凛。
超曲面g(x)=0的性質(zhì)討論完了,我們?cè)賮砜茨繕?biāo)函數(shù)f(x)在最優(yōu)點(diǎn)處的性質(zhì)兵志。
開始我們就假設(shè)了的存在醇蝴,不存在的情況不做討論,因?yàn)槔窭嗜粘藬?shù)法解決不了這一類問題。
結(jié)論二想罕、對(duì)于最優(yōu)點(diǎn),一定有f(x)在該點(diǎn)的梯度
垂直于約束曲面哑蔫。
對(duì)于上面的結(jié)論,使用反證法證明弧呐,
證明: 假設(shè)不垂直于約束曲面闸迷,則根據(jù)垂直的定義,必然可以在曲面g(x)=0上俘枫,找到過最優(yōu)點(diǎn)
的一條曲線腥沽,使得
不垂直于這條曲線在
點(diǎn)的方向向量, 則
必在這條曲線的方向向量上有投影鸠蚪,
所以今阳,對(duì)于點(diǎn),因?yàn)樯厦娴那€是連續(xù)可導(dǎo)师溅,所以可以在曲線上可以找到點(diǎn)
,其中
為無窮小的方向向量盾舌。
觀察點(diǎn)的f值墓臭,有:
上面為兩個(gè)向量的內(nèi)積,因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cnabla%20f(x_1%5E*%2Cx_2%5E*%2C...x_n%5E*)" alt="\nabla f(x_1^*,x_2^*,...x_n^*)" mathimg="1">與向量
不垂直妖谴,所以
不為零窿锉,而Q是半正定矩陣,所以有:
取時(shí)膝舅,如果取
與向量
內(nèi)積為正的方向嗡载,對(duì)于固定的
,在零附近,有以下公式:
因?yàn)樯鲜胶竺媸?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cvarepsilon" alt="\varepsilon" mathimg="1">的二階仍稀,前面是一階洼滚,后面收斂比前面快。
由上面的不等式得到:
所以有:
所以這與是f(x)的極小值點(diǎn)相矛盾技潘。所以假設(shè)不成立遥巴。
至此,我們得到了一下兩個(gè)結(jié)論:
1享幽、超曲面g(x)=0的法向量是函數(shù)y=g(x)的梯度方向挪哄。
2、對(duì)于最優(yōu)點(diǎn),一定有f(x)在該點(diǎn)的梯度
垂直于約束曲面琉闪。
由上面的兩個(gè)結(jié)論可以得到迹炼,在最優(yōu)點(diǎn)處,曲面g(x)=0的法向
與目標(biāo)函數(shù)f(x)在這一點(diǎn)的梯度
是共線的颠毙。
所以斯入,對(duì)于目標(biāo)函數(shù)的極值點(diǎn),一定滿足下面方程:
其中為非零常數(shù)蛀蜜。
此時(shí)我們構(gòu)造一個(gè)函數(shù):
這個(gè)函數(shù)就是拉格朗日函數(shù)刻两。
因?yàn)?br>
所以,原帶約束的優(yōu)化問題的極值點(diǎn),必然滿足
其中x是向量滴某,是標(biāo)量磅摹。
解上面的方程組,即可求得原問題的極值點(diǎn)霎奢。
至此户誓,我們就推出了約束條件為等式的情況。下面考慮約束條件為的情況幕侠。
考慮不等式約束的優(yōu)化問題
其中x是一個(gè)n維向量帝美,,這里f(x)需滿足一個(gè)條件,即f(x)對(duì)向量x各個(gè)分量的偏導(dǎo)數(shù)連續(xù)晤硕。很明顯凸二次規(guī)劃的目標(biāo)函數(shù)滿足之一條件悼潭。
設(shè)是f(x)的最優(yōu)點(diǎn)庇忌,此時(shí)分兩種情況進(jìn)行討論,
在g(x)=0上和
在g(x)<0內(nèi)舰褪。
其一
當(dāng)在g(x)=0上時(shí)皆疹,因?yàn)閒(x)在
上連續(xù)且可導(dǎo),且由f(x)導(dǎo)函數(shù)也連續(xù)占拍,所以略就,當(dāng)極小值點(diǎn)
在g(x)=0上時(shí),f(x)在
沒有極小值點(diǎn)刷喜,且f(x)在
上的值全部大于
残制。
有因?yàn)樘荻纫欢ㄊ呛瘮?shù)上升的方向立砸,所以的方向一定是指向
的區(qū)域內(nèi)部掖疮。
而在g(x)=0上,的方向也是函數(shù)g(x)增大的方向颗祝,所以
的方向一定是指向
的區(qū)域外部浊闪。
所以當(dāng)在g(x)=0上時(shí),
,其中
所以只要求解關(guān)于自變量
的極值點(diǎn)螺戳,就可以求得原始問題的極值點(diǎn)搁宾。即解一下方程組:
其中
其二
當(dāng)在g(x)<0內(nèi)部時(shí),其約束對(duì)目標(biāo)函數(shù)f(x)的極小值點(diǎn)不起作用倔幼,可直接
,求出的向量x盖腿,就是目標(biāo)函數(shù)的極小值點(diǎn)。
為和上面表達(dá)式統(tǒng)一损同,這種情況相當(dāng)于翩腐,
所以只要求解關(guān)于自變量
的極值點(diǎn),就可以求得原始問題的極值點(diǎn)膏燃。即解一下方程組:
KKT 條件
通過以上其一茂卦,其二情況的分析,我們得到组哩,當(dāng)時(shí)等龙,必有
,當(dāng)
時(shí),必有
所以伶贰,與g(x)必然有一個(gè)為零蛛砰,即,
所以此時(shí)有:
這個(gè)就是與原始問題中不等式約束對(duì)應(yīng)的拉格朗日的KKT條件黍衙。也就是說當(dāng)約束條件中有不等式約束時(shí)暴备,拉格朗日乘數(shù)法解出的解,必須滿足KKT條件们豌。
到此涯捻,我們得到了拉格朗日乘數(shù)法浅妆,詳細(xì)敘述如下:
拉格朗日乘數(shù)法詳細(xì)描述
對(duì)于如下帶約束的優(yōu)化問題
其中x是一個(gè)n維向量,,這里f(x)需滿足一個(gè)條件障癌,即f(x)對(duì)向量x各個(gè)分量的偏導(dǎo)數(shù)連續(xù)凌外。(很明顯凸二次規(guī)劃的目標(biāo)函數(shù)滿足之一條件。)
可以轉(zhuǎn)化成以下問題涛浙。
引入拉格朗日函數(shù):
其中x為一個(gè)n維向量康辑。
求解以下方程組
以上方程組的解的x的部分,就是原問題的最優(yōu)解轿亮。其中以下條件稱為KKT條件疮薇。
多個(gè)約束的拉格朗日乘數(shù)法
對(duì)于多約束優(yōu)化問題如下:
其中x為n維向量,f(x)有關(guān)于x各個(gè)分量的連續(xù)一階偏導(dǎo)函數(shù)我注。
以上優(yōu)化問題按咒,可以轉(zhuǎn)化為以下問題。
定義廣義拉格朗日函數(shù):
其中但骨,,
為引入的拉格朗日乘數(shù)励七。
求解以下方程組,得到的解的x部分奔缠,就是原問題的最優(yōu)解。
與原始問題中不等式約束對(duì)應(yīng)的KKT條件為:
其中j=1,2,3...,k
自此拉格朗日乘數(shù)法推導(dǎo)完成。
拉格朗日對(duì)偶問題
首先要聲明的是,求解帶約束的規(guī)劃問題,上面給出可以轉(zhuǎn)換成拉格朗日函數(shù)贝攒,對(duì)未知數(shù)求導(dǎo),令導(dǎo)數(shù)等于零弥奸,直接可以解出最優(yōu)解。也就是說,原始問題已經(jīng)得到解決招拙。那為什么還要在引入拉格朗日對(duì)偶問題呢诉稍?
其實(shí)在很多時(shí)候是用不到轉(zhuǎn)換成拉格朗日對(duì)偶問題的服爷,本文的SVM推導(dǎo)匾旭,其實(shí)不用引入拉格朗日對(duì)偶問題也可以解決女蜈,在周志華的書和很多教程中并未對(duì)此進(jìn)行說明,直接引入拉格朗日對(duì)偶問題,我認(rèn)為這種推導(dǎo)是本末倒置的伪窖,必須先論證出引入拉個(gè)朗日對(duì)偶問題的必要性逸寓。
下面先給出什么是拉格朗日對(duì)偶,然后再給出為什么使用拉格朗日對(duì)偶覆山。
什么是拉格朗日對(duì)偶
對(duì)于多約束優(yōu)化問題如下:
其中x為n維向量竹伸,f(x)有關(guān)于x各個(gè)分量的連續(xù)一階偏導(dǎo)函數(shù)。
由上面的推導(dǎo)簇宽,可以得到拉格朗日函數(shù):
其中勋篓,,
為引入的拉格朗日乘數(shù)。且向量
的每個(gè)分量大于等于零
其拉格朗日對(duì)偶函數(shù)定義為:
其中魏割,,
為引入的拉格朗日乘數(shù)譬嚣。且向量
的每個(gè)分量大于等于零
上面定義了拉格朗日對(duì)偶函數(shù),下面推出拉格朗日對(duì)偶問題钞它。
對(duì)拉格朗日對(duì)偶函數(shù)進(jìn)行分析拜银。設(shè)
是原始優(yōu)化問題可行域內(nèi)的一個(gè)點(diǎn),
是原始問題的最優(yōu)解遭垛。
因?yàn)橄麓_界的定義有:
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cwidetilde%7Bx%7D" alt="\widetilde{x}" mathimg="1">是原始優(yōu)化問題可行域內(nèi)的一個(gè)點(diǎn)尼桶,所以有:
所以有
所以有:
所以:
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cwidetilde%7Bx%7D" alt="\widetilde{x}" mathimg="1"> 是可行域中任意一點(diǎn),所以對(duì)于最優(yōu)解也必須滿足上面不等式锯仪,即:
所以泵督,拉格朗日對(duì)偶函數(shù)確定了原始問題最優(yōu)解的下界。
由于對(duì)于任意滿足條件(的每個(gè)分量大于等于零)的
,上面不等式都成立卵酪,所以有:
試想如果上面的等號(hào)成立幌蚊,那么我們就可以把原始問題求f(x)的最小值谤碳,轉(zhuǎn)換成一下問題:
如果能轉(zhuǎn)化成上面問題,可以看出原問題的下確界等于上面問題的上確界蜒简,所以上面這個(gè)問題稱作原問題的拉格朗日對(duì)偶問題瘸羡。
這樣我們就定義了什么是拉格朗日對(duì)偶問題。但是上面我們假設(shè)不等式中等式成立搓茬,也就是說在有些時(shí)候不等式中等式是不成立的犹赖,此時(shí),什么時(shí)候等式成立成了關(guān)鍵問題卷仑,所以我們引入以下兩個(gè)概念峻村,強(qiáng)對(duì)偶和弱對(duì)偶。
強(qiáng)對(duì)偶和弱對(duì)偶
對(duì)于以下不等式
其中向量為原始約束優(yōu)化問題的最優(yōu)解锡凝。
我們定義如果
那么原始約束的優(yōu)化問題和以下問題成強(qiáng)對(duì)偶關(guān)系粘昨。
我們定義如果
那么原始約束的優(yōu)化問題和以下問題成弱對(duì)偶關(guān)系。
所以如果兩者成強(qiáng)對(duì)偶關(guān)系芭析,那么我們可以將原問題轉(zhuǎn)化成對(duì)偶問題來求,至于為什么大費(fèi)周章的把原問題轉(zhuǎn)化成對(duì)偶問題來解吞瞪,在后面的文章詳細(xì)分析馁启。
現(xiàn)在又有一個(gè)新問題擺在我們的面前,就是什么時(shí)候是強(qiáng)對(duì)偶問題芍秆,什么時(shí)候是弱對(duì)偶問題惯疙。對(duì)于這個(gè)問題我們給出以下定理判斷。
在證明強(qiáng)弱對(duì)偶問題的定理時(shí)妖啥,需要用到一下引理螟碎,所以先給出以下引理,再給出判斷強(qiáng)弱對(duì)偶問題的定理迹栓。
引理(凸集分離定理)
設(shè)集合S1掉分,S2是(n≥1)中的兩個(gè)不相交的非空凸集,則存在一個(gè)超平面分離S1,S2,既存在
,
以及b∈R 使得:
且:
證明:
定義集合克伊。則對(duì)任意的
必存在酥郭,
有下式成立。
所以對(duì)任意的有
因?yàn)榧蟂1愿吹,S2是(n≥1)中的兩個(gè)不相交的非空凸集不从,
所以對(duì)任意的有
所以集合S也是非空凸集合。且向量0不屬于集合S犁跪。
對(duì)于以上不包含零向量的凸集合S椿息,構(gòu)造集合
其中表示S的邊界。所以對(duì)于集合A是
的一個(gè)閉凸子集坷衍。
因?yàn)锳是閉凸集寝优,所以必然存在使得:
可以證明對(duì),都有內(nèi)積
若為零向量,則結(jié)論顯然成立枫耳,以下在
的情況下討論乏矾。
用反證法證明以上結(jié)論,假設(shè)存在向量.有
所以由向量可以構(gòu)造構(gòu)造一個(gè)垂直于向量
的向量
,構(gòu)造方式如下:
設(shè),則
,
所以
由的表達(dá)式得到迁杨,
所以钻心,推導(dǎo)出向量
又因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cmu-x%5E*%3D%5Clambda%20%5Cbeta-%5Clambda%20x%5E*%3D%5Clambda%20(%5Cbeta-%20x%5E*)" alt="\mu-x^*=\lambda \beta-\lambda x^*=\lambda (\beta- x^*)" mathimg="1">,所以與
共線,所以
也垂直于
所以:
所以铅协,與相矛盾捷沸。所以假設(shè)不成立。
所以對(duì)于構(gòu)造的凸集合S,可以找到一個(gè)向量,對(duì)
,有
而集合S中的元素可寫為z=x-y,.
所以有:
設(shè)
所以有:
而此時(shí)剛好:
所以引理得到證明狐史。
定理(強(qiáng)對(duì)偶充分條件定理):
對(duì)于多約束優(yōu)化問題如下:
其中x為n維向量痒给,f(x)有關(guān)于x各個(gè)分量的連續(xù)一階偏導(dǎo)函數(shù)坯钦。這里已經(jīng)化簡(jiǎn)為行滿秩。
如果以上問題是一個(gè)凸優(yōu)化問題侈玄,函數(shù)是凸函數(shù)婉刀,函數(shù)
是放射函數(shù), 且存在
使得:
, 對(duì)任意的j=1,2,...k,
,則原問題和對(duì)偶問題是強(qiáng)對(duì)偶的序仙。
證明:
首先我們定義集合:
其中集合D為拉格朗日函數(shù)的定義域突颊,注意這個(gè)地方不是原問題的可行域,因?yàn)檗D(zhuǎn)化成拉格朗日函數(shù)時(shí)潘悼,不存在可行域律秃。
接著我們引入上鏡圖的概念,定義集合
由上鏡集的定義棒动,可以看出,上鏡集是集合沿著前k個(gè)坐標(biāo)軸和最后一個(gè)坐標(biāo)軸的正向運(yùn)動(dòng)覆蓋的區(qū)域宾添。
因?yàn)楹瘮?shù)f(x)是凸函數(shù)船惨,函數(shù)是凸函數(shù),函數(shù)
是放射函數(shù)缕陕,所以集合
也是凸函數(shù)粱锐,所以其上鏡圖
也是個(gè)凸集。
我們令:
其中
由的定義可以看出怜浅,
就是原問題的最小值
.
可以根據(jù)凸集的定義,可以驗(yàn)證集合也是凸集蔬崩。
由恶座,
定義,可以得到
沥阳,
的交集為空跨琳。此時(shí)由凸集分離定理,可得到沪袭,存在一個(gè)非零向量
,以及
使得:
其中,
可化簡(jiǎn)為:
再化簡(jiǎn)為
上式對(duì)所有的成立冈绊。
上式對(duì)所有的成立埠啃。
由(1)式的任意性死宣,可得 ,令u從右側(cè)趨近于0碴开,t從右側(cè)趨近于0毅该,可得到:
由(2)式得博秫,u從左側(cè)趨近于0,t從左側(cè)趨近于 眶掌,可得到:
所以:
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=t_0%5Cge0" alt="t_0\ge0" mathimg="1"> 有兩種情形挡育,
第一種情況若,兩邊同時(shí)除以
,得到
朴爬,
所以
又由于拉格朗日對(duì)偶本來
所以
所以此時(shí)原問題和拉格朗日對(duì)偶問題是強(qiáng)對(duì)偶關(guān)系即寒。
第二種情況若,有
此時(shí)因?yàn)槎ɡ淼臈l件中有召噩,存在,有
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=g_i(x)" alt="g_i(x)" mathimg="1">是凸函數(shù)母赵,必有連續(xù)性,必然存在的解集的一個(gè)真閉子集U,使得
有
而,所以在U上
所以
在集合U上具滴,因?yàn)榉律浜瘮?shù)h_i(\widetilde{x})=0$矛盾周蹭。
所以,
所以.
,所以向量
,這與凸集分離定理中(\mu_0,\lambda_0,t_0)非零矛盾疲恢,所以
不能等于0.所以定理得到證明谷醉。
Slater條件
所以由這個(gè)定理可以輕松簡(jiǎn)單的判斷一個(gè)原問題和拉格朗日對(duì)偶問題是強(qiáng)對(duì)偶關(guān)系還是弱對(duì)偶關(guān)系。
只需要看是否滿足定理中的條件:
對(duì)于一個(gè)凸優(yōu)化問題冈闭,存在使得:
, 對(duì)任意的j=1,2,...k成立,
成立俱尼。
這個(gè)條件也被稱為Slater條件。
自此萎攒,我們就引入了判斷朗格朗日對(duì)偶為強(qiáng)對(duì)偶的條件遇八。下面我們給出為什么使用拉格朗日對(duì)偶問題。
為什么使用拉格朗日對(duì)偶問題
如上面的分析耍休,我們對(duì)拉格朗日函數(shù)中的未知數(shù)進(jìn)行求導(dǎo)刃永,既可以得到原問題的最優(yōu)解,為何還有再引入拉格朗日對(duì)偶問題羊精,之所以多此一舉的使用拉格朗日對(duì)偶問題斯够,主要有以下兩點(diǎn)原因。
原因1
大大縮減了計(jì)算量喧锦,不論是直接解原問題读规,還是對(duì)拉格朗日函數(shù)求導(dǎo),令導(dǎo)數(shù)等于零燃少,其計(jì)算量都和自變量x的維度有關(guān)束亏,如果x的維度很高時(shí),這兩種方法求解時(shí)的計(jì)算量就會(huì)變大阵具,而不論x的維度多高碍遍,轉(zhuǎn)化成拉格朗日對(duì)偶問題,其未知數(shù)的數(shù)量和約束條件的多少有關(guān)怕敬。從而大大減少了計(jì)算量。
原因2
對(duì)任意的滿足定義域的
,有:
所以一定為一個(gè)凹函數(shù)熬的。
一定是一個(gè)凸函數(shù)。
也就是說不論原問題是不是凸優(yōu)化問題,拉格朗日對(duì)偶問題一定是可以轉(zhuǎn)化為凸優(yōu)化問題崭闲。所以這就是有時(shí)引入拉格朗日對(duì)偶問題的必要性沙兰。
原因3
特別的在SVM中但荤,引入拉格朗日對(duì)偶問題烧颖,有一個(gè)至關(guān)重要的原因,是可以方便的引入核函數(shù)胞皱。這點(diǎn)在下面SVM的推導(dǎo)中說明反砌。
支持向量機(jī)(SVM)
和其他模型推導(dǎo)不一樣,支持向量機(jī)模型的推導(dǎo)并不是從損失函數(shù)出發(fā)萌朱,其推導(dǎo)過程只是在中途化簡(jiǎn)時(shí)用到損失函數(shù)宴树。
支持向量機(jī)模型其實(shí)是一個(gè)凸二次規(guī)劃問題,所以其推導(dǎo)從凸二次規(guī)劃出發(fā)晶疼。下面我們就具體的介紹怎么把支持向量機(jī)轉(zhuǎn)化成凸二次規(guī)劃問題酒贬。
設(shè)訓(xùn)練樣本集,
其中代表第i個(gè)樣本點(diǎn)的n個(gè)屬性值,
是第i個(gè)樣本點(diǎn)的label又憨。
現(xiàn)在需要找一個(gè)超平面將樣本集中的正負(fù)樣本分開。首先考慮簡(jiǎn)單的形式锭吨,如果可以找到兩個(gè)凸集,使得正樣本集在凸集
內(nèi)蠢莺,負(fù)樣本集在凸集
內(nèi),那么由上面介紹的凸集分離定理,存在一個(gè)超平面零如,可以將正負(fù)樣本完美的分離躏将。如下圖所示:
由上圖可以看出,可以將訓(xùn)練樣本集D完美分開的超平面有很多個(gè)考蕾,現(xiàn)在我們要找到泛化能力最強(qiáng)的一個(gè)祸憋,也就是說當(dāng)樣本增加時(shí),這個(gè)超平面還可以盡可能的將樣本完美分離肖卧。我下面試著找到這個(gè)超平面蚯窥。
和所有監(jiān)督模型一樣,訓(xùn)練樣本集的最后一個(gè)維度y是樣本的label,由上圖可以看出超平面所在的空間對(duì)應(yīng)的是樣本點(diǎn)的屬性空間喜命,這個(gè)空間與label所在的維度空間沒有關(guān)系沟沙, 先不考慮這個(gè)維度,所以下面說的樣本點(diǎn)特指的是剔除了label的樣本點(diǎn)壁榕。
設(shè)這個(gè)完美的超平面方程為:
第一步:首先求出樣本空間任意點(diǎn)(其中n為樣本點(diǎn)的n個(gè)屬性)到這個(gè)超平面的距離矛紫。
由超平面的方程可以得到,超平面的法向量為,則單位法向量為
牌里。
設(shè)這個(gè)距離為d, 則是點(diǎn)x在超平面上的投影點(diǎn)(法向量指向
一側(cè)時(shí)是減颊咬,法向量不指向
一側(cè)時(shí)是加)。 則有下面方程成立:
所以:
以上求出了樣本點(diǎn)到超平面的距離牡辽。
第二步:求陰性樣本到陽(yáng)性樣本之間的最小距離喳篇。
對(duì)于每個(gè)label等于1的樣本點(diǎn)有下面公式成立:
對(duì)于每個(gè)label等于-1的樣本點(diǎn)有下面公式成立:
所以存在,
,使下是成立:
而且使上述等式成立的陽(yáng)性樣本和陰性樣本可以找到。
此時(shí)态辛,令
則有
所以有:
這個(gè)公式可以看出麸澜,通過調(diào)整初始的w,b得到的只差統(tǒng)一的一個(gè)倍數(shù)或者統(tǒng)一的一個(gè)平移奏黑。
所以求出 即是求出w,b熟史, 所以這里為了后面表述方便馁害,令w,b代替以上公式中的
.所以有:
所以此時(shí)陽(yáng)性樣本到陰性樣本之間的最小距離為:
其中
因?yàn)?br>
所以:
取使得上述不等式中等號(hào)成立的陽(yáng)性樣本點(diǎn)和陰性樣本點(diǎn),則這個(gè)最小距離可求出如下:
所以對(duì)于訓(xùn)練樣本集D,陽(yáng)性樣本點(diǎn)和陰性樣本點(diǎn)的最小距離為:
要使得模型泛化性能好忍啸,支持向量機(jī)的做法是仰坦,最大化這個(gè)距離。這就是支持向量機(jī)的本質(zhì)吊骤。
在上述過程中缎岗,滿足不等式中等號(hào)的樣本點(diǎn)稱為支持向量静尼。因?yàn)樽詈笸茖?dǎo)的這個(gè)距離和其他的點(diǎn)(向量)沒有任何關(guān)系白粉,只與這些點(diǎn)有關(guān),所以者些被稱為支持向量逼庞。
第三步:最大化上述距離趁窃。
我們得到了陰性樣本和陽(yáng)性樣本之間的最小距離:
現(xiàn)在要尋找w,b使得這個(gè)距離最大化馅巷。
既轉(zhuǎn)化為以下問題:
以上問題右等價(jià)于以下問題:
這個(gè)優(yōu)化問題就是支持向量機(jī)(SVM)的常見形式。
注意上述問題中w鹃祖,b是自變量,約束條件都是仿射函數(shù)普舆,所以上述優(yōu)化問題是一個(gè)凸優(yōu)化恬口。且是一個(gè)凸二次規(guī)劃問題。
對(duì)于這個(gè)凸二次規(guī)劃問題沼侣,由上文的分析祖能,我們引入拉格朗日函數(shù):
因?yàn)榇藭r(shí)自變量的維度是n+m+1維,解起來還是比較麻煩蛾洛,所以轉(zhuǎn)化為拉格朗日對(duì)偶問題解決养铸。
由于上面的是凸二次規(guī)劃,滿足slater條件轧膘,所以其拉格朗日對(duì)偶問題是強(qiáng)對(duì)偶钞螟,其對(duì)偶問題的最優(yōu)值就是原問題的最優(yōu)值。
第四步:下面導(dǎo)出拉格朗日對(duì)偶問題:
上面的拉格朗日函數(shù)對(duì)各個(gè)維度求偏導(dǎo)得到:
所以:
所以原拉格朗日函數(shù)可以消掉,得到以下函數(shù):
所以拉格朗日對(duì)偶問題為:
由上面拉格朗日對(duì)偶問題的分析谎碍,這個(gè)也是一個(gè)凸優(yōu)化鳞滨,且這個(gè)優(yōu)化問題的自變量的維度只有m維,比原問題減小了n+1維蟆淀,所以大大減小了計(jì)算量拯啦。
但是在m很大是求解這個(gè)問題還是很麻煩,未解決這個(gè)問題引入順序最小化(SMO)算法扳碍,大大縮短計(jì)算時(shí)間提岔,SMO算法在下面介紹,這里為了SVM的推導(dǎo)接著進(jìn)行笋敞。
對(duì)于上面拉格朗日對(duì)偶問題碱蒙,我們用SMO算法解出,帶入到以下等式:
可求得,由于原始的帶約束的凸二次規(guī)劃中,約束條件中是不等式約束,所以轉(zhuǎn)化為拉格朗日函數(shù)求解時(shí)赛惩,會(huì)伴隨KKT條件:
所以此時(shí)可以得到哀墓,解出的要么大于零,要么等于零喷兼。當(dāng)
大于零時(shí)篮绰,其
,此時(shí)可反解出b。
這樣我們就求出了一開始需要的超平面
需要注意的是季惯,由
得到吠各,在求的后,求解
時(shí)勉抓,
對(duì)應(yīng)的樣本點(diǎn)是沒有起作用的贾漏,求
時(shí),解起作用的是
的點(diǎn)藕筋,當(dāng)
時(shí)纵散,由KKT條件,得到
隐圾,這些點(diǎn)被稱為支持向量伍掀。
也就是說最終模型求解出來后,僅僅與支持向量有關(guān)暇藏,與其他點(diǎn)沒關(guān)系蜜笤。
至此,我們推導(dǎo)出了SVM的基本款叨咖。為什么說是基本款瘩例,因?yàn)橐陨夏P椭恢С肿詈?jiǎn)單的數(shù)據(jù)集是線性可分的問題。所以要對(duì)其擴(kuò)展甸各,擴(kuò)展方向有兩個(gè)垛贤,一個(gè)是數(shù)據(jù)集非線性可分,一個(gè)是數(shù)據(jù)集不可分趣倾。對(duì)于解決非線性的問題聘惦,我們引入核函數(shù)。對(duì)于不可分的問題儒恋,我們引入松弛變量善绎。下面分別介紹。
再生核希爾伯特空間诫尽、核函數(shù)與核技巧
在上面的推導(dǎo)過程中禀酱,訓(xùn)練數(shù)據(jù)集是線性可分的,如果上面的數(shù)據(jù)集D如下圖分布牧嫉,我們是不可能找到一個(gè)平面將其陰性樣本和陽(yáng)性樣本分開的剂跟。
此時(shí)我們要想使用SVM减途,必須做一個(gè)變換。
如上圖所示數(shù)據(jù)集曹洽,可以第i個(gè)樣本點(diǎn)的極坐標(biāo)變換為
可以反解出為:
把上面的映射關(guān)系設(shè)為:
所以原數(shù)據(jù)集的分布圖可以轉(zhuǎn)化為下圖:
此時(shí)若用當(dāng)成新的直角坐標(biāo)鳍置,數(shù)據(jù)集是線性可分的,是可以使用上面推導(dǎo)的SVM的送淆。
此時(shí)SVM求解時(shí)的拉格朗日對(duì)偶問題如下:
對(duì)于上述公式中的,有:
此時(shí)SVM求解時(shí)的拉格朗日對(duì)偶問題如下:
可以看到税产,這個(gè)問題并沒有變量,所以我們只要通過樣本點(diǎn)
能直接求得
,那么問題就大大的簡(jiǎn)單了,
我們?cè)O(shè):
如果能找到函數(shù),我們根本不需要知道
的具體表達(dá)式偷崩,直接求解以下問題即可:
所以問題的關(guān)鍵就轉(zhuǎn)化成了兩個(gè)問題辟拷,其一、對(duì)于任意的數(shù)據(jù)集环凿,是否存在梧兼,如果
根本不存在,這就行不通智听。其二、
如果存在渡紫,那么怎么求得
.
Cover定理
對(duì)于一個(gè)復(fù)雜的模式分類問題到推,若該分類問題的樣本空間不是稠密的,則將其分類問題非線性地投射到高維空間將比投射到低維空間更可能是線性可分的惕澎。
根據(jù)cover定理莉测,若原問題線性不可分,則將其映射到比原空間更高的維度空間上唧喉,其更容易線性可分捣卤,但是也可能線性不可分的,定理中只說了更容易線性可分八孝。但是如果樣本空間中維度是有限維的董朝,我們下面還可以證明,一定存在一個(gè)映射干跛,將其映射到更高維上時(shí)子姜,問題線性可分。