文章目錄
Soft-Margin Support Vector Machine
上節課介紹了Kernel SVM。是爲了消除Dual SVM計算過程中 空間中特徵維度 的影響,從而降低算法複雜度,提高求解速度。其方法是將特徵空間轉換和計算內積兩個步驟合併爲一步完成,再用二次規劃求解。通過引入不同的核函數,構造不同的Kernel SVM。上節課中提到,Kernel的選擇會影響SVM的分類效果。Kernel SVM可以解決線性分類,也可以解決無限多維度的分類。之前學習的三種支持向量機都是硬邊界(Hard-Margin)的支持向量機,要求分隔超平面一定要將樣本點嚴格地可分。這需要複雜的特徵轉換,並且可能造成過擬合。本節課程介紹Soft-Margin Support Vector Machine,來放寬對分隔超平面的限制。
4.1 Motivation and Primal Problem
上節課最後講解的 Gaussian Kernel SVM好像過於複雜,容易導致過擬合。其中一個原因是轉換過程太powerful了,即使有large margin的限制,模型仍然很複雜。另一個原因就是 Hard-Margin,即堅持把訓練樣本完美分開,導致模型很複雜。下面看一個簡單的例子:
左圖的分隔超平面是一次多項式,右圖的分隔超平面是四次多項式。雖然左圖中的超平面有兩個樣本點分類錯誤,但是大部分都分類正確;右圖中所有樣本點都分類正確(Hard-Margin),但是超平面過於複雜,容易導致過擬合。
那麼應該如何降低過擬合風險呢?將一些分類錯誤的樣本點作爲噪聲。回顧之前的pocket算法,當沒辦法找到可以將所有樣本點分開的超平面(二維空間中爲一條直線)時,選擇一條錯誤率最少的線,即目標函數是最小化所有分類錯誤樣本點的個數。同理,在Hard-Margin SVM中,將原條件放鬆,可以容忍一些分類錯誤的樣本點,目標函數是最小化 。
將兩種算法的思想結合:
先看條件,第一個條件表示樣本點要分類正確;第二個條件表示允許有分類錯誤的樣本點存在(分類錯誤時, 與 異號),但是隻有第二個條件還不行,因爲如果都分類錯誤也是滿足的。所以需要改變Hard-Margin SVM的目標函數,即添加pocket算法中的最小化分類錯誤樣本點的個數。這樣,就保證了既允許分類錯誤的樣本點存在,也控制了分類錯誤樣本點的個數。添加參數C是爲了權衡目標函數中第一項和第二項的關係,即權衡large margin和noise tolerance的關係。
將兩個條件合併,記爲:
這就是 Soft-Margin的雛形,但是存在兩個問題,第一個就是目標函數中第二項是非線性的(不能寫成多項式的形式),不滿足二次規劃(QP)的條件,所以不能使用Dual SVM或Kernel SVM的求解方法求解。第二個問題是沒有辦法區分誤差的大小。爲了解決這兩個問題,對原表達式進行修正。
其思想是將原來用個數表達誤差變爲衡量誤差的大小,對所有分類錯誤的樣本點與真實樣本點的差距求和,變爲目標函數中要懲罰的錯誤項,就將非線性問題轉化爲了線性問題。通過引入一個新的參數,該參數是一次項,滿足二次規劃的條件,可以使用之前的方法求解。那麼,最終的 Soft-Margin的表達式爲:
其中 樣本點犯錯誤的程度, 表示沒有誤差, 越大,標識錯誤越大,即與邊界(margin)的距離越大。參數 表示選擇大的邊界與分類錯誤樣點的誤差之間的權衡。大的 表示更注重分類錯誤樣本點的誤差,即儘可能的減少分類錯誤樣本點的誤差;小的 表示更注重邊界,即儘可能大的邊界。
現在,用二次規劃求解時,包含 個變量, 個限制條件。
習題1:
4.2 Dual Problem
接下來推導Soft-Margin的對偶問題,如此就可以像之前的Dual SVM 一樣,很容易做特徵轉換,易於求解,並方便引入 Kernel ,進一步簡化 SVM 的計算,降低算法複雜度,提高泛化能力。先寫出上一小節推導出的Soft-Margin目標函數:
首先,構造拉格朗日函數。因爲包含兩個限制條件,所以需要引入兩個拉格朗日乘子 和 ,構造的拉格朗日函數 爲:
其次,構造拉格朗日對偶:
然後,進一步簡化。思路是:括號內的表達式是藉助構造的拉格朗日函數求解最優化問題,需要先求解出各變量之間存在的等式關係。即令對求解變量的偏導數等於零,然後求出一個包含變量之間關係的等式,最後將條件代入原目標函數,達到消除變量更易求解的目的。本問題中,具體求解過程如下:
最後,Soft-Margin SVM的對偶問題轉化爲:
此時括號內,與之前所學的 Hard-Margin SVM的表達式類似,只是限制條件不同,本質上還是拉格朗日函數求解最優化問題。要求解的變量爲 ,分別對其求偏導,求得:
與之前的求解方法類似,使用KKT條件求解得到Soft-Margin SVM的對偶形式爲:
Soft-Margin 與 Hard-Margin 的 Dual SVM 的目標函數基本相同,只是限制條件不同。Hard-Margin Dual SVM有一個拉格朗日乘子,爲 ;Soft-Margin Dual SVM有兩個拉格朗日乘子,第一個限制條件的爲 ,第二限制條件的爲 。使用二次規劃求解時,兩類SVM要求解的變量 皆爲N個。不同的是,Soft-Margin的限制條件變爲了 個,因爲 多了上限 ,所以需要多求解 個變量,即多了 個限制條件;Hard-Margin Dual SVM的限制條件爲 個,因爲 的上限沒有限制。
習題2:
4.3 Messages behind Soft-Margin SVM
Kernel Soft-Margin SVM
接下來求解 Soft-Margin Dual SVM,求解方法依然是二次規劃。其求解過程的僞代碼如下:
可以看到,與 Hard-Margin Dual SVM 幾乎一樣,只是 多了上限 。這樣就會更加靈活,通過控制的值,來權衡更注重分類邊界還是更注重減少錯誤分類樣本的誤差。Hard-Margin要求超平面一定嚴格可分,但是Soft-Margin沒有這個限制,可以容忍分類錯誤的樣本點。Soft-Margin的SVM是實際應用中最常用的方法。現在關鍵的問題是如何求解參數 ,之前求解 的方法是利用 KKT條件求解,然後帶入一個支持向量求解得到 。現在對 Soft-Margin Dual SVM來說是一個新的QP問題,它的KKT條件已經變了,那麼還可以用之前的方法求解嗎?下面來探討這個問題:
上圖中是兩類SVM求解參數 的方法,使用KKT條件中的鬆弛條件,即要求等式中的兩部分有一部分爲零,找到一個滿足 的支持向量,然後可以求出 的表達式,求解出表達式中的參量時,可以進一步求解得到 。
在Soft-Margin SVM中,由於第一個限制條件中有參數 ,將滿足條件 的支持向量代入求解 的表達式,還不能完全求出。因此考慮用第二個限制條件 將 消去。如果 ,則一定有 帶入第一個限制條件可求得 ,將滿足條件 的支持向量稱爲 free SV。引入核函數後, 的表達式爲:
以上表達式是由 推導出來的,即假設一定存在free SV,那麼這個假設一定滿足嗎?一般情況下滿足的,只有極少數情況下不滿足,如果不滿足一般 會由許多約束條件,但是值是不確定的,由許多個解,從其中找到一個滿足KKT條件的即可。
Soft-Margin Gaussian SVM in Action
下面看 的上界不同取值對 Soft-Margin Gaussian SVM 的分隔超平面的影響。分別取 時的跟個超平面的情況如下:
可以看出,較大的 對錯誤的容忍度較低,即執着於將所有樣本點分隔開,把可能是噪聲的樣本也分隔開,容易導致過擬合。較小的 對錯誤的容忍度較大,雖然不能把所有樣本點都分隔開,將一些離羣的樣本點當做噪聲處理,這更符合實際情況。這也說明了調整參數 和 的重要性。
接下來看看 的物理意義。Soft-Margin SVM的KKT條件中的鬆弛條件爲:
根據拉格朗日乘子 的取值範圍,可以將樣本點分爲三類,如圖所示:
- non SV: 圖中綠色圓圈圈出的點,表示遠離邊界的樣本點;
- free SV:圖中橙色圓圈圈出的點,表示在邊界上的樣本點;
- bounded SV:圖中藍色圓圈圈出的點,便是在邊界內部的點,即存在誤差的點。
可以根據 來分析Soft-Margin SVM中樣本的分佈。常用的SVM就是指軟邊界的SVM。
習題3:
4.4 Model Selection
通過以上的學習,我們知道參數的選擇很重要,包括 的選擇,Kernel的選擇等。在 Gaussian SVM中,不同的參數對應不同的分隔超平面, 先看 Gaussian SVM 選擇不同的 和 的情況:
橫座標代表參數 ,縱座標代表參數 。那麼應該如何選擇參數 呢?接下來研究這個問題。
在機器學習基石課程中學習過交叉驗證(Cross Validation)的方法,即將不同參數配置的模型在數據集上通過交叉驗證的方法選擇出最佳的參數配置,其目標函數爲 ,選擇 最小時的參數配置即爲最佳配置。上例中,不同的參數組合對應的 爲:
一般來說, 並非 的連續函數,很難使用最優化方法求解,通常做法是離散地選取不同的參數組合,然後使用 V-折交叉驗證(V-Fold Cross Validation)方法,計算 ,從中選擇最小的 所對應的參數 即爲最佳配置。V-折交叉驗證是SVM算法中常用的方法。
V-折交叉驗證的特殊情況是 1-折交叉驗證,又稱爲留一法交叉驗證(Leave-One-Out CV),即每次選出一個樣本作爲驗證集。其計算過程如下:
其中, 表示支持向量佔所有樣本的比例。假設有N個樣本,第N個樣本點 的 ,通過前一節可知,滿足該條件的樣本點不是支持向量(non SV),並且是遠離margin的。使用剩下的的 N-1個點分類,則第N個樣本點一定是分類正確點,所以分類邊界與使用N個樣本點進行分類得到的邊界是一樣的。這是因爲non SV不影響SVM求出的分隔超平面,所以也不會影響margin。
對於non-SV的樣本,它的矩 ,即對於第N個樣本點,它的誤差 。對於 SV 的樣本,它們的誤差要麼是0,要麼是1,所以一定有 成立。
支持向量(SV)的選擇對於SVM至關重要。SV越多,表示模型越複雜,也有可能導致過擬合。通常選擇SV較少的模型,然後通過交叉驗證最小化誤差 選擇誤差最小的模型。
習題4:
Summary
四種SVM至此介紹完畢。本節課介紹了Soft-Margin SVM,我們常說的SVM就是這種。與Hard-Margin堅持樣本一定可分不同,Soft-Margin SVM將離羣的樣本點當做噪聲處理,允許一部分分類錯誤的樣本點存在,降低了模型的複雜度,減少了過擬合風險。爲了實現對分類錯誤樣本點的容忍度,借鑑pocket算法的思想,引入了分類錯誤誤差 ,並添加係數 ,表示目標函數中跟注重邊界寬度還是更注重最小化分類錯誤樣本的誤差的權衡。引入兩個拉格朗日乘子,構造了拉格朗日函數,求解出Soft-Margin Dual SVM。與Hard-Margin SVM不同的是, 有了上界 限制。 根據取值的不同,可以將輸入樣本分爲三類:non SV,free SV,bounded SV。根據 可以輔助分析數據。最後介紹了 Soft-Margin SVM中參數的選擇問題,通常使用交叉驗證的方法選擇。