【SVM 理論篇】支援向量機完整原理解說:從概念到數學邏輯
在機器學習中,SVM(Support Vector Machine,支援向量機) 是一個經典又強大的分類模型。
它不僅能精準分辨不同類別,還擅長在高維資料中找到「最佳邊界」。
這篇文章將帶你了解 SVM 的概念、數學原理與模型直覺。
一、SVM 是什麼?
SVM 是一種監督式學習(Supervised Learning) 演算法,常見用途有:
- 二元分類(如垃圾郵件 vs. 正常郵件)
- 多類別分類(如花種辨識)
- 回歸預測(如房價預測)
核心思想很簡單:
SVM 嘗試在資料中找到一條「最能分開不同類別」的線或平面,
並讓這條分界線距離最近的資料點盡量遠。
二、決策邊界與支援向量
假設我們有兩類資料(紅點與藍點),可以畫出許多條線來分開它們。
那 SVM 的目標是什麼?
找到那條「邊界最大」的線(或超平面)。
這樣做的原因是:邊界越大,模型對新資料的分類越有信心、越不容易過擬合。
距離分界線最近的那些資料點,就叫做:
支援向量(Support Vectors)
它們決定了整條線的位置與方向。
三、數學直觀理解
我們想找到一個平面:
w · x + b = 0
這是分類邊界,w 是法向量、b 是偏移量。
分類規則如下:
- 當 (w · x + b) > 0 → 類別 +1
- 當 (w · x + b) < 0 → 類別 -1
為了讓分類最「穩定」,我們希望:
- 所有資料點都被正確分開;
- 且距離邊界最近的點(支援向量)距離最大化。
因此我們的目標是:
最大化邊界(Margin)
實際上可轉換為「最小化 ½‖w‖²」這樣的優化問題。
也就是說,我們在找一個最平滑、最不偏的邊界。
四、Soft Margin 與 C 參數
現實資料往往不是完美可分,因此 SVM 允許少量錯誤分類。
這時我們引入「懲罰係數」 C:
- C 大:希望分類完全正確 → 容易過擬合。
- C 小:容許錯誤 → 模型更平滑。
C 就像「容忍度」的控制鈕,影響模型的彈性。
五、非線性資料與 Kernel Trick
有些資料根本畫不出一條直線能分開(像是圓形分布)。
SVM 用了一個漂亮的數學技巧:
核技巧(Kernel Trick):
把資料映射到更高維的空間,在那裡可能就能被直線分開!
常見的核函數有:
| 核函數 | 特徵 | 適用情境 |
|---|---|---|
| 線性核 Linear | 簡單快速 | 資料可線性分割 |
| 多項式核 Polynomial | 可擬合曲線關係 | 非線性但規則性強 |
| RBF(高斯)核 | 泛用性高 | 常用於複雜資料 |
| Sigmoid 核 | 類似神經網路 | 特殊應用 |
RBF 核是實務上最常用的選擇。
六、SVM 的優缺點整理
| 優點 | 缺點 |
|---|---|
| 能有效處理高維特徵 | 訓練時間長 |
| 避免過擬合(透過 Margin) | 對 C、γ 敏感 |
| 適合小樣本 | 難以解釋決策過程 |
| 支援多種核函數 | 不適合含太多雜訊的資料 |
七、應用領域
SVM 曾是許多經典應用的核心演算法:
- 郵件分類
- 醫學影像判斷
- 基因資料分析
- 圖像與人臉辨識
- 金融市場預測
八、總結
SVM 的精華在於:
- 「找到最大邊界」的數學邏輯;
- 能用核技巧轉換空間;
- 理論基礎強、泛用性高。
雖然深度學習崛起後,SVM 使用率下降,但它依然是許多領域的「穩定經典」。
