1. 程式人生 > >【原】Coursera—Andrew Ng機器學習—課程筆記 Lecture 12—Support Vector Machines 支援向量機

【原】Coursera—Andrew Ng機器學習—課程筆記 Lecture 12—Support Vector Machines 支援向量機

Lecture 12 支援向量機 Support Vector Machines

12.1 優化目標 Optimization Objective

支援向量機(Support Vector Machine) 是一個更加強大的演算法,廣泛應用於工業界和學術界。與邏輯迴歸和神經網路相比, SVM在學習複雜的非線性方程時提供了一種更為清晰,更加強大的方式。我們通過回顧邏輯迴歸,一步步將其修改為SVM。

首先回顧一下邏輯迴歸:

其 cost function 公式如下(這裡稍微有點變化,將負號移到了括號內):

現在只考慮一個訓練資料 x ,把 hθ(x)=1/(1+e-θTx) 帶入公式,得到下面的式子:

 

下一步, 使用 z 標示其中的 θTx, 則之前的目標變為:

If y = 1, we want hθ(x) ≈ 1, z>>0;
If y = 0, we want hθ(x) ≈ 0, z<<0; 

 

當 y = 1 或 y = 0 時, 上面邏輯迴歸的 cost function 分別只剩下一項, 對應下面兩張圖中的灰色曲線:

      當 y=1 時,隨著 z 增大,h(x)=1/(1+e-z)逼近1,cost逐漸減小。     當 y=0 時,隨著 z 減小,h(x)=1/(1+e-z

)逼近0,cost逐漸減小。

現在我們用新的 cost function 來代替邏輯迴歸中的cost function,即上圖中玫瑰色的曲線,它分為直線和斜線兩部分。左邊的函式稱為cost1(z),右邊函式稱為 cost0(z)。

在之後的優化問題中,這種形式的 cost function 會為 SVM 帶來計算上的優勢。

現在開始構建SVM

邏輯迴歸的 cost function 分為A、B 兩個部分。 我們做下面的操作:

1) 使用之前定義的 cost1() 和 cost0() 替換公式中對應的項。
(2) 根據 SVM 的習慣,除去 1/m 這個係數
因為1/m 僅是個常量,去掉它也會得出同樣的 θ 最優值。
(
3)同樣根據 SVM 的習慣,做一點變動 對於邏輯迴歸, cost function 為 A + λ × B ,通過設定不同的 λ 達到優化目的。 對於SVM, 我們刪掉 λ,引入常數 C, 將 cost function 改為 C × A + B, 通過設定不同的 C 達到優化目的。 (在優化過程中,其意義和邏輯迴歸是一樣的。可以理解為 C = 1 / λ)

最終得到了 SVM 的代價函式:

邏輯迴歸中假設是輸出一個概率值。  而 SVM 直接預測 y = 1,還是y = 0。

當θTx ≥ 0 時,SVM 會預測結果為1,其他情況下,預測結果為0。

 

12.2 最大邊界的直觀理解 Large Margin Intuition