機器學習_學習筆記系列(19):軟性邊界對偶支撐向量機(Soft-Margin Dual Support Vector Machine)

--

上一篇我們講到Soft-Margin SVM,其允許一些點分類錯誤,來降低模型複雜度,並提高泛化能力,但是在Soft-Margin中,我們一樣會碰到特徵轉換後,維度過高難以用QP求解的情況。但是對於此,我們一樣可以把Primal轉為Dual來做運算。

Soft-Margin Dual Support Vector Machine

在一開此我們回顧一下Soft-Margin Primal SVM的最佳化問題

所以這裡比照Hard-Margin中Primal轉Dual的方法

對於Soft-Margin我們也先寫下我們的Lagrange Function

這裡一樣比照Hard-Margin,寫出我們的最佳化問題

同樣的,我們知道

其中左邊的為Primal最佳化問題,右邊的為Dual最佳化問題。所以如果要讓大於等於的關係變成等於,必須符合KKT condition,接下來一樣也是超複雜的推倒。原本的最佳化問題為

首先針對zeta

所以說,因為β≥0,可以推出C≥α≥0。之後帶入上面的關係式,我們可以改寫成

我們到這裡可以發現,其就和我們Hard-Margin的最佳化問題

非常接近了。所以對w和b的微分,我們可以比照Hard-Margin那篇,求出我們最後的最佳化方程式

也就是說

所以我們可以看到他和Hard-Margin不一樣的地方就在,其對α多加上了一個限制C。而在意義上,我們知道在Hard-Margin中α>0的話就是我們的support vector(SV),α等於0的話代表不是SV。

所以在Soft-Margin中多加一個C,代表在Primal中滿足

而我們也知道在Hard-Margin中,代表在Primal中滿足

這裡我們可以用一點小邏輯推出,其意思就是今天我們知道α=0為margin以外的數據點,所以對於margin以內的數據點(α≠0),如果zeta為0,代表其滿足

所以也就是說如果數據點的zeta=0且α≠0,代表說他剛好落在margin line上,也就是我們的Bounded SV。

另一方面,如果zeta≠0且α≠0,代表C一定要等於α,而且其使得

他剛好落在margin line內部,也就是我們的Free SV。

這裡總結一下

QP with Kernel Trick

接下來就是進入二次規劃的求解

這裡設有N筆資料,然後一樣對特徵進行Kernel Trick。而我們現在變成有N個變數,2N+1個限制,所以

一樣套入二次規劃中

就可以計算出我們的分割線

其中

接下來我們實際用Python把他視覺化(黑色底:Bounded SV / 紫色底:Free SV)

Polynomial Kernel (次方:10 / Gamma:1 / Zeta=1)

Gaussian Kernel (Gamma:1)

我們可以發現,當C越大,他的分類線會越來越複雜,趨近於Hard-Margin。

Python Sample Code:

Github:

Reference:

[1] Coursera, 機器學習技法, 林軒田 教授

--

--

劉智皓 (Chih-Hao Liu)
劉智皓 (Chih-Hao Liu)

Written by 劉智皓 (Chih-Hao Liu)

豬屎屋AI RD,熱愛AI研究、LLM/SD模型、RAG應用、CUDA/HIP加速運算、訓練推論加速,同時也是5G技術愛好者,研讀過3GPP/ETSI/O-RAN Spec和O-RAN/ONAP/OAI開源軟體。

No responses yet