|

【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 使用率下降,但它依然是許多領域的「穩定經典」。

Similar Posts