作者|Anuj Shrivastav
編譯|VK
來源|Medium

介紹
監督學習描述了一類問題,涉及使用模型來學習輸入示例和目標變量之間的映射。如果存在分類問題,則目標變量可以是類標簽,如果存在回歸問題,則目標變量是連續值。一些模型可用於回歸和分類。我們將在此博客中討論的一種這樣的模型是支持向量機,簡稱為SVM。我的目的是為你提供簡單明了的SVM內部工作。
假設我們正在處理二分類任務。

可能有無限多的超平面可以將這兩個類分開。你可以選擇其中任何一個。但是這個超平面能很好地預測新查詢點的類嗎?你不認為離一個類很近的那個平面有利於另一個類嗎?直觀地說,分離兩個類的最佳方法是選擇一個超平面,該超平面與兩個類中最近的點等距。
這就是SVM的作用!

支持向量機的核心思想是:
選擇盡可能廣泛地將+ve點與-ve點分開的超平面π。(ve代表vector,向量,也就是樣本的向量)
設π是分離這兩類的超平面,π+和π_是兩個平行於π的超平面
π₊是當我們平行於π移動並與π最近的+ve點接觸時得到的平面
π₋是當我們平行於π移動並接觸到π的最近-ve點時得到的平面

d=margin = dist(π₊,π₋)
-
SVM試圖找到一個π來最大化間隔。
-
隨着間隔的增加,泛化精度也隨之提高。
支持向量
位於π₊或π₋上的點稱為支持向量。

SVM數學公式
π: 邊距最大化的超平面
π: wᵀx+b=0
設
π₊:wᵀx+b=+1
π₊上的任何點或在正方向遠離π₊的任何點都標記為正
π₋:wᵀx+b=-1
π₋上的任何點或在負方向遠離π₊的任何點都標記為負

優化問題為

現在,這看起來不錯,但是,它只在我們的數據是線性可分時起作用。否則,我們將無法解決上述優化問題,也無法得到最優的w和b。
假設一個數據不是線性可分的場景:

因為這四個點,我們的優化問題永遠不會得到解決,因為這些點yᵢ(wᵀx+b)不大於1。
這是因為我們的優化問題過於嚴格,它只解決線性可分數據。硬邊距就是這種方法的名稱。
那么,我們可以修改它嗎?我們能不能稍微寬大一點,這樣它就可以處理幾乎線性可分的數據?

我們要做的是,我們做一個松弛變量ζᵢ(zeta),對應於每個數據點,這樣對於位於+ve區域的+ve點和位於-ve區域的-ve點,
ζᵢ=0。
這就給我們留下了錯誤的分類點和間隔內的點。
ζᵢ的含義,以圖為例,當ζᵢ=2.5
這意味着pt.4在相反的方向上與它的正確超平面(在本例中為π₊)相距2.5個單位。
類似地,pt.1與最優超平面(本例中為π₋)的方向相反,距離為2.5個單位。
當ζᵢ增大時,該點在錯誤方向上離最優超平面更遠。

改進優化問題

讓我們把它分解
首先,約束條件:
我們知道,

現在:

和

c是超參數。
我們可以直觀地認為優化問題為:

如果c值較高,則損失項的權重更大,從而導致數據的過擬合。
如果c值較低,則正則化項的權重較大,導致數據欠擬合。
SVM對偶形式

等等!我們怎么得到這個對偶形式的?
這都和最優化有關如果我們深入研究這個問題,我們就會偏離我們的目標。讓我們在另一個博客中討論這個對偶形式。
為什么我們需要這個對偶形式?
對偶形式有時更容易解決,如果對偶間隙非常小,我們會得到相似的結果。特別是支持向量機:對偶形式非常重要,因為它通過核函數開啟了一種解釋支持向量機的新方法(我將在本博客的后面部分告訴你)。
注意:在對偶形式中,所有xᵢ都以點積的形式出現,不像原始形式中所有xᵢ都作為獨立點出現。
αᵢ可以被認為是一個拉格朗日乘數
觀察對偶形式:
- 對於每個xᵢ,有相應的αᵢ
- 所有xᵢ都是點積的形式
- 我們對一個新點的分類方式改變如下:

- 支持向量αᵢ>0,非支持向量αᵢ=0。
這意味着只有支持向量才是重要的,這就是將該模型命名為支持向量機的原因。
現在,以對偶形式


因此,如果給出一個相似矩陣,我們可以使用對偶形式,而不是原始形式。這就是支持向量機的優點。通常,這種相似性(xᵢ,xⱼ)被K(xᵢ,xⱼ)代替,其中K稱為核函數。
核技巧及其背后的直覺
用核函數K(xᵢ,xⱼ)替換相似性(xᵢ,xⱼ)稱為核化,或應用核技巧。
如果你看它,它只是計算xᵢ和xⱼ的點積。那么,有什么了不起的?
讓我們以下面的數據集為例。

很明顯,在線性模型的幫助下,這兩個類是不能分離的。
現在,將數據集轉換為具有 <x₁²,x₂²,2x₁x₂> 的特征的多維數據集。

你看到了嗎?應用適當的特征變換和增加維數使數據線性可分。
這就是核支持向量機的作用。它將原始特征映射到一個高維空間中,在該空間中找到間隔最大的超平面,並將該超平面映射到原始維空間中,得到一個非線性決策曲面,而不必實際訪問該高維空間。
所以
線性支持向量機:在xᵢ的空間中尋找間隔最大化超平面
核支持向量機:在xᵢ的變換空間中尋找間隔最大化超平面
因此,核支持向量機也能求解非線性可分數據集。
讓我們看看支持向量機中使用的一些核函數-
多項式核
定義如下:

其中
d=數據維度
c=常數
對於二次核,設c=1,即

當維度為2

這可以被認為是2個向量x₁和x₂的乘積,其中:

現在維度=d'=6
因此,核化與特征轉換是一樣的,但通常是d'>d,核化是在內部隱式地完成的。
徑向基函數(RBF核)
它是最受歡迎的核,因為你無法確定要選擇哪個核時,可以選擇它
定義如下:

d的效果:
當d增大時,指數部分的分子減小,換句話說,K值或相似度減小。
σ的影響:

如果你注意,當σ=0.3,在x=2,接近於0。在x = 4,σ= 1時和x = 11,σ= 10,它接近0。這表明當σ增加時,即使兩個點是很遠,相似的score可能也不會很低。
例如假設有兩個點x₁和x₂的距離為4個單元。如果我們應用σ= 0.3的RBF核,核函數K值或相似值是0。如果我們設置σ= 1,K值很接近0,但如果我們設置σ= 10,K值約為0.4左右。
現在說明RBF核背后的直覺
還記得我們在使用多項式核函數時得到的6維映射函數嗎?現在讓我們嘗試找出RBF核的一個映射函數。
為了簡化數學,假設原始數據的維數為2,指數部分的分母為1。在這種情況下,

如果我們試圖找出RBF核的映射函數,就會得到一個無限向量。這意味着RBF核需要我們的數據映射到無限維的空間,計算相似性得分並返回它,這就是為什么如果你不知道選擇哪個核,RBF核函數將是最安全的選擇。
用於回歸的SVM
到目前為止,我們已經研究了如何使用支持向量機執行分類任務。但支持向量機不僅限於此。它也可以用來執行回歸任務。怎樣?讓我們看看!
首先,讓我們看看支持向量回歸(SVR)的數學公式

別擔心!我幫助你理解。

SVR的工作方式是,它試圖找到一個最適合的數據點的超平面,同時保持一個軟間隔=ε(超參數),這意味着所有的點都應該在超平面兩側ε距離。
最小化這里的邊界意味着我們想要找到一個超平面,這個超平面以較低的誤差來匹配數據。
注意:平方是為了使函數變得可微並適合於優化。對於SVC也可以這樣做。
這個公式有什么問題?
這里的問題是,我們太嚴格,我們期望的點位於ε超平面的距離在現實世界並不經常發生。在這種情況下,我們將無法找到所需的超平面。那么,我們該怎么做呢?
與我們在SVC中處理這個問題的方法相同,我們將為法向點引入兩個松弛變量ζ和ζ*,以允許某些點位於范圍之外,但會受到懲罰。

所以數學公式現在變成:

其中C確定所需的嚴格程度。C值越大,對邊距外的點的懲罰就越多,這可能導致數據的過度擬合。更少的C意味着對邊緣以外的點的懲罰更少,這可能導致數據擬合不足。
與SVC中一樣,圖顯示了SVR的原始形式。結果表明,對偶形式更易於求解,並且可以利用核技巧求出非線性超平面。
正如我已經說過的,對偶形式的公式是有點棘手的,涉及解決約束優化問題的知識。我們不會深入討論太多細節,因為這會轉移我們對支持向量機的注意力。
SVR對偶形式

這是通過使用拉格朗日乘子求解優化問題得到的。
對於一個新的點,我們計算輸出值的方法是:

你有沒有注意到,xᵢ是點積的形式?是的,和我們在SVC中得到的一樣。我們可以用前面提到的相似度或核函數來代替這個點積。應用核技巧還可以幫助我們擬合非線性數據。
支持向量機的各種情況
-
特征工程和特征轉換,這是通過找到上面討論的正確的核來實現的
-
決策面,對於線性支持向量機:決策曲面只是一個超平面,對於核支持向量機:它將是一個非線性曲面
-
相似函數/距離函數,支持向量機的原始形式不能處理相似函數。然而,因為xᵢ點積的存在形式,對偶形式可以很容易地處理它。
-
特征的重要性,如果特征不是共線的,那么權重向量w中特征的權重決定了特征的重要性。如果特征是共線的,可以使用前向特征選擇或后向特征消除,這是確定任何模型特征重要性的標准方法。
-
離群值,與其他模型如Logistic回歸相比,支持向量機的影響較小。
-
偏差-方差,它依賴於支持向量機對偶形式中c的值。
如果c值較高,則誤差項的權重較大,因此模型可能會對數據進行過擬合;如果c值較低,則誤差項的權重較小,模型可能會對數據進行欠擬合。
- 高維度,支持向量機的設計可以很好地工作,即使在高維度。如圖所示,支持向量機的數學公式中已經存在一個正則化項,有助於處理高維問題。你可能會說像KNN這樣的其他模型並不適用於高維空間,那么SVMs有什么特別之處呢?這是因為支持向量機只關心找到使邊距最大的平面,而不關心點之間的相對距離。
支持向量機的優點
- 它有一個正則化項,有助於避免數據的過擬合
- 它使用核技巧,這有助於處理甚至非線性數據(在SVR情況下)和非線性可分數據(在SVC情況下)
- 當我們不了解數據時,支持向量機是非常好的。
- 可以很好地處理非結構化和半結構化數據,比如文本、圖像和樹。
- 從某種意義上說,它是健壯的,即使在訓練示例包含錯誤的情況下也能工作
支持向量機的局限性
- 選擇正確的核是一項困難的任務。
- 支持向量機算法有多個超參數需要正確設置,以獲得對任何給定問題的最佳分類結果。參數可能導致問題A的分類精度很好,但可能導致問題B的分類精度很差。
- 當支持向量機的數據點數目較大時,訓練時間較長。
- 對於核支持向量機,其權向量w的解析比較困難。
參考
- https://alex.smola.org/papers/2004/SmoSch04.pdf
- https://www.saedsayad.com/support_vector_machine_reg.htm
- https://statinfer.com/204-6-8-svm-advantages-disadvantages-applications/
- http://www.cs.uky.edu/~jzhang/CS689/PPDM-Chapter2.pdf
原文鏈接:https://medium.com/@anujshrivastav97/demystifying-support-vector-machine-b04d202bf11e
歡迎關注磐創AI博客站:
http://panchuang.net/
sklearn機器學習中文官方文檔:
http://sklearn123.com/
歡迎關注磐創博客資源匯總站:
http://docs.panchuang.net/
