引言
接下里的一系列有關(guān)機(jī)器學(xué)習(xí)的博文,我將具體的介紹常用的算法赁还,并且希望在這個(gè)過程中盡可能地結(jié)合實(shí)際應(yīng)用更加深入的理解其精髓,希望所付出的努力能得到應(yīng)有的回報(bào)蹬昌。
接下來的有關(guān)機(jī)器學(xué)習(xí)基礎(chǔ)博文主要根據(jù)機(jī)器學(xué)習(xí)技法課程的學(xué)習(xí)例书,圍繞特征轉(zhuǎn)換(feature transforms)這個(gè)主要工具锣尉,從以下三個(gè)方向進(jìn)行探討:
- 如果現(xiàn)在有很多特征轉(zhuǎn)換可以使用的時(shí)候,我們?cè)撊绾芜\(yùn)用這些特征轉(zhuǎn)換决采,如何控制特征轉(zhuǎn)換中的復(fù)雜度的問題自沧,從這個(gè)角度刺激了支持向量機(jī)(Support Vector Machine)算法的發(fā)展。
- 我們?cè)撊绾螌⒕哂蓄A(yù)測(cè)性質(zhì)的特征混合起來树瞭,讓整個(gè)模型擁有更好的表現(xiàn)拇厢,從這個(gè)角度衍生出逐步增強(qiáng)法(Adaptive Boosting,AdaBoost)模型。
- 我們?cè)撊绾握页鰯?shù)據(jù)中的隱藏的特征晒喷,或者說機(jī)器如何從中學(xué)習(xí)出來孝偎,讓機(jī)器表現(xiàn)地更好,從這個(gè)角度出發(fā)凉敲,刺激了之前的類神經(jīng)網(wǎng)絡(luò)成為近年來的深度學(xué)習(xí)領(lǐng)域衣盾。
這一小節(jié),我們從線性的支持向量機(jī)開始爷抓,一點(diǎn)一點(diǎn)地延伸到更加復(fù)雜的模型势决。
最大間隔分離超平面(Large-Margin Separating Hyperplane)
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm1.jpg)
就上圖給出的分類問題而言,三個(gè)圖中的分類平面都正確的把訓(xùn)練數(shù)據(jù)分成兩類(訓(xùn)練誤差為0)废赞,且線性分類模型的復(fù)雜度是維度加1(d+1)徽龟,那么我們?cè)撊绾谓忉屪钣疫厛D的分離平面要更優(yōu)呢?
由于高斯噪聲的存在唉地,對(duì)于左面的圖而言,如果在靠近分離平面的點(diǎn)的周圍有與該點(diǎn)是同一類別的數(shù)據(jù)就很容易被判錯(cuò)传透,故這幾幅圖的區(qū)別在于耘沼,其分離平面對(duì)于測(cè)量誤差的容忍度不同,相比較朱盐,右側(cè)圖對(duì)避免測(cè)量誤差發(fā)生的健壯性更好群嗤。
所以,實(shí)際上兵琳,我們希望該分離平面距離訓(xùn)練數(shù)據(jù)越遠(yuǎn)越好狂秘。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm2.jpg)
重新敘述一下該問題,我們希望分離平面對(duì)數(shù)據(jù)的泛化能力更好躯肌,就希望所有點(diǎn)到線的間隔越大越好者春。所以我們的目標(biāo)是,找到最大間隔的分離平面清女,這個(gè)平面要滿足兩個(gè)條件钱烟,一是該分離平面能正確分離兩類數(shù)據(jù)(即yn=sign(wTxn),yn與wTxn同號(hào)),二是該分離間隔取所有點(diǎn)中離平面最近的數(shù)據(jù)拴袭。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm3.jpg)
標(biāo)準(zhǔn)最大間隔問題(Standard Large-Margin Problem)
上面读第,我們要求一個(gè)最大間隔分離平面,得到了一個(gè)待求解的最佳化問題拥刻。接下來怜瞒,我們將要探討一下在最佳化求解中點(diǎn)到平面的距離要如何計(jì)算。
1. Large-Margin Separating Hyperplane
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/stardard_problem1.jpg)
2. Distance to Separating Hyperplane
我們定義向量w=(w1,...,wd)般哼,向量x=(x1,...,xd)盼砍,截距b=w0。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm4.jpg)
我們現(xiàn)在考慮在平面的兩個(gè)點(diǎn)x'和x"逝她,它們都滿足方程wTx'+b=0浇坐、wTx"+b=0。
x"-x'表示平面上的一個(gè)向量黔宛,在這個(gè)平面上w是該平面的法向量近刘。
所以點(diǎn)到平面的距離是,該點(diǎn)到平面上任意一點(diǎn)構(gòu)成的向量對(duì)該平面的法向量做投影所得到的距離臀晃。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm5.jpg)
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm6.jpg)
由于我們考慮的分隔平面是將正負(fù)例數(shù)據(jù)都正確分開的平面觉渴,所以該公式還需要滿足一些性質(zhì):
我們要求所計(jì)算的分?jǐn)?shù)wTxn+b與yn是同號(hào)的,這樣就可以將上面的距離公式中的絕對(duì)值符號(hào)去掉徽惋。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm7.jpg)
所以案淋,我們的目標(biāo)修正為下面的式子:
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/stardard_problem2.jpg)
3. Margin of Special Separating Hyperplane
到現(xiàn)在,我們還是沒法求解這個(gè)問題险绘,所以還需要更進(jìn)一步的簡(jiǎn)化踢京。
我們觀察到wTx+b=0,同時(shí)3wTx+3b=0宦棺,這種放縮還是表示同一個(gè)平面瓣距。我們就會(huì)想到這些系數(shù)似乎是可以放縮的。
對(duì)間隔的放縮對(duì)最優(yōu)化問題不等式約束沒有影響代咸,對(duì)目標(biāo)函數(shù)的優(yōu)化也沒有影響蹈丸,所以這是一個(gè)等價(jià)的優(yōu)化問題。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm8.jpg)
于是我們的線性可分支持向量機(jī)的最優(yōu)化問題化簡(jiǎn)為:
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/stardard_problem3.jpg)
4. Standard Large-Margin Hyperplane Problem
最后一步呐芥,我們希望找到更好求解的方式逻杖。
我們將min yn(wTxn+b)=1這個(gè)條件放寬松成yn(wTxn+b)>=1這個(gè)條件,且這個(gè)條件并沒有影響最終的最佳解思瘟。
最大化1/||w||和最小化||w||^2/2是等價(jià)的荸百,于是得到最終的最優(yōu)化問題:
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/stardard_problem4.jpg)
最佳化的求解
支持向量
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm9.jpg)
從上圖可以看出,我們可以找出距離分隔平面最近的點(diǎn)使得該點(diǎn)距離平面的距離最大潮太,即使將其他不相干的數(shù)據(jù)點(diǎn)去掉管搪,該結(jié)果依然成立虾攻。所以說,距離分隔平面最近的點(diǎn)已經(jīng)唯一確定了這個(gè)平面更鲁,故這些點(diǎn)叫做支持向量(support vector)霎箍。
求解一般的SVM問題
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/stardard_problem4.jpg)
我們回看要求解的最佳化問題,發(fā)現(xiàn)其滿足兩個(gè)特點(diǎn):
- 目標(biāo)函數(shù)是關(guān)于(b,w)的凸二次函數(shù)
- 不等式約束是關(guān)于(b,w)的一次式
這樣特性的最佳化問題稱作被約束的(凸)二次規(guī)劃(convex quadratic programming)問題澡为。
二次規(guī)劃
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/quadratic_programming1.jpg)
上面我們將我們待解的問題和二次規(guī)劃的標(biāo)準(zhǔn)形式作了對(duì)比漂坏,得到了我們的問題在標(biāo)準(zhǔn)形式中表示方式:
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/quadratic_programming1.jpg)
剩下的事情可以用可以解決二次規(guī)劃的軟件工具來求解了。
小結(jié)
下面給出了確定二次規(guī)劃的系數(shù)媒至,求解模型參數(shù)顶别,并得到svm的模型gSVM的過程。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm10.jpg)
理論分析
SVM和正則化的解釋
SVM和我們直接介紹的正則化是有相似的地方的拒啰,不同在于SVM將wTw作為最小化的目標(biāo)函數(shù)驯绎,而將Ein=0作為約束條件。
所以SVM就是一種正則化的表現(xiàn)谋旦,我們希望有最大的間隔剩失,其實(shí)就是希望最終的模型能夠?qū)y(cè)量誤差有更好的健壯性。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm11.jpg)
從VC理論解釋
這里我們不給出具體的證明册着,只是從定性的角度來解釋拴孤。
如果我們要給最大的間隔加上一些限制(要求最大的間隔要大于某個(gè)常數(shù)),這可能使得將數(shù)據(jù)分開的情形種類減少了甲捏,這樣使得VC維減小演熟,這使得模型復(fù)雜度得到了有效的控制。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm12.jpg)
接下來
從上面的VC維解釋可以得到一個(gè)簡(jiǎn)單的結(jié)論司顿,就是SVM對(duì)間隔的限制可以有效減低VC維芒粹,控制復(fù)雜度,得到比較好的泛化能力免猾;還有是辕,如果我們能結(jié)合非線性變換,就可以得到復(fù)雜的邊界猎提。接下來,就會(huì)延伸到線性不可分的SVM旁蔼,通過SVM控制復(fù)雜度的方法锨苏,更好的使用各式各樣不同的特征轉(zhuǎn)換。
![](http://jason-images.qiniudn.com/@/ML/techniques/linear_svm/linear_svm13.jpg)
轉(zhuǎn)載請(qǐng)注明作者Jason Ding及其出處
Github博客主頁(yè)(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡(jiǎn)書主頁(yè)(http://www.reibang.com/users/2bd9b48f6ea8/latest_articles)
百度搜索jasonding1354進(jìn)入我的博客主頁(yè)