1. 程式人生 > >吳恩達機器學習13--支援向量機(Support Vector Machines)

吳恩達機器學習13--支援向量機(Support Vector Machines)

第13章 支援向量機(Support Vector Machines)

一,優化目標(Optimization objective)

SVM也是廣泛的應用於工業界和學術界的監督學習演算法。

類似於logistic的代價函式,SVM的代價函式如圖是斜直線加上平直線。所以是類似的,在之後的優化問題中,這會變得更堅定,並且為支援向量機,帶來計算上的優勢。例如,更容易計算股票交易的問題等等。

二,直觀上對大間距的理解

人們有時將支援向量機看作是大間距分類器。

SVM可以建立一個安全間距,雖然logistic也會做類似的事情。

支援向量機是一種大間距分類器,間距margin。

三,大間距分類器的數學原理

向量的內積,vector inner product

我的推導

這不是一個非常好的選擇,因為它的間距很小。這個決策界離訓練樣本的距離很近。我們來看一下為什麼支援向量機不會選擇它。

對於這樣選擇的引數theta,可以看到引數向量theta事實上是和決策界是90度正交的,因此這個綠色的決策界對應著一個引數向量theta這個方向,順便提一句theta_0=0的簡化僅僅意味著決策界必須通過原點。現在讓我們看一下這對於優化目標函式意味著什麼。

比如這個樣本,我們假設它是我的第一個樣本x^(1),如果我考察這個樣本到引數theta的投影,投影是這個短的紅線段,就等於p^(1),它非常短。類似地,這個樣本如果它恰好是x^(2),我的第二個訓練樣本,則它到的投影在這裡。我將它畫成粉色,這個短的粉色線段是p^(2),即第二個樣本到我的引數向量的投影。因此,這個投影非常短。p^(2)事實上是一個負值,是在相反的方向,這個向量和引數向量theta的夾角大於90度,p^(2)的值小於0。

我們會發現這些p^(i)將會是非常小的數,因此當我們考察優化目標函式的時候,對於正樣本而言,我們需要p^{(i)}\cdot \left \| \theta \right \|\geqslant 1,但是如果p^(i)在這裡非常小,那就意味著我們需要theta的範數非常大.因為如果p^(1)很小,而我們希望p^{(1)}\cdot \left \| \theta \right \|\geqslant 1,令其實現的唯一的辦法就是這兩個數較大。如果 p^(1)小,我們就希望theta的範數大。類似地,對於負樣本而言我們需要p^{(2)}\cdot \left \| \theta \right \|\leq -1。我們已經在這個樣本中看到p^(2)會是一個非常小的數,因此唯一的辦法就是的範數變大。但是我們的目標函式是希望找到一個引數theta,它的範數是小的。因此,這看起來不像是一個好的引數向量theta的選擇。

四,核函式1

採用別的方法來構造非線性的特徵量

高斯核函式,範數部分是歐式距離取平方。

基於x和l的相似度,計算新的特徵量。

五,核函式2

 

六,使用svm

可以先對資料進行縮放

已有的核函式演算法包

許多SVM包已有多分類功能了,也可以採用一對多方法

什麼時候要用核函式,特徵量特別少,樣本多。

無核函式的SVM法與logistic regression類似。