機器學習的幾大算法也算是過完一遍了,準備把學習筆記寫到博客上,一來複習,二來避免筆記本丟失,三來可以隨時再看看,hh,廢話不多說,先從我花時間最長的svm開始
SVM的實質是最大間隔分類器,顧名思義,它在做分類任務時(二分類),會通過找到訓練樣本到決策邊界的最大間隔來最後確定決策邊界。
SVM分爲三類:
1.線性可分支持向量機
又稱硬間隔支持向量機,其特點是訓練數據線性可分,如下圖,兩類數據能夠很清楚的被一條線(或超平面)給劃分開來。
2.線性支持向量機
又稱軟間隔支持向量機,其特點是訓練數據近似線性可分,如下圖,兩類數據可以近似的被一條線(或超平面)劃分,但仍有一些點混雜在另一類中。
3.非線性支持向量機
這類向量機的特點是訓練數據線性不可分,如下圖,通常這類向量機都會採取將訓練數據映射到更高維處,使得原本線性不可分的數據變得近似線性可分或線性可分。
類別 | 特點 |
---|---|
線性可分支持向量機 | 訓練數據線性可分+硬間隔最大化 |
線性支持向量機 | 訓練數據近似線性可分+軟間隔最大化 |
非線性支持向量機 | 訓練數據線性不可分+核技巧+軟間隔最大化 |
既然知道了SVM實質就是找兩類數據的最大間隔,那麼我們就需要知道間隔指的是什麼?
在《統計學習方法》一書內給出了兩種間隔,函數間隔和幾何間隔。
先說說我們怎麼判斷某個樣本屬於哪個分類呢?
SVM使用超平面
將樣本劃分爲兩類,當超平面確定的時候,我們可以用
相對的表示點x距離超平面的遠近,用
的符號與類標記y的符號是否一致來表示這個分類是否正確,如下圖
這裏
相較於
離超平面要更遠一些,而
的符號與各自的分類標記
是一致的,也就是說分類正確。(i取1、2)
對於
來說,它的分類是正類,但是其
的符號與其分類標記
並不一致,因此分類並不正確。
根據這樣的特性,引出函數間隔的定義:對於給定的訓練數據集T和超平面 ,超平面關於樣本點 的函數間隔爲:
函數間隔 可以表示分類預測的正確性及確信度,當 時分類正確,當 時分類錯誤, 越大,則表示確信度越高,因爲這個點離分離超平面很遠嘛,不具有什麼爭議性。
不過在選擇分離超平面的時候,光有函數間隔是不夠的,因爲當我成比例改變超平面的 和 時,超平面其實是沒有變的,但是對於樣本點來說,它與超平面的距離 卻變成了 ,雖然分類結果不會受影響(因爲這個只取決於 或 的符號),但是確信度卻會被提高,這樣是不合理的。
因此,我們需要對超平面的法向量 加某些約束,如規範化,令 ,使得間隔確定,這時函數間隔就變成了幾何間隔。
由此引出幾何間隔的定義:對於給定的訓練數據集T和超平面
,超平面關於樣本點
的幾何間隔爲:
上面這些定義說的都是樣本點(某一個點)與超平面的間隔,我們在求最優分離超平面的時候,應關注所有樣本點中離超平面最近的點,也就是所有樣本點中間隔最小的點。
因此對於給定的訓練數據集T和超平面
,超平面與訓練數據集T的幾何間隔爲:
支持向量機的基本思想就是求解能夠正確劃分訓練數據集並且幾何間隔最大的分離超平面,對於線性可分的訓練數據集而言,線性可分分離超平面有無窮多個(等價於感知機),但是幾何間隔最大的分離超平面是唯一的。
因此求解最優分離超平面的思路就是間隔最大化。其直觀解釋是:對訓練數據集找到幾何間隔最大的超平面意味着以充分大的確信度對訓練數據進行分類。也就是說,不僅將正負實例點分開,而且對最難分的實例點(離超平面最近的點)也有足夠大的確信度將它們分開。這樣的超平面應該對位置的新實例有很好的分類預測能力。(摘自《統計學習方法》)
參考文獻:《統計學習方法》、《機器學習》