當前位置:
首頁 > 知識 > 關於SVM數學細節邏輯的個人理解(一)

關於SVM數學細節邏輯的個人理解(一)

網上,書上有很多的關於SVM的資料,但是我覺得一些細節的地方並沒有講的太清楚,下面是我對SVM的整個數學原理的推導過程,其中我理解的地方力求每一步都是有理有據,希望和大家討論分享。

首先說明,目前我的SVM的數學原理還沒有過多的學習核函數,所以下面的整理都不涉及到核函數。而且因為很多地方我還沒理解太透,所以目前我整理的部分主要分為:

①最大間隔分類器,其中包括優化目標的一步步推導,還有關於拉格朗日函數,KKT條件,以及對偶問題等數學優化的知識

②軟間隔優化形式,即加入了鬆弛變數的優化目標的一步步推導

③SMO演算法

下面是第一部分,得到SVM的基本形式。


一.前言:

雖然還是有很多地方不能理解,但是我覺得目前理解的程度已經進入了一個瓶頸了,或許從頭整理一遍會突破呢。(後來證明確實自己整理推導一遍有很大的收穫)

不得不說SVM是真的難,神經網路如果說難就難在反向傳播演算法,不過那也只是個鏈式求導法則,而SVM則涉及到最優化的大量數學知識,畢竟光是一個SVM就能寫本書(《支持向量機導論》)的...

OK,開始整理整個SVM的思路。可能一開始還是有很多不清楚的地方,不過慢慢修改吧。

而且想要自己畫一些圖,但是目前還沒找到好的工具,所以就先剪切一些書上的圖,我會標註好來源的。


二.得到最最基本的形式

(不知道起什麼題目更好)

關於SVM數學細節邏輯的個人理解(一)

(圖來自於《機器學習》P121)

我覺得很多人可能對SVM要做什麼很熟悉了,現在還是啰嗦一下:

現在給你訓練數據

關於SVM數學細節邏輯的個人理解(一)

,其中

關於SVM數學細節邏輯的個人理解(一)

(牢記這個,在後面很重要),我們要做的就是找到一個超平面可以把這兩類數據給分開。現在假設,這個數據集是線性可分的(先考慮數據集是線性可分的情況),那麼我們其實可以找到很多超平面來分開這兩類數據,比如上面這個圖中可以看到由很多情況。那麼我們該找哪種情況呢?

直觀上看,我們需要找的這個超平面,它離兩邊的不同類型的數據集距離「最遠」,就比如上面加粗的那條直線。這個直線看起來距離兩類數據集是「最遠的」,這樣在預測時可能更準確一些。但這是直觀上的說法,如果要使用數學原理來解決,我們首先需要找到衡量平面到數據集的距離遠近的標準,這就引出了「函數間隔」和「幾何間隔」的概念。

(尋找最大間隔直觀上看是最優的,而且其實背後有很多數學原理,我記得在《支持向量機導論》中應該是第四章講了,但是目前還是沒太理解,大家有興趣可以看一看)

1.函數間隔與幾何間隔定義

首先我們定義超平面的表達式為

關於SVM數學細節邏輯的個人理解(一)

,那麼複習一下高中學的知識我們知道,平面上一個點x到這個平面的距離是

關於SVM數學細節邏輯的個人理解(一)

,而這個就是幾何間隔的定義。

(如果不熟悉這個,那肯定熟悉一個點(x,y)到Ax+By+C=0,的距離公式是

關於SVM數學細節邏輯的個人理解(一)

函數間隔是什麼呢?這裡就需要強調的取值了:

關於SVM數學細節邏輯的個人理解(一)

,對於正樣例它的label是+1,對於負樣例它的label是-1。(所以乘上不改變原來的絕對值)

我們用

關於SVM數學細節邏輯的個人理解(一)

來表示一個樣本點

關於SVM數學細節邏輯的個人理解(一)

到這個超平面的函數間隔

(關於函數間隔的定義是在《支持向量機導論》第二章中找到的)

2.函數間隔與幾何間隔的關係

需要注意的是,如果找到了一個超平面可以正確分開這個數據集,那麼意味著對於每個樣本點x來說,其實它的函數間隔大於等於0,即:

關於SVM數學細節邏輯的個人理解(一)

我覺得這一步理解很關鍵。具體解釋就是:對於正樣例,因為它的

關於SVM數學細節邏輯的個人理解(一)

=1,而因為它被正確分類了,所以它的

關於SVM數學細節邏輯的個人理解(一)

,所以可以得到

關於SVM數學細節邏輯的個人理解(一)

,對於負樣例同理。

(很多書上直接給出

關於SVM數學細節邏輯的個人理解(一)

,我覺得思維跨度就有點大了,關於

關於SVM數學細節邏輯的個人理解(一)

的說明後面講)

然後進一步我們其實可以得到,如果這個樣本被正確分類了,那麼:

關於SVM數學細節邏輯的個人理解(一)

所以函數間隔其實也可以用

關於SVM數學細節邏輯的個人理解(一)

表示。

回顧之前幾何間隔的計算式子

關於SVM數學細節邏輯的個人理解(一)

,很多時候其實分子都不用絕對值符號來表示,我們可以把分子的絕對值換成函數間隔,那麼這個樣本到超平面的幾何間隔其實就可以寫成:

關於SVM數學細節邏輯的個人理解(一)

所以我覺得這就是函數間隔和幾何間隔之間的關係,即在樣本集線性可分的情況下,對於某一個成功分類的超平面來說,每個樣本點到這個超平面的幾何間隔就是函數間隔再除以

關於SVM數學細節邏輯的個人理解(一)

範數

3.定義超平面到訓練集的間隔

然後我們之前的幾何間隔,函數間隔什麼的都是點到平面的距離,現在我們定義一個超平面到訓練集間隔為這個超平面到訓練集的每個點的幾何距離最小的距離。

(關於這個的定義我是參考了《Pattern Recognition and Machine Learning 》關於SVM的講解,這本書是我見過的講的最細的了)

這個平面到數據集的間隔就是我們一開始直觀感受時所需要的那個衡量遠近的數值。

從這個意義上來說,其實我們在衡量一個平面到數據集的「遠近」時,我們其實只需要看的是到所有的樣本點距離中最近的那個。

所以對於一個超平面(ω,b)我們可以得到它到給定訓練集的間隔為:

關於SVM數學細節邏輯的個人理解(一)

這個式子很容易理解,

關於SVM數學細節邏輯的個人理解(一)

如果放進min裡面,即

關於SVM數學細節邏輯的個人理解(一)

,就表示在每個幾何間隔中找最小的。因為

關於SVM數學細節邏輯的個人理解(一)

和具體樣本點無關所以被提了出來,然後後面的

關於SVM數學細節邏輯的個人理解(一)

就是表示訓練集中每個點到這個超平面的函數間隔中的最小值。

這裡還需要理解的是,如果給定了這個分類超平面,那麼這個超平面到訓練集的距離就定了,因為訓練集是給定了每個點是固定的。所以超平面如果調整,這個間隔就會變化。

4.得到最最原始的優化目標

所以我們現在需要找到這麼一個超平面,它不但可以正確分類,而且它到訓練集的間隔是所有可正確分類的超平面中最大的。這也是我們一開始提出的那個直觀上的問題。

然後我們就可以得到我們的最最原始的優化目標了:

關於SVM數學細節邏輯的個人理解(一)

(寫到這裡我在想一個問題,如何能保證按照這個優化目標找出來的超平面它正好到正樣本集和負樣本集的間隔是一樣的。經過思考後發現,這個已經被包含在了這個優化目標內部。可以這麼解釋:因為其實我覺得我們可以把平面優化分為ω的最優化和b的最優化,對於相同的ω,不同的b的平面都是平行的。當ω固定時,這時一個正樣本到這個平面的距離和一個負樣本到這個平面的距離之和的最小值也固定了!後面補圖說明。

但是不同的b會導致

關於SVM數學細節邏輯的個人理解(一)

不同,不同的b會導致平面保持相同的「斜率」平移。發現因為這裡取最小值。所以我們假設這個平面從正負樣本的正中間往正樣本方向偏離一小段距離,那麼可能是到正樣本距離變小,到負樣本的距離變大,但是注意到

關於SVM數學細節邏輯的個人理解(一)

是取最小值,所以這個最小值就會從原來的1/2變小,並不是我們最後的最優的結果,所以從這個角度看,直線位於正中間是最優的。)

(這個最原始的優化目標很多書上都沒有,我也是在《Pattern Recognition and Machine Learning》這本書上找到的,這本書相當不錯)


三.得到SVM的基本形式

得到這個最最原始的優化目標後,直接嘗試解決它是很複雜的。我們還可以進一步簡化。注意到如果我們對ω和b同時進行縮放,即

關於SVM數學細節邏輯的個人理解(一)

關於SVM數學細節邏輯的個人理解(一)

,然後把kω和kb代入原來的式子

關於SVM數學細節邏輯的個人理解(一)

,會發現對原來的優化問題並沒有影響,因子都被約了。那我們就可以通過這個特性來簡化式子。

所以我們不如就讓這個

關於SVM數學細節邏輯的個人理解(一)

為1,即我們通過同時縮放ω和b讓距離超平面最近的那些樣本點的函數間隔為1,這樣調整後,不僅對原來的優化問題沒有影響,而且還能簡化計算。

(這裡縮放需要理解到位,同時縮放ω和b,會改變每個樣本點到這個超平面的函數間隔,但是並不會改變每個樣本點到這個超平面的幾何間隔,所以我們不如就讓距離這個超平面最近的那些點的函數間隔為1,簡化了計算,但是也帶來了約束

但是既然設置了

關於SVM數學細節邏輯的個人理解(一)

=1,那麼就意味著增加了約束:對於離超平面最近的那些樣本點,它們的

關於SVM數學細節邏輯的個人理解(一)

對於其他的樣本點,它們的

關於SVM數學細節邏輯的個人理解(一)

所以現在可以說:當可以找到一個超平面正確分類給定的訓練集時,每個樣本點的函數間隔滿足:

關於SVM數學細節邏輯的個人理解(一)

這個就是簡化所帶來的約束條件

現在我們看一看簡化後的優化式子變成了:

關於SVM數學細節邏輯的個人理解(一)

約束就是上面的對於每個樣本點滿足

關於SVM數學細節邏輯的個人理解(一)

但是我們一般把這個優化問題轉化為和它等價的:

關於SVM數學細節邏輯的個人理解(一)

而且一般會加上係數1/2,書上說是為了之後推導的方便。

所以現在我們的優化問題變成了:

關於SVM數學細節邏輯的個人理解(一)

關於SVM數學細節邏輯的個人理解(一)

關於SVM數學細節邏輯的個人理解(一)

其中i=1,2,3...m

這個就是《機器學習》書上說的SVM的基本形式。

現在整理一下推導出這個基本形式的過程:

(1)最最原始的優化目標:

關於SVM數學細節邏輯的個人理解(一)

,即我們需要在每個可以正確分類的平面中,找到一個到數據集的間隔最大的平面,其中間隔被定義為這個數據集樣本到這個平面的最小距離

(2)根據w和b縮放後優化目標不變,我們就可以讓

關於SVM數學細節邏輯的個人理解(一)

為1來簡化這個問題,得到

關於SVM數學細節邏輯的個人理解(一)

,然後再轉化為等價的

關於SVM數學細節邏輯的個人理解(一)

,但是注意此時就有了約束條件了!

可以看到光是得到這個最基本的形式的推導其實就有很多很多需要思考和理解的細節。

PS:誰知道如何把word上的公式方便的粘貼到網頁上?必須得一個一個複製...

參考資料匯總:

[1]《機器學習》

[2]《支持向量機導論》

[3]《Pattern Recognition and Machine Learning》

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

數據分析-殘酷的世界
最簡單實用的JQuery實現banner圖中的text打字動畫效果!
初始原型鏈學習
心理測試:測一測你適合什麼職業

TAG:IT優就業 |