機器學習之支援向量機演算法 二

2022-02-25 02:46:45 字數 2917 閱讀 3773

上面其實已經得出最終的表示式了,下面我們會根據一些具體的點來求解α的值。資料:3個點,其中正例 x1(3,3) ,x2(4,3) ,負例x3(1,1) 如下圖所示

我們需要求解下式的極小值

注意約束條件(在這裡不要忘記了yi代表的是資料的類別,+1代表正例,-1代表負例)

代入資料,通過化簡可以得到如下約束條件的表示式。

將資料代入上式得到

由於α1+α2-α3=0 -> α1+α2=α3: 化簡可得:

分別對α1和α2求偏導,偏導等於0可得: α1=1.5,α2=-1(並不滿足約束條件αi >= 0,i=1,2,3 )所以這時求出來的α的值是無效的,那這個時候α的解應在邊界上,也就是說要麼α1=0,要麼α2=0,再代入上式然後求偏導看下

(這兒經過我的計算發現α2似乎等於正的2/13,應該是教程有些小問題,猜測可能是上式由α1+α2=α3化簡這兒出了點小問題,但是對於答案似乎影響不大) ,所以經過計算最小值在(0.25,0,0.25)處取得 。

上面的平面方程其實就是代表直線方程,也就是決策邊界的方程。

為什麼會取支援向量機這樣乙個名字呢?

我們可以發現決策邊界只與α不等零的有關係,因為w=αiyi的累加和,所以α為0的點不起作用。

可以得出所有邊界上的點α值必然不等於0,也稱作支援向量,所有非邊界上的點α值必等於0,也稱作非支援向量。支援向量機中的機指的就是決策邊界,而決策邊界就是由支援向量所支撐的,支援向量就是邊界點α值不為0的點,決定邊界。如下圖所示當取60個樣本點和120個樣本點時,只要新增的不是邊界上的樣本點,那麼決策邊界就是不變的。

軟間隔:有時候資料中有一些噪音點,如果考慮它們的話那咱們的決策邊界線就不太好界定了,之前的方法要求把兩類點完全分得開,這個要求有點過於嚴格了,我們來放鬆一點!

為了解決該問題,引入鬆弛因子ξ

那我們就有了新的目標函式:

當c趨近於很大時,要使得整體很小的話,那麼意味著鬆弛因子ξ就會很小,那就意味著分類嚴格不能有錯誤。當c趨近於很小時,要使得整體很小的話,那就意味著鬆弛因子ξ可以稍微大一些,那就意味著可以有更大的錯誤容忍。c是我們實際在程式設計中需要指定的乙個引數!下面是多了乙個鬆弛因子ξ下的拉格朗日乘子法,基本上和上面差不多的。

將低維不可分問題(一般就是非線性支援向量機問題)對映為空間中的高維可分問題,這就是核變換。上面我們提到了這個函式φ(x) ,那這個函式的意思就是代表一種核變換的方法。如下圖在二維平面下分類很困難,但是如果將資料對映到3為空間,那這樣就很好劃分了。

還是先從乙個小例子來闡述問題。假設我們有倆個資料,x=(x1,x2,x3),y=(y1,y2,y2),此時在3d空間已經不能對其進行線性劃分了,那麼我們通過乙個函式φ(x)將資料對映到更高維的空間,比如9維的話,那麼f(x)=(x1x1,x1x2,x1x3,x2x1,x2x2,x2x3,x3x1,x3x2,x3x3),由於需要計算內積,所以在新的資料在9維空間,需要計算的內積,需要花費時間o(n2)。

在具體點,令x=(1,2,3),y=(4,5,6),那麼f(x)=(1,2,3,2,4,6,3,6,9),f(y)=(16,20,24,20,25,36,24,30,36),此時=16+40+72+40+100+180+72+180+324=1024。似乎還能計算,但是如果將維數擴大到乙個非常大數時候,計算起來可就不是一丁點問題了。

但是發現,k(x,y)=()2,k(x,y)=(4+40+18)2=322=1024。倆者相等,k(x,y)=()2=,但是k(x,y)計算起來卻比簡單的多,也就是說只要用k(x,y)來計算,效果和一樣的,但是計算效率卻大幅度提高了,如:k(x,y)的計算時間是o(n),而的計算時間是o(n2)。所以使用核函式的好處就是,可以在乙個低維空間去完成高緯度(或者無限維度)樣本內積的計算(意思就是實際上並沒有把資料對映到高維空間去,只是乙個假設),比如k(x,y)=(4+10+18)2的3d空間對比=16+40+72+40+100+180+72+180+324的9d空間。

下面了解一下高斯核函式對非線性資料(對於線性資料的話有線性核函式)的分類問題,如圖所示:

這次學習了支援向量機演算法,其實對於所有的機器學習演算法來講,首先要了解它的物理含義,也就是它要解決的問題是什麼,然後根據這個問題進行一步步的學習,最後得出最終的結論。就支援向量機而言,我們首先學習了點到平面的距離的計算,然後根據距離引出了如何算出這個距離最大的這樣的乙個表示式,然後就有了拉格朗日乘子法以及kkt性質,然後通過乙個例子具體的算出來了決策邊界的方程。在這其中,還引出了為什麼會有支援向量機(α等於0與不等0的區別)這麼個叫法,然後還有軟間隔和鬆弛因子ξ的問題,最後還了解了使用核函式φ(x)變換來解決低維不可分的問題。

機器學習演算法 支援向量機

適用問題 二分類問題 模型型別 判別模型 模型特點 分離超平面 核技巧 學習策略 極小化正則化合頁損失 軟體額最大化 學習演算法 概率計算公式 em演算法 定義 支援向量機 support vector machine,svm 是一類按監督學習方式對資料進行二元分類的廣義線性分類器,其決策邊界是對學...

機器學習之支援向量機

描述 用於處理二分類問題,對於二維線性可分的問題,尋找決策邊界 分割線 使得支撐向量到決策邊界的距離盡可能的大.對於線性不可分的問題,則首先將樣本特徵對映到更高維度,再尋找乙個超平面,使得支撐向量到超平面的距離盡可能的小.通過核函式得展開達到這一目的.常用的核函式有線性核,多項式核,高斯核.引入正則...

機器學習演算法 支援向量機SVM

在上兩節中,我們講解了機器學習的決策樹和k 近鄰演算法,本節我們講解另外一種分類演算法 支援向量機svm。svm是迄今為止最好使用的分類器之一,它可以不加修改即可直接使用,從而得到低錯誤率的結果。案例背景 從前有兩個地主,他們都是占山為王的一方霸主。本來各自吃飽自己的飯萬事無憂,可是人心不知足蛇吞象...