作者:Walker
SVM是機器學習有監督學習的一種方法,常用于解決分類問題,其基本原理是:在特征空間裡尋找一個超平面,以最小的錯分率把正負樣本分開。因為SVM既能達到工業界的要求,機器學習研究者又能知道其背後的原理,是以SVM有着舉足輕重的地位。
但是我們之前接觸過的SVM都是單核的,即它是基于單個特征空間的。在實際應用中往往需要根據我們的經驗來選擇不同的核函數(如:高斯核函數、多項式核函數等)、指定不同的參數,這樣不僅不友善而且當資料集的特征是異構時,效果也沒有那麼好。正是基于SVM單核學習存在的上述問題,同時利用多個核函數進行映射的多核學習模型(MKL)應用而生。
多核模型比單個核函數具有更高的靈活性。在多核映射的背景下,高維空間成為由多個特征空間組合而成的組合空間。由于組合空間充分發揮了各個基本核的不同特征映射能力,能夠将異構資料的不同特征分量分别通過相應的核函數得到解決。目前主流的多核學習方法主要包括合成核方法、多尺度核方法和無限核方法。其具體流程如圖1所示:

圖1 多核學習流程圖
接下來我們以二分類問題為例,為大家簡單介紹多核學習方法。令訓練資料集為X={(x1,y1),(x2,y2),(x3,y3)…(xn,yn)},其中Xi是輸入特征,且Xi∈Rd,i= 1,2, …, N,Yi∈{+1, −1}是類标簽。SVM 算法目标在于最大化間隔,其模型的原始問題可以表示為:
其中,w是待求的權重向量,ζi與C分别是松弛變量和懲罰系數。根據拉格朗日對偶性以及 KKT 條件,引入核函數K( Xi , Xj): Rn×Rn → R,原始問題也可以轉換成如下最優化的形式:
其中,ai與aj為拉格朗日乘子,核函數K( Xi, Xj)=φ(xi) xφ(xj)。核方法的思想就是,在學習與預測中不顯示地定義映射函數φ(xi) ,隻定義核函數K( Xi, Xj),直接在原低維空間中計算高維空間中的向量内積,既實作低維樣本空間到高維特征空間的映射,又不增加計算複雜量。
多核學習方法是單核 SVM 的拓展,其目标是确定 M 個個核函數的最優組合,使得間距最大,可以用如下優化問題表示:
其中∆= {θ∈ ℝ+|θTeM=1},表示 M 個核函數的凸組合的系數,eM是一個向量,M個元素全是 1,K(θ)=∑Mj=1θjkj(∙,∙)代表最終的核函數,其中kj(∙,∙)是第j個核函數。與單核 SVM 一樣,可以将上式如下轉化:
其中Kj∈ RNxN,Ω={a|a∈[0,C]N},“∗”被定義為向量的點積,即(1,0)∗(2,3) = (1 ×2 ,0×3)=(2,0)。通過對比 MKL 與單核 SVM 所對應的優化問題形式,求解多核學習問題的計算複雜度與難度會遠大于單核 SVM,是以研究出一種高效且穩定的算法來解決傳統多核學習中的優化難題,仍然很具有挑戰性。
綜上所示,盡管多核學習在解決一些異構資料集問題上表現出了非常優秀的性能,但不得不說效率是多核學習發展的最大瓶頸。首先,空間方面,多核學習算法由于需要計算各個核矩陣對應的核組合系數,需要多個核矩陣共同參加運算。也就是說,多個核矩陣需要同時存儲在記憶體中,如果樣本的個數過多,那麼核矩陣的維數也會非常大,如果核的個數也很多,這無疑會占用很大的記憶體空間。其次,時間方面,傳統的求解核組合參數的方法即是轉化為SDP優化問題求解,而求解SDP問題需要使用内點法,非常耗費時間,盡管後續的一些改進算法能在耗費的時間上有所減少,但依然不能有效的降低時間複雜度。高耗的時間和空間複雜度是導緻多核學習算法不能廣泛應用的一個重要原因。
下篇預告:不同核學習方法的研究。
參考文獻:Research on Multiple Kernel Boosting Learning Algorithm
Fast Multiple Kernel Learning for Classification and Application
Research on Multiple Kernel Learning Algorithms and Their Applications