1. 程式人生 > >《機器學習》讀書筆記6

《機器學習》讀書筆記6

第六章 支援向量機

6.1 間隔與支援向量

在樣本空間中,可通過劃分超平面來進行分類學習。劃分超平面可通過如下線性方程來描述:


其中w=(w1;w2;...;wd)為法向量,決定了超平面的方向,b為位移項,決定了超平面與原點之間的距離。


距離超平面最近的幾個樣本點被稱為“支援向量”(support vector),兩個異類支援向量到超平面的距離之和被稱為“間隔”(margin)r:

找到具有最大間隔的超平面就是使下式成立:


這就是支援向量機(SVM)的基本型

支援向量機的一個重要性質:訓練完成後,大部分的訓練樣本都不需要保留,最終模型僅與支援向量有關。

6.2 對偶問題

為求解SVM基本型,使用拉格朗日乘子法可得到其“對偶問題”(dual problem),即對SVM基本型的每條約束新增拉格朗日乘子ai>=0,則該問題的拉格朗日函式可寫成:


其中a=(a1;a2;...am),令L(w,b,a)對w和b的偏導為零可得


將上兩式代入朗格朗日函式L(w,b,a),則可得到SVM基本型的對偶問題:

 


其中ai為拉格朗日乘子。

為求解此對偶問題,常用的高效演算法是SMO(Sequential Minimal Optimization)。SMO的基本思路是先固定ai之外的所有引數,然後求ai上的極值。由於存在約束,若固定ai之外的其他變數,則ai可由其他變數匯出,於是,SMO每次選擇兩個變數ai和aj,並固定其他引數,這樣,在引數初始化後,SMO不斷執行如下兩個步驟直至收斂:

  • 選取一對需要更新的變數ai和aj;
  • 固定ai和aj以外的引數,求解對偶問題獲得更新後的ai和aj。

最後,偏移項b的求解可通過所有支援向量的如下平均值:


其中,S是所有支援向量的下標集合。

6.3 核函式

由於原始樣本空間可能並不存在一個能正確劃分兩類樣本的超平面,可以將樣本從原始空間對映到一個更高維的特徵空間,使得樣本在這個特徵空間內線性可分。通常,如果原始空間是有限維,即屬性數有限,那麼一定存在一個高維特徵空間使樣本可分。

表示將x對映後的特徵向量,在特徵空間中劃分超平面所對應的模型可表示為:


類似SVM基本型,有


其對偶問題:


在上面對偶問題中,為求取,定義如下核函式(kernel function):


即xi與xj在特徵空間的內積等於它們在原始空間中通過函式k(.,.)計算的結果。將核函式代入對偶問題,求解可得超平面所對應的模型:

核函式定理:令X為輸入空間,k(.,.)是定義在X*X上的對稱函式,則k是核函式當且僅當對於任意資料D={x1,x2,…,xm},“核矩陣”(kernel matrix)K總是半正定的:


核函式定理表明,只要一個對稱函式所對應的核矩陣半正定,它就能作為核函式使用。事實上,對於一個半正定的核矩陣,總能找到一個與之對應的對映即任何一個核函式都隱含地定義了一個稱為“再生核希爾伯特空間”(Reproducing Kernel Hilbert Space,RKHS)的特徵空間。

核函式的選擇成為支援向量機的最大變數,若核函式選擇不佳,則意味著將樣本對映到一個不合適的特徵空間,很可能導致效能不佳。幾種常用的核函式有:


而且,還可以通過函式組合得到核函式,例如若k1和k2為核函式,則:

  • 對於任意正數r1和r2,其線性組合也是核函式
  • 核函式直積也是核函式
  • 對任意函式g(x),也是核函式

6.4 軟間隔與正則化

在現實任務中很難確定合適的核函式使得訓練樣本在特徵空間中線性可分,而且有時即使找到這樣一個核函式,也不能斷定是不是過擬合。為此,要引入“軟間隔”(soft margin)概念,即允許支援向量機在一些樣本上出錯,即軟間隔允許某些樣本不滿足約束:

於是,SVM基本型的優化目標可寫成:


其中,C>0是一個常數,是“0/1損失函式”


當C取有限值時,優化目標式允許一些樣本不滿足約束。

由於的數學性質不好,為方便求解,通常用一些函式來替代,稱為“替代損失”(surrogate loss)函式,常用的替代損失函式有:


用不同的替代損失函式得到不同的學習模型,這些學習模型具有一個共性:優化目標中的第一項用來描述劃分超平面的“間隔”大小,另一項用來表述訓練集上的誤差,即:


其中稱為“結構風險”(structural risk),用於描述模型f的某些性質,第二項稱為“經驗風險”(empirical risk),用於描述模型與訓練資料的契合程度,引數C用於對二者進行折中。上式也被稱為“正則化”(regularization)問題,稱為正則化項,C為正則化常數。範數(norm)是常用的正則化項,其中L2範數傾向於w的分量取值儘量均衡,即非零分量個數儘量稠密,而L0範數和L1範數則傾向於w的分量儘量稀疏,即非零分量個數儘量少。

6.5 支援向量迴歸

前面談的是分類問題,對於支援向量迴歸問題(SVR),即給定訓練樣本,學習到一個形如的迴歸模型,使f(x)與y儘可能接近。SVR假設我們能容忍f(x)與y之間最多有的偏差,即僅當f(x)與y之間的差別絕對值大於時才計算損失,於是,SVR問題可形式化為:

其中,不敏感損失函式


引入鬆弛變數,則SVR問題可重寫為:

類似6.4節替代損失函式的求解過程,得到SVR的解為:

其中為核函式,為拉格朗日乘子。

使的樣本即為SVR的支援向量,必須落在間隔帶之外,SVR的支援向量僅是訓練樣本的一部分,即其解仍具有稀疏性。

6.6 核方法

表示定理:令為核函式k對應的再生希爾伯特空間,表示空間中關於h的範數,對於任意單調遞增函式和任意非負損失函式,優化問題

的解總可寫成,即核函式的線性組合。

人們發展出一系列基於核函式的學習方法,統稱為“核方法”(kernel method)。常見的是通過“核化”(即引入核函式)來將線性學習器拓展為非線性學習器,從而得到“核線性判別分析”(Kernel Linear Discriminant Analysis, KLDA)。具體KLDA方法參見書上說明。

6.7 閱讀材料

支援向量機在文字分類任務中常用,支援向量機是針對二分類任務設計的,對多分類任務要進行專門的推廣。核函式直接決定了支援向量機與核方法的最終效能,但核函式的選擇是一個未決問題,多核學習使用多個核函式並通過學習獲得其最優凸組合作為最終的核函式,這實際上式在藉助整合學習機制。