支持向量機(Support Vector Machines)
優化目標
到目前為止,你已經見過一系列不同的學習算法。在監督學習中,許多學習算法的性能都非常類似,因此,重要的不是你該選擇使用學習算法A還是學習算法B,而更重要的是,應用這些算法時,所創建的大量數據在應用這些算法時,表現情況通常依賴於你的水平。比如:你為學習算法所設計的特征量的選擇,以及如何選擇正則化參數,諸如此類的事。還有一個更加強大的算法廣泛的應用於工業界和學術界,它被稱為支持向量機(Support Vector Machine)。與邏輯回歸和神經網絡相比,支持向量機,或者簡稱SVM,在學習復雜的非線性方程時提供了一種更為清晰,更加強大的方式。因此,在接下來的視頻中,我會探討這一算法。在稍后的課程中,我也會對監督學習算法進行簡要的總結。當然,僅僅是作簡要描述。但對於支持向量機,鑒於該算法的強大和受歡迎度,在本課中,我會花許多時間來講解它。它也是我們所介紹的最后一個監督學習算法。
正如我們之前開發的學習算法,我們從優化目標開始。那么,我們開始學習這個算法。為了描述支持向量機,事實上,我將會從邏輯回歸開始展示我們如何一點一點修改來得到本質上的支持向量機。



如果你進一步觀察邏輯回歸的代價函數,你會發現每個樣本(x,y) 都會為總代價函數,增加這里的一項,因此,對於總代價函數通常會有對所有的訓練樣本求和,並且這里還有一個1/m項,但是,在邏輯回歸中,這里的這一項就是表示一個訓練樣本所對應的表達式。現在,如果我將完整定義的假設函數代入這里。那么,我們就會得到每一個訓練樣本都影響這一項。
現在,先忽略 1/m這一項,但是這一項是影響整個總代價函數中的這一項的。
現在,一起來考慮兩種情況:
一種是y等於1的情況;另一種是 y等於0的情況。
在第一種情況中,假設 y=1,此時在目標函數中只需有第一項起作用,因為 y=1時,(1-y) 項將等於0。因此,當在(x,y) 的樣本中時,即在(x,y) 中 ,我們得到
這樣一項,這里同上一張幻燈片一致。





然后,再加上正則化參數。現在,按照支持向量機的慣例,事實上,我們的書寫會稍微有些不同,代價函數的參數表示也會稍微有些不同。
首先,我們要除去1/m這一項,當然,這僅僅是由於人們使用支持向量機時,對比於邏輯回歸而言,不同的習慣所致,但這里我所說的意思是:你知道,我將要做的是僅僅除去 這一項,但是,這也會得出同樣的 theta最優值,好的,因為1/m 僅是個常量,因此,你知道在這個最小化問題中,無論前面是否有 1/m 這一項,最終我所得到的最優值theta都是一樣的。這里我的意思是,先給你舉一個實例,假定有一最小化問題:即要求
取得最小值時的μ值,這時最小值為:當μ=5 時取得最小值。
現在,如果我們想要將這個目標函數乘上常數10,這里我的最小化問題就變成了:求使得
最小的值μ ,然而,使得這里最小的 μ值仍為5。因此將一些常數乘以你的最小化項,這並不會改變最小化該方程時得到μ值。因此,這里我所做的是刪去常量 。也相同的,我將目標函數乘上一個常量m,並不會改變取得最小值時的θ值。

大邊界的直觀理解
人們有時將支持向量機看作是大間距分類器。在這一部分,我將介紹其中的含義,這有助於我們直觀理解SVM模型的假設是什么樣的。





具體而言,如果你考察這樣一個數據集,其中有正樣本,也有負樣本,可以看到這個數據集是線性可分的。我的意思是,存在一條直線把正負樣本分開。當然有多條不同的直線,可以把正樣本和負樣本完全分開。

比如,這就是一個決策邊界可以把正樣本和負樣本分開。但是多多少少這個看起來並不是非常自然是么?
或者我們可以畫一條更差的決策界,這是另一條決策邊界,可以將正樣本和負樣本分開,但僅僅是勉強分開,這些決策邊界看起來都不是特別好的選擇,支持向量機將會選擇這個黑色的決策邊界,相較於之前我用粉色或者綠色畫的決策界。這條黑色的看起來好得多,黑線看起來是更穩健的決策界。在分離正樣本和負樣本上它顯得的更好。數學上來講,這是什么意思呢?這條黑線有更大的距離,這個距離叫做間距(margin)。

畫出這兩條額外的藍線,我們看到黑色的決策界和訓練樣本之間有更大的最短距離。然而粉線和藍線離訓練樣本就非常近,在分離樣本的時候就會比黑線表現差。因此,這個距離叫做支持向量機的間距,而這是支持向量機具有魯棒性的原因,因為它努力用一個最大間距來分離樣本。因此支持向量機有時被稱為大間距分類器,而這其實是求解上一頁幻燈片上優化問題的結果。
我知道你也許想知道求解上一頁幻燈片中的優化問題為什么會產生這個結果?它是如何產生這個大間距分類器的呢?我知道我還沒有解釋這一點。
我將會從直觀上略述為什么這個優化問題會產生大間距分類器。總之這個圖示有助於你理解支持向量機模型的做法,即努力將正樣本和負樣本用最大的間距分開。
在本節課中關於大間距分類器,我想講最后一點:我們將這個大間距分類器中的正則化因子常數 設置的非常大,我記得我將其設置為了100000,因此對這樣的一個數據集,也許我們將選擇這樣的決策界,從而最大間距地分離開正樣本和負樣本。那么在讓代價函數最小化的過程中,我們希望找出在 和 兩種情況下都使得代價函數中左邊的這一項盡量為零的參數。如果我們找到了這樣的參數,則我們的最小化問題便轉變成:

事實上,支持向量機現在要比這個大間距分類器所體現得更成熟,尤其是當你使用大間距分類器的時候,你的學習算法會受異常點(outlier) 的影響。比如我們加入一個額外的正樣本。

我們稍后會介紹支持向量機的偏差和方差,希望在那時候關於如何處理參數的這種平衡會變得更加清晰。我希望,這節課給出了一些關於為什么支持向量機被看做大間距分類器的直觀理解。它用最大間距將樣本區分開,盡管從技術上講,這只有當參數C是非常大的時候是真的,但是它對於理解支持向量機是有益的。
大邊界分類背后的數學(重點)
在本節課中,我將介紹一些大間隔分類背后的數學原理。本節為選學部分,你完全可以跳過它,但是聽聽這節課可能讓你對支持向量機中的優化問題,以及如何得到大間距分類器,產生更好的直觀理解















小結一下
為什么得到一個大間距分類器的。

[]有錯誤
參考
https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes
