支持向量機-算法概述

我的微信公衆號: s406205391; 歡迎大家一起學習,一起進步!!!

​ 有些人認爲,支持向量機(SVM)是最好的現成的分類器,這裏說的“現成”指的是分類器不加修改即可直接使用。同時,這就意味着在數據上應用基本形式的SVM分類器就可以得到低錯誤率的結果。SVM能夠對訓練集之外的數據點做出很好的分類決策。

距離的定義:基於最大間隔分隔數據

​ 假設在一個平面上有如下兩組數據,我們可以用如下一條直線將兩組數據分隔開(我們將上述可以把數據集分隔開的直線稱爲分隔超平面)。圖左和圖右兩條直線均可有效的將數據分隔開。那麼,哪一條直線的分隔效果更好呢?很明顯圖右的直線分隔效果更好,因爲它距離兩組數據的距離相對於圖左直線更遠。支持向量就是離分隔超平面最近的那些點

​ 那麼,我們在設計分類器之前,就先得學會如何計算支持向量到分隔超平面之間的距離。假設由圖點x是分隔超平面的支持向量,w是超平面上的法向量,w’和w’'是超平面上的兩個點。我們定義超平面方程爲wTx+b=0。那麼我們可以得到兩個等式:

  • w’和w’‘在超平面上:wTx’ = -b; WTx’’ = -b

  • 法向量與w’和w’'的向量垂直:[wT(xx)]=0[w^T (x^{''} - x^{'})] = 0

    ​ 我們要求點到直線的距離,其實也就是求向量(x - x’)與法向量w的單位向量的投影(內積)。那麼公式即爲:distance(x,b,w)=wTw(xx)=1wwTx+bdistance(x, b, w) = |\frac{w^{T}}{||w||}(x-x^{'})| = \frac{1}{||w||}|w^{T}x+b| 因爲w’是隨機找的一個點,因此必然可以約分,將w’約分完之後,即可得到最終的表達式。

優化目標: 找到一條線(w和b),是的離該線最近的點能夠最遠

​ 有了距離公式,那麼也有了我們機器學習的優化方向:讓支持向量與超平面的距離最遠。在做SVM機器學習的時候,我們首先需要定義標籤,即將我們的訓練數據進行分類。在這裏,爲了後期計算方便,我們將數據分類兩類,分別用1和-1表示。那麼就有了如下的決策方程:

y(x)=wTϕ(x)+by(xi)>0yi=+1y(xi)<0yi=1y(i)y(xi)>0y(x)=w^{T}\phi(x)+b \Rightarrow \begin{aligned}y(x_{i})>0 &\Leftrightarrow y_{i}=+1\\ y(x_{i})<0&\Leftrightarrow y_{i}=-1\end{aligned} \Rightarrow y(i) \cdot y(x_{i})>0 這裏的φ(x)我們可以先暫時理解爲x

將距離公式帶入到決策方程,可得:yi(wTϕ(xi)+b)w\frac{y_{i} \cdot (w^{T} \cdot \phi(x_{i}) + b)}{||w||} (由於yiy(xi)>0y_{i} \cdot y(x_{i})>0, 所有將絕對值展開,公式依舊成立。)

對於該決策方程,我們設計優化目標,找到一條離支持向量的點最遠的直線,優化目標如下:

目標函數: argmaxw,b{1wmin[yi(wTϕ(xi+b))]}argmax_{w,b}\left\{ \frac{1}{||w||} min[y_{i} \cdot (w^{T} \cdot \phi(x_{i} + b))] \right \}

求解目標函數

​ 上述的目標函數看起來很複雜,通俗的將,大括號內的意思即爲,找到在整個樣本中,距離決策邊界距離最小的樣本。大括號外面即,找到與這些這些樣本距離最大的線。

放縮變換

​ 對於決策方程,不太好求解,我們這裏可以做一下變換。我們通過放縮變換使得:對於決策方程(w,b),其結果y>=1yi(wTϕ(xi)+b)>=1|y|>=1 \Rightarrow y_{i} \cdot (w^{T} \cdot \phi(x_{i}) + b) >= 1 (之前我們認爲恆大於0,現在更嚴格了一些)

由於yi(wTϕ(xi)+b)>=1y_{i} \cdot (w^{T} \cdot \phi(x_{i}) + b) >= 1 , 那麼,其最小值就爲1,那麼,我們只需要考慮argmaxw,b1wargmax_{w,b} \frac{1}{||w||}

當前目標maxw,b1wmax_{w,b} \frac{1}{||w||},約束條件:yi(wTϕ(xi)+b)>=1y_{i} \cdot (w^{T} \cdot \phi(x_{i}) + b) >= 1

函數變換

​ 對於上述目標函數,我們適當轉換一下,方便求解。我們可以將上述函數的求最大值問題,改爲求極小值問題:

轉換函數 minw,b12w2\Rightarrow min_{w,b} \frac{1}{2}w^{2}

​ 轉換思路爲:先將1w\frac{1}{||w||}轉換成其倒數,再取其平方,再添加一個常規項1/2。雖然做了如下操作之後,最後得到的點的值會發生變換,但是,取到的點是不變的

對於這個函數,我們可以用拉格朗日乘子法求解

求解拉格朗日乘子法

拉格朗日乘子法是專門用來求解帶約束條件的問題的。他的基本公式爲:

minL(x,λ,w)=f0(x)+Σλifi(x)+Σvihi(x)min L(x, \lambda,w)=f_{0}(x) + \Sigma{\lambda_{i}f_{i}(x)} + \Sigma{v_{i}h_{i}(x)}

​ 把我們的方程代入,即得:

L(w,b,α)=12w2Σαi(yi(wTϕ(xi)+b)1)L(w,b,\alpha)= \frac{1}{2}||w||^{2} - \Sigma{\alpha_{i}(y_{i}(w^{T} \cdot \phi(x_i) +b)-1)} 約束條件:yi(wTΦ(xi)+b)>=1{y_i(w^T \cdot \Phi(x_i) + b)>=1}

​ 上式有三個未知量,w, α,b。如果我們能求得這三個變量之間的關係,即可得到方程的解。我們分別對w和b求偏導,得:

對w求偏導:Lw=0w=1nαiyiΦ(xn)\frac{\partial L}{\partial w}=0 \Rightarrow w=\sum\limits_{1-n} {\alpha_{i}y_{i}\Phi(x_n)}

對b求偏導:Lb=00=1nαiyi\frac{\partial L}{\partial b}=0 \Rightarrow 0=\sum\limits_{1-n}{\alpha_{i}y_{i}}

我們帶入原式即得:

L(w,b,α)=12w2Σαi(yi(wTϕ(xi)+b)1)L(w,b,\alpha)= \frac{1}{2}||w||^{2} - \Sigma{\alpha_{i}(y_{i}(w^{T} \cdot \phi(x_i) +b)-1)}

​ 其中:w=1nαiyiΦ(xn)w=\sum\limits_{1-n} {\alpha_{i}y_{i}\Phi(x_n)}; 0=1nαiyi0=\sum\limits_{1-n}{\alpha_{i}y_{i}}

=12wTwwTi=1nαiyiΦ(xi)bi=1nαiyi+i=1nαi=\frac{1}{2}w^{T}w-w^{T}\sum\limits_{i=1}\limits^{n}\alpha_{i}y_{i}\Phi(x_{i}) - b\sum\limits_{i=1}\limits^{n}\alpha_{i}y_{i} + \sum\limits_{i=1}\limits^{n}\alpha_{i}

=i=1nαi12(i=1nαiyiΦ(xi)Ti=1nαiyiΦ(xi)=\sum\limits_{i=1}\limits^{n}\alpha_{i} - \frac{1}{2}(\sum\limits_{i=1}\limits^{n}\alpha_{i}y_{i}\Phi(x_{i})^T\sum\limits_{i=1}\limits^{n}\alpha_{i}y_{i}\Phi(x_{i}) 完成了第一步求解minL(w,b,α)

=i=1nαi12i=1,j=1nαiαjyiyjΦT(xi)ΦT(xj)=\sum\limits_{i=1}\limits^{n}\alpha_{i} - \frac{1}{2}\sum\limits_{i=1,j=1}\limits^{n}\alpha_{i}\alpha_{j}y_i y_j \Phi^T(x_i)\Phi^T(x_j) 求解該式的極值

繼續求解

​ 我們需要求解上式的極大值,添加一個符號,我們轉換爲求解該式的極小值。

即: 12i=1,j=1nαiαjyiyjΦT(xi)ΦT(xj)i=1nαi\frac{1}{2}\sum\limits_{i=1,j=1}\limits^{n}\alpha_{i}\alpha_{j}y_i y_j \Phi^T(x_i)\Phi^T(x_j) - \sum\limits_{i=1}\limits^{n}\alpha_{i}; 條件:i=1nαiyi=0;αi>=0\sum\limits_{i=1}\limits^n \alpha_i yi = 0; \alpha_i >= 0

實例求解

我們現在以一個實例,求解上述方程。

​ 我們將上面數據代入即可得:

對α1和α2求偏導即可得: α1=1.5\alpha_1 = 1.5; $ \alpha_2 = -1$

這裏,α2小於0,不滿足約束條件,所以應該在邊界上。此時α1=0或者α2=0.

將α結果代入求解:w=i=1nαiyiPhi(xn)w=\sum\limits_{i=1}\limits^n \alpha_i y_i |Phi(x_n); 平面方程爲:0.5x1+0.5x22=00.5x_1 + 0.5x_2 -2 = 0

軟間隔問題

在這裏插入圖片描述

核函數

​ 核函數即爲了解決低維不可分問題,通過核函數將我們的數據轉換到高維的層面,這裏就不多介紹了。我們最常用的一個核函數即爲高斯核函數

發佈了16 篇原創文章 · 獲贊 4 · 訪問量 7550
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章