《吳恩達機器學習》學習筆記007_支援向量機

Tony.Stark發表於2020-11-22

http://www.ai-start.com/ml2014/html/week7.html

支援向量機(Support Vector Machines)

優化目標

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

大邊界的直觀理解

在這裡插入圖片描述
這是我的支援向量機模型的代價函式,在左邊這裡我畫出了關於 z z z的代價函式 cos ⁡ t 1 ( z ) {\cos}t_1{(z)} cost1(z),此函式用於正樣本,而在右邊這裡我畫出了關於 z z z的代價函式 cos ⁡ t 0 ( z ) {\cos}t_0{(z)} cost0(z),橫軸表示 z z z,現在讓我們考慮一下,最小化這些代價函式的必要條件是什麼。如果你有一個正樣本, y = 1 y=1 y=1,則只有在 z > = 1 z>=1 z>=1時,代價函式 cos ⁡ t 1 ( z ) {\cos}t_1{(z)} cost1(z)才等於0。

換句話說,如果你有一個正樣本,我們會希望 θ T x > = 1 \theta^Tx>=1 θTx>=1,反之,如果 y = 0 y=0 y=0,我們觀察一下,函式 cos ⁡ t 0 ( z ) {\cos}t_0{(z)} cost0(z),它只有在 z < = − 1 z<=-1 z<=1的區間裡函式值為0。這是支援向量機的一個有趣性質。事實上,如果你有一個正樣本 y = 1 y=1 y=1,則其實我們僅僅要求 θ T x \theta^Tx θTx大於等於0,就能將該樣本恰當分出,這是因為如果 θ T x \theta^Tx θTx>0大的話,我們的模型代價函式值為0,類似地,如果你有一個負樣本,則僅需要 θ T x \theta^Tx θTx<=0就會將負例正確分離,但是,支援向量機的要求更高,不僅僅要能正確分開輸入的樣本,即不僅僅要求 θ T x \theta^Tx θTx>0,我們需要的是比0值大很多,比如大於等於1,我也想這個比0小很多,比如我希望它小於等於-1,這就相當於在支援向量機中嵌入了一個額外的安全因子,或者說安全的間距因子。

當然,邏輯迴歸做了類似的事情。但是讓我們看一下,在支援向量機中,這個因子會導致什麼結果。具體而言,我接下來會考慮一個特例。我們將這個常數 C C C設定成一個非常大的值。比如我們假設 C C C的值為100000或者其它非常大的數,然後來觀察支援向量機會給出什麼結果?
在這裡插入圖片描述
如果 C C C非常大,則最小化代價函式的時候,我們將會很希望找到一個使第一項為0的最優解。因此,讓我們嘗試在代價項的第一項為0的情形下理解該優化問題。比如我們可以把 C C C設定成了非常大的常數,這將給我們一些關於支援向量機模型的直觀感受。

KaTeX parse error: Expected group after '_' at position 5: \min_̲\limits{\theta}…

我們已經看到輸入一個訓練樣本標籤為 y = 1 ​ y=1​ y=1,你想令第一項為0,你需要做的是找到一個 θ ​ {{\theta }}​ θ,使得 θ T x > = 1 ​ \theta^Tx>=1​ θTx>=1,類似地,對於一個訓練樣本,標籤為 y = 0 ​ y=0​ y=0,為了使 cos ⁡ t 0 ( z ) ​ {\cos}t_0{(z)}​ cost0(z) 函式的值為0,我們需要 θ T x < = − 1 ​ \theta^Tx<=-1​ θTx<=1。因此,現在考慮我們的優化問題。選擇引數,使得第一項等於0,就會導致下面的優化問題,因為我們將選擇引數使第一項為0,因此這個函式的第一項為0,因此是 C ​ C​ C乘以0加上二分之一乘以第二項。這裡第一項是 C ​ C​ C乘以0,因此可以將其刪去,因為我知道它是0。

這將遵從以下的約束: θ T x ( i ) > = 1 \theta^Tx^{(i)}>=1 θTx(i)>=1,如果 y ( i ) y^{(i)} y(i)是等於1 的, θ T x ( i ) < = − 1 \theta^Tx^{(i)}<=-1 θTx(i)<=1,如果樣本 i i i是一個負樣本,這樣當你求解這個優化問題的時候,當你最小化這個關於變數 θ {{\theta }} θ的函式的時候,你會得到一個非常有趣的決策邊界。
在這裡插入圖片描述
具體而言,如果你考察這樣一個資料集,其中有正樣本,也有負樣本,可以看到這個資料集是線性可分的。我的意思是,存在一條直線把正負樣本分開。當然有多條不同的直線,可以把正樣本和負樣本完全分開。
在這裡插入圖片描述
比如,這就是一個決策邊界可以把正樣本和負樣本分開。但是多多少少這個看起來並不是非常自然是麼?

或者我們可以畫一條更差的決策界,這是另一條決策邊界,可以將正樣本和負樣本分開,但僅僅是勉強分開,這些決策邊界看起來都不是特別好的選擇,支援向量機將會選擇這個黑色的決策邊界,相較於之前我用粉色或者綠色畫的決策界。這條黑色的看起來好得多,黑線看起來是更穩健的決策界。在分離正樣本和負樣本上它顯得的更好。數學上來講,這是什麼意思呢?這條黑線有更大的距離,這個距離叫做間距(margin)。
在這裡插入圖片描述
當畫出這兩條額外的藍線,我們看到黑色的決策界和訓練樣本之間有更大的最短距離。然而粉線和藍線離訓練樣本就非常近,在分離樣本的時候就會比黑線表現差。因此,這個距離叫做支援向量機的間距,而這是支援向量機具有魯棒性的原因,因為它努力用一個最大間距來分離樣本。因此支援向量機有時被稱為大間距分類器,而這其實是求解上一頁幻燈片上優化問題的結果。

我知道你也許想知道求解上一頁幻燈片中的優化問題為什麼會產生這個結果?它是如何產生這個大間距分類器的呢?我知道我還沒有解釋這一點。

我將會從直觀上略述為什麼這個優化問題會產生大間距分類器。總之這個圖示有助於你理解支援向量機模型的做法,即努力將正樣本和負樣本用最大的間距分開。
在這裡插入圖片描述
在本節課中關於大間距分類器,我想講最後一點:我們將這個大間距分類器中的正則化因子常數 C C C設定的非常大,我記得我將其設定為了100000,因此對這樣的一個資料集,也許我們將選擇這樣的決策界,從而最大間距地分離開正樣本和負樣本。那麼在讓代價函式最小化的過程中,我們希望找出在 y = 1 y=1 y=1 y = 0 y=0 y=0兩種情況下都使得代價函式中左邊的這一項儘量為零的引數。如果我們找到了這樣的引數,則我們的最小化問題便轉變成:
在這裡插入圖片描述
事實上,支援向量機現在要比這個大間距分類器所體現得更成熟,尤其是當你使用大間距分類器的時候,你的學習演算法會受異常點(outlier) 的影響。比如我們加入一個額外的正樣本。
在這裡插入圖片描述
在這裡,如果你加了這個樣本,為了將樣本用最大間距分開,也許我最終會得到一條類似這樣的決策界,對麼?就是這條粉色的線,僅僅基於一個異常值,僅僅基於一個樣本,就將我的決策界從這條黑線變到這條粉線,這實在是不明智的。而如果正則化引數 C C C,設定的非常大,這事實上正是支援向量機將會做的。它將決策界,從黑線變到了粉線,但是如果 C C C 設定的小一點,**如果你將C設定的不要太大,則你最終會得到這條黑線,**當然資料如果不是線性可分的,如果你在這裡有一些正樣本或者你在這裡有一些負樣本,則支援向量機也會將它們恰當分開。因此,大間距分類器的描述,僅僅是從直觀上給出了正則化引數 C C C非常大的情形,同時,要提醒你 C C C的作用類似於 1 / λ 1/\lambda 1/λ λ \lambda λ是我們之前使用過的正則化引數。這只是 C C C非常大的情形,或者等價地 λ \lambda λ 非常小的情形。你最終會得到類似粉線這樣的決策界,但是實際上應用支援向量機的時候,**當 C C C不是非常非常大的時候,它可以忽略掉一些異常點的影響,得到更好的決策界。**甚至當你的資料不是線性可分的時候,支援向量機也可以給出好的結果。

回顧 C = 1 / λ C=1/\lambda C=1/λ,因此:

C C C 較大時,相當於 λ \lambda λ 較小,可能會導致過擬合,高方差。

C C C 較小時,相當於 λ \lambda λ較大,可能會導致低擬合,高偏差。

我們稍後會介紹支援向量機的偏差和方差,希望在那時候關於如何處理引數的這種平衡會變得更加清晰。我希望,這節課給出了一些關於為什麼支援向量機被看做大間距分類器的直觀理解。它用最大間距將樣本區分開,儘管從技術上講,這隻有當引數 C C C是非常大的時候是真的,但是它對於理解支援向量機是有益的。

本節課中我們略去了一步,那就是我們在幻燈片中給出的優化問題。為什麼會是這樣的?它是如何得出大間距分類器的?我在本節中沒有講解,在下一節課中,我將略述這些問題背後的數學原理,來解釋這個優化問題是如何得到一個大間距分類器的。

大邊界分類背後的數學(選修)

在這裡插入圖片描述
首先,讓我來給大家複習一下關於向量內積的知識。假設我有兩個向量, u u u v v v,我將它們寫在這裡。兩個都是二維向量,我們看一下, u T v u^T v uTv的結果。 u T v u^T v uTv也叫做向量 u u u v v v之間的內積。由於是二維向量,我可以將它們畫在這個圖上。我們說,這就是向量 u u u即在橫軸上,取值為某個 u 1 {{u}{1}} u1,而在縱軸上,高度是某個 u 2 {{u}{2}} u2作為 u u u的第二個分量。現在,很容易計算的一個量就是向量 u u u的範數。 ∣ u ∣ \left| u \right| u表示 u u u的範數,即 u u u的長度,即向量 u u u的歐幾里得長度。根據畢達哥拉斯定理, ∣ u ∣ = u 1 2 + u 2 2 \left| u \right|=\sqrt{u_{1}^{2}+u_{2}^{2}} u=u12+u22 ,這是向量 u u u的長度,它是一個實數。現在你知道了這個的長度是多少了。我剛剛畫的這個向量的長度就知道了。

現在讓我們回頭來看向量 v v v ,因為我們想計算內積。 v v v是另一個向量,它的兩個分量 v 1 {{v}{1}} v1 v 2 {{v}{2}} v2是已知的。向量 v v v可以畫在這裡,現在讓我們來看看如何計算 u u u v v v之間的內積。這就是具體做法,我們將向量 v v v投影到向量 u u u上,我們做一個直角投影,或者說一個90度投影將其投影到 u u u上,接下來我度量這條紅線的長度。我稱這條紅線的長度為 p p p,因此 p p p就是長度,或者說是向量 v v v投影到向量 u u u上的量,我將它寫下來, p p p v v v投影到向量 u u u上的長度,因此可以將 u T v = p ⋅ ∣ u ∣ {{u}^{T}}v=p\centerdot \left| u \right| uTv=pu,或者說 u u u的長度。這是計算內積的一種方法。如果你從幾何上畫出 p p p的值,同時畫出 u u u的範數,你也會同樣地計算出內積,答案是一樣的。另一個計算公式是: u T v u^T v uTv就是 [ u 1   u 2 ] \left[ {{u}{1}}\text{ }{{u}{2}} \right] [u1 u2] 這個一行兩列的矩陣乘以 v v v。因此可以得到 u 1 × v 1 + u 2 × v 2 {{u}{1}}\times {{v}{1}}+{{u}{2}}\times {{v}{2}} u1×v1+u2×v2。根據線性代數的知識,這兩個公式會給出同樣的結果。順便說一句, u T v = v T u u^Tv=v^Tu uTv=vTu。因此如果你將 u u u v v v交換位置,將 u u u投影到 v v v上,而不是將 v v v投影到 u u u上,然後做同樣地計算,只是把 u u u v v v的位置交換一下,你事實上可以得到同樣的結果。申明一點,在這個等式中 u u u的範數是一個實數, p p p也是一個實數,因此 u T v u^T v uTv就是兩個實數正常相乘。
在這裡插入圖片描述
最後一點,需要注意的就是 p p p值, p p p事實上是有符號的,即它可能是正值,也可能是負值。我的意思是說,如果 u u u是一個類似這樣的向量, v v v是一個類似這樣的向量, u u u v v v之間的夾角大於90度,則如果將 v v v投影到 u u u上,會得到這樣的一個投影,這是 p p p的長度,在這個情形下我們仍然有 u T v {{u}^{T}}v uTv是等於 p p p乘以 u u u的範數。唯一一點不同的是 p p p在這裡是負的。在內積計算中,如果 u u u v v v之間的夾角小於90度,那麼那條紅線的長度 p p p是正值。然而如果這個夾角大於90度,則 p p p將會是負的。就是這個小線段的長度是負的。如果它們之間的夾角大於90度,兩個向量之間的內積也是負的。這就是關於向量內積的知識。我們接下來將會使用這些關於向量內積的性質試圖來理解支援向量機中的目標函式。
在這裡插入圖片描述
這就是我們先前給出的支援向量機模型中的目標函式。為了講解方便,我做一點簡化,僅僅是為了讓目標函式更容易被分析。
在這裡插入圖片描述
我接下來忽略掉截距,令 θ 0 = 0 {{\theta }{0}}=0 θ0=0,這樣更容易畫示意圖。我將特徵數 n n n置為2,因此我們僅有兩個特徵 x 1 , x 2 {{x}{1}},{{x}{2}} x1,x2,現在我們來看一下目標函式,支援向量機的優化目標函式。當我們僅有兩個特徵,即 n = 2 n=2 n=2時,這個式子可以寫作: 1 2 ( θ 1 2 + θ 2 2 ) = 1 2 ( θ 1 2 + θ 2 2 ) 2 \frac{1}{2}\left({\theta_1^2+\theta_2^2}\right)=\frac{1}{2}\left(\sqrt{\theta_1^2+\theta_2^2}\right)^2 21(θ12+θ22)=21(θ12+θ22 )2,我們只有兩個引數 θ 1 , θ 2 {{\theta }{1}},{{\theta }_{2}} θ1,θ2。你可能注意到括號裡面的這一項是向量 θ {{\theta }} θ的範數,或者說是向量 θ {{\theta }} θ的長度。我的意思是如果我們將向量 θ {{\theta }} θ寫出來,那麼我剛剛畫紅線的這一項就是向量 θ {{\theta }} θ的長度或範數。這裡我們用的是之前學過的向量範數的定義,事實上這就等於向量 θ {{\theta }} θ的長度。

當然你可以將其寫作 θ 0 , θ 1 , θ 2 {{\theta }{0}}\text{,}{{\theta }{1}},{{\theta }{2}} θ0,θ1,θ2,如果 θ 0 = 0 {{\theta }{0}}=0 θ0=0,那就是 θ 1 , θ 2 {{\theta }{1}},{{\theta }{2}} θ1,θ2的長度。在這裡我將忽略 θ 0 {{\theta }{0}} θ0,這樣來寫 θ \theta θ的範數,它僅僅和 θ 1 , θ 2 {{\theta }{1}},{{\theta }{2}} θ1,θ2有關。但是,數學上不管你是否包含,其實並沒有差別,因此在我們接下來的推導中去掉 θ 0 {{\theta }{0}} θ0不會有影響這意味著我們的目標函式是等於 1 2 ∣ θ ∣ 2 \frac{1}{2}\left| \theta \right|^2 21θ2。因此支援向量機做的全部事情,就是極小化引數向量 θ {{\theta }} θ範數的平方,或者說長度的平方。

現在我將要看看這些項: θ T x \theta^{T}x θTx更深入地理解它們的含義。給定引數向量$\theta 給 定 一 個 樣 本 給定一個樣本 x , 這 等 於 什 麼 呢 ? 在 前 一 頁 幻 燈 片 上 , 我 們 畫 出 了 在 不 同 情 形 下 , ,這等於什麼呢?在前一頁幻燈片上,我們畫出了在不同情形下, ?u^Tv 的 示 意 圖 , 我 們 將 會 使 用 這 些 概 念 , 的示意圖,我們將會使用這些概念, 使\theta 和 和 x^{(i)} 就 類 似 於 就類似於 u 和 和 v$ 。
在這裡插入圖片描述
讓我們看一下示意圖:我們考察一個單一的訓練樣本,我有一個正樣本在這裡,用一個叉來表示這個樣本 x ( i ) ​ x^{(i)}​ x(i),意思是在水平軸上取值為 x 1 ( i ) ​ x_1^{(i)}​ x1(i),在豎直軸上取值為 x 2 ( i ) ​ x_2^{(i)}​ x2(i)。這就是我畫出的訓練樣本。儘管我沒有將其真的看做向量。它事實上就是一個始於原點,終點位置在這個訓練樣本點的向量。現在,我們有一個引數向量我會將它也畫成向量。我將 θ 1 ​ θ_1​ θ1畫在橫軸這裡,將 θ 2 ​ θ_2​ θ2 畫在縱軸這裡,那麼內積 θ T x ( i ) θ^T x^{(i)} θTx(i) 將會是什麼呢?

使用我們之前的方法,我們計算的方式就是我將訓練樣本投影到引數向量 θ {{\theta }} θ,然後我來看一看這個線段的長度,我將它畫成紅色。我將它稱為 p ( i ) p^{(i)} p(i)用來表示這是第 i i i個訓練樣本在引數向量 θ {{\theta }} θ上的投影。根據我們之前幻燈片的內容,我們知道的是 θ T x ( i ) θ^Tx^{(i)} θTx(i)將會等於 p p p 乘以向量 θ θ θ 的長度或範數。這就等於 θ 1 ⋅ x 1 ( i ) + θ 2 ⋅ x 2 ( i ) \theta_1\cdot{x_1^{(i)}}+\theta_2\cdot{x_2^{(i)}} θ1x1(i)+θ2x2(i)。這兩種方式是等價的,都可以用來計算 θ θ θ x ( i ) x^{(i)} x(i)之間的內積。

這告訴了我們什麼呢?這裡表達的意思是:這個 θ T x ( i ) > = 1 θ^Tx^{(i)}>=1 θTx(i)>=1 或者 θ T x ( i ) < − 1 θ^Tx^{(i)}<-1 θTx(i)<1的,約束是可以被 p ( i ) ⋅ x > = 1 p^{(i)}\cdot{x}>=1 p(i)x>=1這個約束所代替的。因為 θ T x ( i ) = p ( i ) ⋅ ∣ θ ∣ θ^Tx^{(i)}=p^{(i)}\cdot{\left| \theta \right|} θTx(i)=p(i)θ ,將其寫入我們的優化目標。我們將會得到沒有了約束, θ T x ( i ) θ^Tx^{(i)} θTx(i)而變成了 p ( i ) ⋅ ∣ θ ∣ p^{(i)}\cdot{\left| \theta \right|} p(i)θ
在這裡插入圖片描述
需要提醒一點,我們之前曾講過這個優化目標函式可以被寫成等於 1 2 ∣ θ ∣ 2 \frac{1}{2}\left| \theta \right|^2 21θ2

現在讓我們考慮下面這裡的訓練樣本。現在,繼續使用之前的簡化,即 θ 0 = 0 {{\theta }_{0}}=0 θ0=0,我們來看一下支援向量機會選擇什麼樣的決策界。這是一種選擇,我們假設支援向量機會選擇這個決策邊界。這不是一個非常好的選擇,因為它的間距很小。這個決策界離訓練樣本的距離很近。我們來看一下為什麼支援向量機不會選擇它。

對於這樣選擇的引數 θ {{\theta }} θ,可以看到引數向量 θ {{\theta }} θ事實上是和決策界是90度正交的,因此這個綠色的決策界對應著一個引數向量 θ {{\theta }} θ這個方向,順便提一句 θ 0 = 0 {{\theta }_{0}}=0 θ0=0的簡化僅僅意味著決策界必須通過原點 ( 0 , 0 ) (0,0) (0,0)。現在讓我們看一下這對於優化目標函式意味著什麼。
在這裡插入圖片描述
比如這個樣本,我們假設它是我的第一個樣本 x ( 1 ) x^{(1)} x(1),如果我考察這個樣本到引數 θ {{\theta }} θ的投影,投影是這個短的紅線段,就等於 p ( 1 ) p^{(1)} p(1),它非常短。類似地,這個樣本如果它恰好是 x ( 2 ) x^{(2)} x(2),我的第二個訓練樣本,則它到 θ {{\theta }} θ的投影在這裡。我將它畫成粉色,這個短的粉色線段是 p ( 2 ) p^{(2)} p(2),即第二個樣本到我的引數向量 θ {{\theta }} θ的投影。因此,這個投影非常短。 p ( 2 ) p^{(2)} p(2)事實上是一個負值, p ( 2 ) p^{(2)} p(2)是在相反的方向,這個向量和引數向量 θ {{\theta }} θ的夾角大於90度, p ( 2 ) p^{(2)} p(2)的值小於0。

我們會發現這些 p ( i ) p^{(i)} p(i)將會是非常小的數,因此當我們考察優化目標函式的時候,對於正樣本而言,我們需要 p ( i ) ⋅ ∣ θ ∣ > = 1 p^{(i)}\cdot{\left| \theta \right|}>=1 p(i)θ>=1,但是如果 p ( i ) p^{(i)} p(i)在這裡非常小,那就意味著我們需要 θ {{\theta }} θ的範數非常大.因為如果 p ( 1 ) p^{(1)} p(1) 很小,而我們希望 p ( 1 ) ⋅ ∣ θ ∣ > = 1 p^{(1)}\cdot{\left| \theta \right|}>=1 p(1)θ>=1,令其實現的唯一的辦法就是這兩個數較大。如果 p ( 1 ) p^{(1)} p(1) 小,我們就希望 θ {{\theta }} θ的範數大。類似地,對於負樣本而言我們需要 p ( 2 ) ⋅ ∣ θ ∣ < = − 1 p^{(2)}\cdot{\left|\theta \right|}<=-1 p(2)θ<=1。我們已經在這個樣本中看到 p ( 2 ) p^{(2)} p(2)會是一個非常小的數,因此唯一的辦法就是 θ {{\theta }} θ的範數變大。但是我們的目標函式是希望找到一個引數 θ {{\theta }} θ,它的範數是小的。因此,這看起來不像是一個好的引數向量 θ {{\theta }} θ的選擇。
在這裡插入圖片描述
相反的,來看一個不同的決策邊界。比如說,支援向量機選擇了這個決策界,現在狀況會有很大不同。如果這是決策界,這就是相對應的引數 θ {{\theta }} θ的方向,因此,在這個決策界之下,垂直線是決策界。使用線性代數的知識,可以說明,這個綠色的決策界有一個垂直於它的向量 θ {{\theta }} θ。現在如果你考察你的資料在橫軸 x x x上的投影,比如這個我之前提到的樣本,我的樣本 x ( 1 ) x^{(1)} x(1),當我將它投影到橫軸 x x x上,或說投影到 θ {{\theta }} θ上,就會得到這樣 p ( 1 ) p^{(1)} p(1)。它的長度是 p ( 1 ) p^{(1)} p(1),另一個樣本,那個樣本是 x ( 2 ) x^{(2)} x(2)。我做同樣的投影,我會發現, p ( 2 ) p^{(2)} p(2)的長度是負值。你會注意到現在 p ( 1 ) p^{(1)} p(1) p ( 2 ) p^{(2)} p(2)這些投影長度是長多了。如果我們仍然要滿足這些約束, P ( i ) ⋅ ∣ θ ∣ P^{(i)}\cdot{\left| \theta \right|} P(i)θ>1,則因為 p ( 1 ) p^{(1)} p(1)變大了, θ {{\theta }} θ的範數就可以變小了。因此這意味著通過選擇右邊的決策界,而不是左邊的那個,支援向量機可以使引數 θ {{\theta }} θ的範數變小很多。因此,如果我們想令 θ {{\theta }} θ的範數變小,從而令 θ {{\theta }} θ範數的平方變小,就能讓支援向量機選擇右邊的決策界。這就是支援向量機如何能有效地產生大間距分類的原因。

看這條綠線,這個綠色的決策界。我們希望正樣本和負樣本投影到 θ \theta θ的值大。要做到這一點的唯一方式就是選擇這條綠線做決策界。這是大間距決策界來區分開正樣本和負樣本這個間距的值。這個間距的值就是 p ( 1 ) , p ( 2 ) , p ( 3 ) p^{(1)},p^{(2)},p^{(3)} p(1),p(2),p(3)等等的值。通過讓間距變大,即通過這些 p ( 1 ) , p ( 2 ) , p ( 3 ) p^{(1)},p^{(2)},p^{(3)} p(1),p(2),p(3)等等的值,支援向量機最終可以找到一個較小的 θ {{\theta }} θ範數。這正是支援向量機中最小化目標函式的目的。

以上就是為什麼支援向量機最終會找到大間距分類器的原因。因為它試圖極大化這些 p ( i ) p^{(i)} p(i)的範數,它們是訓練樣本到決策邊界的距離。最後一點,我們的推導自始至終使用了這個簡化假設,就是引數 θ 0 = 0 θ_0=0 θ0=0
在這裡插入圖片描述
就像我之前提到的。這個的作用是: θ 0 = 0 θ_0=0 θ0=0的意思是我們讓決策界通過原點。如果你令 θ 0 θ_0 θ0不是0的話,含義就是你希望決策界不通過原點。我將不會做全部的推導。實際上,支援向量機產生大間距分類器的結論,會被證明同樣成立,證明方式是非常類似的,是我們剛剛做的證明的推廣。

之前視訊中說過,即便 θ 0 θ_0 θ0不等於0,支援向量機要做的事情都是優化這個目標函式對應著 C C C值非常大的情況,但是可以說明的是,即便 θ 0 θ_0 θ0不等於0,支援向量機仍然會找到正樣本和負樣本之間的大間距分隔。

總之,我們解釋了為什麼支援向量機是一個大間距分類器。在下一節我們,將開始討論如何利用支援向量機的原理,應用它們建立一個複雜的非線性分類器。

核函式

高斯核函式
線性核函式

使用支援向量機

但是大多數支援向量機軟體包都有內建的多類分類功能,我們只要直接使用即可。

儘管你不去寫你自己的SVM的優化軟體,但是你也需要做幾件事:

1、是提出引數 C C C的選擇。我們在之前的視訊中討論過誤差/方差在這方面的性質。

2、你也需要選擇核心引數或你想要使用的相似函式,其中一個選擇是:我們選擇不需要任何核心引數,沒有核心引數的理念,也叫線性核函式。因此,如果有人說他使用了線性核的SVM(支援向量機),這就意味這他使用了不帶有核函式的SVM(支援向量機)。

從邏輯迴歸模型,我們得到了支援向量機模型,在兩者之間,我們應該如何選擇呢?

下面是一些普遍使用的準則:

n n n為特徵數, m m m為訓練樣本數。

(1)如果相較於 m m m而言, n n n要大許多,即訓練集資料量不夠支援我們訓練一個複雜的非線性模型,我們選用邏輯迴歸模型或者不帶核函式的支援向量機。

(2)如果 n n n較小,而且 m m m大小中等,例如 n n n在 1-1000 之間,而 m m m在10-10000之間,使用高斯核函式的支援向量機。

(3)如果 n n n較小,而 m m m較大,例如 n n n在1-1000之間,而 m m m大於50000,則使用支援向量機會非常慢,解決方案是創造、增加更多的特徵,然後使用邏輯迴歸或不帶核函式的支援向量機。

值得一提的是,神經網路在以上三種情況下都可能會有較好的表現,但是訓練神經網路可能非常慢,選擇支援向量機的原因主要在於它的代價函式是凸函式,不存在區域性最小值。

相關文章