支援向量機

2021-10-01 05:16:37 字數 2822 閱讀 5939

分隔超平面

指將資料集分開的直線或者多維物件。

支援向量

指資料集中離分隔超平面最近的那些點。

分類原理

找出分隔超平面使得支援向量到分隔超平面的距離最大化。

分類器求解優化

輸入資料給分類器輸出乙個分類標籤,這裡構造乙個函式當x>0時輸出+1,x<0時輸出-1,這是因為+1和-1僅相差乙個符號,能方便數學上的處理。分隔超平面的形式可以寫成wx+b=0的形式,容易知道點到分隔面的距離就是|wx+b|/||w||,對於點到分割面的間隔大小就可以用label*(wx+b)表示了,下面式子即為所求:

假設支援向量的label*(wx+b)=1,那麼其他點的label*(wx+b)肯定會大於1,於是問題就變成了在條件label*(wx+b)>=1下求1/||w||的最大值,然後通過一系列轉換(大體上是將求1/||w||的最大值轉換為求||w||^2/2的最小值然後用拉格朗日乘演算法和拉格朗日對偶,過程原理有點複雜,這裡就不寫了)上式就可以表示為:

約束條件為

、其中w=α[1]*label[1]*x[1]+…+α[m]*label[m]*x[m]。

但是這裡有個假設:資料必須100%線性可分。目前為止,我們知道幾乎所有資料都不那麼「乾淨」。這時就需要引入乙個鬆弛變數使得資料可以被分到錯誤的一側,這時新的約束條件為:

在這裡插入描述

從上面可以知道只要求出對應的α,就可以表達出分隔超平面,而svm的主要工作就是求解α

smo演算法

smo演算法的目標是求出一系列alpha和b,一旦求出了這些alpha,就很容易計算出權重向量w 並得到分隔超平面。

原理每次迴圈中選擇兩個alpha進行優化處理。一旦找到一對合適的 alpha,那麼就增大其中乙個同時減小另乙個。這裡所謂的「合適」就是指兩個alpha必須要符合 一定的條件,條件之一就是這兩個alpha必須要在間隔邊界之外,而其第二個條件則是這兩個alpha 還沒有進行過區間化處理或者不在邊界上。

platt的smo演算法是將大優化問題分解為多個小優化問題來求解的。這些小優化問題往往很容易求解,並且對它們進行順序求解的結果與將它們作為整體來求解的結果是完全一致的。在結果完全相同的同時, smo演算法的求解時間短很多。

smo演算法的目標是求出一系列alpha和b,一旦求出了這些alpha,就很容易計算出權重向量w並得到分隔超平面。

smo演算法的工作原理是:每次迴圈中選擇兩個alpha進行優化處理。一旦找到一對合適的alpha,那麼就增大其中乙個同時減小另乙個。這裡所謂的「合適」就是指兩個alpha必須要符合一定的條件,條件之一就是這兩個alpha必須要在間隔邊界之外,而其第二個條件則是這兩個alpha還沒有進行過區間化處理或者不在邊界上。

在圖6-6中,資料點處於乙個圓中,人類的大腦能夠意識到這一點。然而,對於分類器而言,它只能識別分類器的結果是大於0還是小於0。如果只在x和y軸構成的座標系中插入直線進行分類的話,我們並不會得到理想的結果。我們或許可以對圓中的資料進行某種形式的轉換,從而得到某些新的變數來表示資料。在這種表示情況下,我們就更容易得到大於0或者小於0的測試結果。

在這個例子中,我們將資料從乙個特徵空間轉換到另乙個特徵空間。在新空間下,我們可以很容易利用已有的工具對資料進行處理。數學家們喜歡將這個過程稱之為從乙個特徵空間到另乙個特徵空間的對映。在通常情況下,這種對映會將低維特徵空間對映到高維空間。

svm優化中乙個特別好的地方就是,所有的運算都可以寫成內積的形式。向量的內積指的是兩個向量相乘,之後得到單個標量或者數值。我們可以把內積運算替換成核函式,而不必做簡化處理。將內積替換成核函式的方式被稱為核技巧或者核「變電」。核函式並不僅僅應用於支援向量機,很多其他的機器學習演算法也都用到核函式

徑向基函式是svm中常用的乙個核函式。徑向基函式是乙個採用向量作為自變數的函式,能夠基於向量距離運算輸出乙個標量。這個距離可以是從<0,0>向量或者其他向量開始計算的距離。徑向基函式高斯版本的具體公式為:

上述高斯核函式將資料從其特徵空間對映到更高維的空間,具體來說這裡是對映到乙個無窮維的空間。 在上面的例子中,資料點基本上都在乙個圓內。對於這個例子,我們可以直接檢查原始資料,並意識到只要度量資料點到圓心的距離即可。然而,如果碰到了乙個不是這種形式的新資料集,那麼我們就會陷入困境。在該資料集上,使用高斯核函式可以得到很好的結果。當然,該函式也可以用於許多其他的資料集,並且也能得到低錯誤率的結果。

儘管之前所使用的knn方法效果不錯,但是需要保留所有的訓練樣本。而對於支援向量機而言,其需要保留的樣本少了很多(即只保留支援向量),但是能獲得可比的效果。

(2) 準備資料:基於二值影象構造向量。

(3)分析資料:對影象向量進行目測。

(4) 訓練演算法:採用兩種不同的核函式,並對徑向基核函式採用不同的設定來執行smo演算法 。

(5) 測試演算法:編寫乙個函式來測試不同的核函式並計算錯誤率。

(6)使用演算法:乙個影象識別的完整應用還需要一些影象處理的知識。

支援向量機是一種分類器。之所以稱為「機」是因為它會產生乙個二值決策結果,即它是一種決策「機」。支援向量機的泛化錯誤率較低,也就是說它具有良好的學習能力,且學到的結果具有很好的推廣性。這些優點使得支援向量機十分流行,有些人認為它是監督學習中最好的定式演算法。

核方法或者說核技巧會將資料(有時是非線性資料)從乙個低維空間對映到乙個高維空間,可以將乙個在低維空間中的非線性問題轉換成高維空間下的線性問題來求解。核方法不止在svm中適用,還可以用於其他演算法中。而其中的徑向基函式是乙個常用的度量兩個向量距離的核函式。

支援向量機是乙個二類分類器。當用其解決多類問題時,則需要額外的方法對其進行擴充套件。svm的效果也對優化引數和所用核函式中的引數敏感。

支援向量機專題 線性支援向量機

原文 當資料線性不可分時,使用硬間隔支援向量機很難得到理想的結果。但是如果資料近似線性可分,可以採用軟間隔支援向量機 線性支援向量機 進行分類。這通常適用於有少量異常樣本的分類,如果使用線性支援向量機,它會盡量使得所有訓練樣本都正確,如下圖所示。顯然這並不是最好的結果,軟間隔支援向量機可以權衡 間隔...

支援向量機

支援向量機 svm 一種專門研究有限樣本 的學習方法。是在統計學習理論基礎之上發展而來的。沒有以傳統的經驗風險最小化原則作為基礎,而是建立在結構風險最小化原理的基礎之上,發展成為一種新型的結構化學習方法。結構風險最小歸納原理 解決了有限樣本或小樣本的情況下獲得具有優異泛化能力的學習機器。包含了學習的...

支援向量機

支援向量 與分離超平面距離最近的樣本點的例項 優點 泛化錯誤率低,計算開銷不大,結果易解釋 缺點 對引數調節和核函式選擇敏感,原始分類器不加修改僅適用於處理二分類問題 適合資料型別 數值型和標稱型資料 每次迴圈中選擇兩個alpha進行優化處理。一旦找到一對合適的alpha,那麼久增大其中乙個同時減小...