SVM俗語:
SVM有三寶: 間隔 匹层、對偶呵晨、核技巧
SVM的由來
對于線性可分的問題吐限,一般可以使用PLA得到解決忽刽,但是根據(jù)其原理可以得到天揖,PLA只是負(fù)責(zé)得到一個(gè)線性可分的線/超平面,但是對于這根線/超平面跪帝,并不能保證最好今膊。
所以對于線性可分?jǐn)?shù)據(jù)來說,有無數(shù)條線/平面滿足條件伞剑,但是最完美(最完美的意思表示在在新的數(shù)據(jù)上擬合效果最好)只有一條, 魯棒性最好
margin:
the distance of hyperplane to its closest point
has at least 2 closest points (one is a positive point and one is a negative point)
總結(jié)一下
SVM = hyperplane + maximum margin
SVM關(guān)鍵詞
監(jiān)督學(xué)習(xí)斑唬,二分類器,學(xué)習(xí)策略:間隔最大化
SVM的目標(biāo)函數(shù)
對于二維平面來說,通過一條直線可以將平面分成兩部分恕刘,一部分?jǐn)?shù)據(jù)為正缤谎,一部分?jǐn)?shù)據(jù)為負(fù),由此進(jìn)行拓展雪营,對于維的弓千,其超平面的方程為:
與之超平面對應(yīng)的分類模型為
首先明確一點(diǎn)垂直與所求的超平面:
證明:任意取超平面上的兩點(diǎn),,其構(gòu)成向量
兩個(gè)公式相減献起,得到
為了后續(xù)方便計(jì)算和說明洋访,這里做一個(gè)假設(shè)
其中為距離超平面最近的正類點(diǎn)
進(jìn)一步說明:可以為任何值,但是由于已經(jīng)確定了為距離超平面最近的正類點(diǎn)谴餐,所以即使結(jié)果為10或者為100或者任意大于1的值姻政,只要對其進(jìn)行歸一化,并不會對其他的點(diǎn)有任何影響(主要就是強(qiáng)調(diào)一個(gè)相對的概念)岂嗓。
所以距離超平面最近的點(diǎn)與超平面的距離為,也就是所謂的maximum margin的的表達(dá)汁展,于是SVM的目標(biāo)函數(shù)則找到了,即
SVM目標(biāo)函數(shù)的轉(zhuǎn)化
雖然找到了SVM的目標(biāo)函數(shù)厌殉,并且想要找到其的最大值食绿,但是不要忘記一個(gè)假設(shè)前提,, 其限制了與超平面最近的正類點(diǎn)公罕,與其說是限制了與超平面最近的正類點(diǎn)器紧,不如說是限制了所有的點(diǎn),也就是說楼眷,除開最近的點(diǎn)铲汪,其他點(diǎn)的得到的結(jié)果必須比1大,也就是目標(biāo)函數(shù)擴(kuò)展成:
(1)
其中N表示數(shù)據(jù)點(diǎn)的總數(shù)
我們對其進(jìn)行進(jìn)一步轉(zhuǎn)化
(2)
我們對第(2)中第二個(gè)限制進(jìn)行分解罐柳,得到
(3)
這里需要解釋一下(2)到(3)的過程掌腰,其實(shí)嚴(yán)格來說(2)的限制和(3)的限制其實(shí)不對等,因?yàn)椋?)中說明是最近的點(diǎn)距離為1张吉,但是(3)中說明的是所有點(diǎn)距離大于等于1齿梁,這里是對于(2)來說是一個(gè)充分不必要條件,唯一的風(fēng)險(xiǎn)就是所有的點(diǎn)都比1大肮蛹,舉個(gè)例子勺择,比如說一共5個(gè)點(diǎn),對于(2)的話距離的列表可能為[1,2,3,4,5]蔗崎,對于(3)來說可能為[10,20,30,40,50]酵幕。
這里就需要重新回到我們之前提到的相對距離的概念了扰藕,這個(gè)結(jié)果10的得到其實(shí)是缓苛,所以只要將和的除以10,最近距離的點(diǎn)結(jié)果依舊是1,所以在這里的話(2)和(3)的限制是相等的未桥。
對(3)進(jìn)一步轉(zhuǎn)化得到(4)笔刹,這里還進(jìn)行一步轉(zhuǎn)化的原因是為了利用已有的凸優(yōu)化理論,使用1/2是為了方便后續(xù)計(jì)算
(4)
這里我們可以發(fā)現(xiàn)其實(shí)限制有N個(gè)冬耿, 帶上絕對值符號不利于后續(xù)的計(jì)算舌菜,所以對其進(jìn)行分解,
當(dāng)point為正類時(shí)亦镶,日月,
當(dāng)point為正類時(shí),缤骨,
所以限制轉(zhuǎn)化為
這樣目標(biāo)函數(shù)求解問題得到的最終的完美形式:
優(yōu)化問題求解 (數(shù)學(xué)背景)
通過上述一系列的轉(zhuǎn)化爱咬,可以發(fā)現(xiàn),最終目標(biāo)函數(shù)的求解本質(zhì)上是一個(gè)線性規(guī)劃的優(yōu)化問題绊起,其中給定的約束有個(gè)(個(gè)點(diǎn)精拟,所以有個(gè)不等式),未知參數(shù)有個(gè)(個(gè)和個(gè))虱歪,目標(biāo)函數(shù)是二次的蜂绎。
拉格朗日乘子法
拉格朗日乘子法:有約束情況下求函數(shù)極值的方法,這里借助拉格朗日乘子法引出對偶問題
https://www.youtube.com/watch?v=lDehPPIgQpI
https://charlesliuyx.github.io/2017/09/20/%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E4%B9%98%E6%B3%95%E5%92%8CKKT%E6%9D%A1%E4%BB%B6/
這里我們將原問題稱為,
的拉格朗日函數(shù)為(更多信息參考上述鏈接,這里直接給出結(jié)論):
最小化問題 : 轉(zhuǎn)化為
對的函數(shù)笋鄙,為自變量
首先以為自變量求的最大值师枣,隨后以為自變量求得到的中的最小值,其本質(zhì)上還是對的函數(shù)
使用拉格朗日乘子的好處:
將帶約束的問題轉(zhuǎn)化為無約束的問題局装,這里指的帶約束是指對參數(shù)的限制條件
但是描述的時(shí)候可以知道其實(shí)是帶了坛吁,這樣子的話其實(shí)還是會有對參數(shù)的約束,其實(shí)這個(gè)約束可以舍去铐尚,因?yàn)楹瘮?shù)天然的帶有約束
解釋:https://www.youtube.com/watch?v=WeoASoHnTpc&list=PLOxMGJ_8X74Z1N3OcacUaCxiXaGNHtFw2&index=2
對偶的引出
目標(biāo)函數(shù)是二次拨脉,約束條件是線性,=> 凸二次規(guī)劃問題 (QPP,Quadratic programming problem)宣增,理想情況可以使用一些QP的套件直接進(jìn)行求解得到答案玫膀,但是存在樣本維度過高或者樣本數(shù)很多,或者存在樣本特征升維的一些情況爹脾,QP可能就不太能夠直接求解帖旨,由此引入了對偶求解的概念。
由于將問題轉(zhuǎn)化成了 ,為了求解的方便灵妨,可以將轉(zhuǎn)化為其對偶問題
這里需要提及一個(gè)關(guān)于對偶問題的性質(zhì):
1.弱對偶性——對偶問題 原問題
簡單的來說就是小的里面最大的小不會比大的里面最小的大(雞頭<鳳尾)
證明:
https://www.youtube.com/watch?v=bscvk5n_TsM&list=PLOxMGJ_8X74Z1N3OcacUaCxiXaGNHtFw2&index=5
2.強(qiáng)對偶性
凸二次函數(shù)優(yōu)化問題 + 約束線性 ---> 滿足強(qiáng)對偶關(guān)系
根據(jù)上述的定理可以發(fā)現(xiàn)通過這樣一步的對偶問題轉(zhuǎn)換解阅,我們把本來需要求的以為參數(shù)的的最大值后以以為參數(shù)的最小值(本質(zhì)上未知數(shù)是) 轉(zhuǎn)換成
以為參數(shù)的的最小值后以為參數(shù)的最大值(本質(zhì)上未知數(shù)是)
KKT
一句話解釋:對偶問題具有強(qiáng)對偶性 <=> KKT
總結(jié):
SVM參數(shù)的求解主要是通過問題的不斷轉(zhuǎn)化得到的
其主要流程為:
1.原始的約束問題通過拉格朗日函數(shù)轉(zhuǎn)化為無約束問題
2.通過的強(qiáng)對偶性轉(zhuǎn)換成為對偶問題
3.在滿足KKT的條件下進(jìn)行的求解
拉格朗日對偶性的求解
SMO 算法
通過上述的描述,得到最終所求的為
所以我們的目的為求合適的 ,這里就采用SMO的算法來進(jìn)行解決泌霍,由于本人水平有限货抄,暫時(shí)還沒搞懂,待到明白了再來補(bǔ)上。
下次一定蟹地,下次一定积暖。
OP優(yōu)化包
pip install cvxopt
總結(jié)
至此,SVM的整個(gè)流程基本上捋了一遍怪与,注意這里主要介紹的是硬間隔問題夺刑,但是掌握了這個(gè),再去看軟間隔和非線性分類(核函數(shù))分别,一定會事半功倍遍愿。
參考資料:https://github.com/ws13685555932/machine_learning_derivation/blob/master/06%20%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA.pdf
http://slidesplayer.com/slide/11358544/
https://www.zhihu.com/question/36301367
https://www.jiqizhixin.com/articles/2018-10-17-20
https://charlesliuyx.github.io/2017/09/20/%E6%8B%89%E6%A0%BC%E6%9C%97%E6%97%A5%E4%B9%98%E6%B3%95%E5%92%8CKKT%E6%9D%A1%E4%BB%B6/
https://www.youtube.com/watch?v=lDehPPIgQpI
https://blog.csdn.net/v_JULY_v/article/details/7624837