1. 程式人生 > >SVM支援向量機(吳恩達課程筆記)

SVM支援向量機(吳恩達課程筆記)

支援向量機(support vector machine) 大概是機器學習中最熱門的演算法之一,但同時也是最難懂的演算法之一。最近看了吳恩達的課程,雖講的比較淺顯,但對於初學者來說不失為一個入門的好路徑。

1. Optimization objective 目標函式

先來回顧一下邏輯迴歸,這是其計算分類概率的函式:
在這裡插入圖片描述

這是邏輯迴歸的cost function:
在這裡插入圖片描述

y=1y=2兩種情況來表示zcost function之間的關係(黑色的細線):
在這裡插入圖片描述

在這裡插入圖片描述

如果將上圖中邏輯迴歸的代價函式替換為藍色的線,就得到了SVM。

這是邏輯迴歸的目標函式:
在這裡插入圖片描述

這是SVM的目標函式:
在這裡插入圖片描述

可以看到SVM中沒有1/m,並且把λ替換為了C,這裡C=1/λ

2. Large margin 大間隔

從SVM的代價函式可以看出,當y=1時,我們希望z>=1,而不僅僅是大於0;同樣的,當y=0,我們希望z<=-1,而不僅僅小於0:
在這裡插入圖片描述

當C非常大的時候,我們可以將SVM代價函式改寫為帶約束的極值問題:
在這裡插入圖片描述

對於一個線性可分的問題,比較大的C會得到一個大間隔的decision bundary(黃色的那條決策邊界):
在這裡插入圖片描述

當存在一個離群的異常點時,較大的C不能容忍分類錯誤的情況,所以會產生黃色的決策邊界。當C不那麼大時,就可以得到更加合理的藍色分界線:
在這裡插入圖片描述

回顧一下向量內積的定義,vu的內積等於vu上的投影長度p乘以||u||
在這裡插入圖片描述

依據上述定義,將SVM的優化函式改寫為如下形式。要最小化的目標函式是||θ||,P(i)

為x(i)在θ上的投影。
在這裡插入圖片描述

我們希望p(i)*||θ||儘可能大,又希望||θ||儘可能小,所以就需要p(i)儘可能大。那麼什麼樣的決策邊界會得到較大的p(i)呢?

如果決策邊界是下圖綠色的那條線(margin比較小),θ就是與它垂直的那條線。這個時候投影p(i)比較小
在這裡插入圖片描述

如果決策邊界是下圖豎直的那條綠線(margin比較大),這時θ就是水平的線。此時的投影p(i)比較大,滿足我們的之前的要求。
在這裡插入圖片描述

3. Kernals 核函式

核函式可以看做特徵工程的一部分。對於一些線性不可分的樣本,通過核函式將它們的特徵對映到更高/複雜的維度,從而實現在高維新特徵下線性可分的目的。比如下圖的多項式核函式:
在這裡插入圖片描述

最常用的kernel是高斯核函式。首先選幾個landmarks,然後計算樣本點離這些landmarks的距離(相似性)作為新特徵:
在這裡插入圖片描述

由下圖的公式可以看出,當x與landmark很近,高斯相似度接近於1;當x於landmark很遠,高斯相似度接近於0:
在這裡插入圖片描述

SVM中關於引數C和高斯核的引數σ^2的偏差方差分析:
在這裡插入圖片描述

SVM的應用建議,關於kernel和引數的選擇:
在這裡插入圖片描述

邏輯迴歸 VS SVM
在這裡插入圖片描述