李航《统计学习方法》-----支持向量机
書中第七章才是支持向量機SVM,但在SVM與感知機有相似的地方,看了感知機的知識之后趁熱先看看SVM。
首先回顧一下感知機。感知機的模型是線性分類模型,將兩種類別標記為正負1,將新的樣本輸入線性函數,再將線性函數代入符號函數就可以得到輸出作為判定結果。這里最重要的還是線性函數的選取,線性函數在特征空間中可能就是一個超平面,只要這個超平面能將正負樣本完全分隔開來就是符合要求的超平面,這也就是感知機的策略。具體到損失函數,選擇的不是誤分類點的個數,而是誤分類點到超平面的總距離,這樣才連續可求導,方便后續優化。感知機的算法是在策略的基礎上選擇的優化算法。
支持向量機像感知機一樣,都是二分類模型。正如之前提到,感知機是支持向量機的基礎,我們還是從機器學習的三要素出發,看看支持向量機在感知機之下做出了什么樣的改進。
模型
從模型看,支持向量機有三種模型,對應訓練數據的線性可分情況,從簡單到復雜。當數據線性可分時,通過硬間隔最大化,學習一個線性可分支持向量機;當數據近似線性可分時,通過軟間隔最大化,學習一個線性支持向量機;當數據線性不可分時,同時使用核技巧(Kernel Function)和軟間隔最大化,學習一個非線性支持向量機。書中強調支持向量機的學習是在特征空間進行的,將輸入空間中的輸入數據映射到特征空間,非線性支持向量機是非線性映射,所以兩個空間的元素不是一一對應的,其他兩種支持向量機則是一一對應的。其實感知機的幾何解釋也是在特征空間中進行的,超平面將特征空間劃分為兩個部分。
策略
與感知機相比,支持向量機的要求更高,不僅僅要求正確分類,還要求正確性盡可能高,正確性表現為樣本點到超平面的距離(間隔)。具體策略與模型的選取有關,又分為硬間隔最大化和軟間隔最大化。
線性可分支持向量機
既然都線性可分了,那么很明顯找到能將兩類數據分隔開的直線就行了。但是在這里提出了更高的要求。很容易理解離超平面距離越遠的點被正確分類的距離越高,因為和分界線的安全距離更大。這個安全距離有一個更專業的詞匯,叫做函數間隔。結合感知機中誤分類點到超平面的距離(參考鏈接1,樣本點與在超平面的投影點構成的直線與法向量的內積),y(wx+b)就是樣本點的函數間隔。對訓練集而言,訓練集的函數間隔是所有樣本點的函數間隔的最小值。將函數間隔歸一化,就是幾何間隔。線性可分支持向量機的策略就是基于幾何間隔的,使幾何間隔最大化,就是確保分隔的可信度最高。
在數學上,這是一個約束最優化問題,使訓練集的幾何間隔最大,同時保證訓練集中每一個樣本的幾何間隔都大于訓練集的幾何間隔。經過等價轉化,轉化為一個凸二次規劃問題(目標函數和約束函數都是連續可微的凸函數),對應書中的算法7.1.算法中取幾何間隔等于1,這樣在超平面兩側各有一個新的超平面wx+b=1和wx+b=-1,落在這兩個超平面上的的樣本點決定了分離超平面,被叫做支持向量。應用拉格朗日的對偶性,還有一個對偶算法7.2.先構造并求解另一個約束最優化問題,然后再求解w和b。
線性向量機
在這種情況下,除去少部分特異點outlier,其他大部分樣本點是線性可分的。但我們又無法知道到底哪些是outlier,所以只能降低約束條件,具體做法是引入一個松弛變量,但同時也對目標函數進行修改,引入一個代價,保證在間隔盡量大的同時誤分類點盡量少。由此可以得到線性向量機的學習算法。書中重點介紹的是對偶學習算法,看來對偶算法還很重要。在線性支持向量機中,支持向量不再只分布在約束條件邊界上,而是還分布在間隔邊界和分離超平面之間。書中還提到了對于近似線性可分數據的另一種解決思路,即利用合頁損失函數,思想是在同時滿足分類正確和間隔大于約束條件時損失才是0,否則損失是1-y(wx+b)。可以證明,兩種優化方法是等價的。
非線性支持向量機
不是所有的數據都是線性可分的,有的數據線性不可分,卻可以利用非線性模型如橢圓分離開來,這時我們就希望將非線性問題變換為線性問題。將橢圓的平方項用變量代換就可以轉化為高維空間的線性可分問題,從而套用線性可分支持向量機的知識。所以非線性支持向量機的重點主要在非線性映射的問題。
其實感知機和支持向量機都是在特征空間上進行分類的,特征空間可以是歐式空間或者希爾伯特空間。非線性支持向量機中的特征空間特指希爾伯特空間。具體的映射關系可以通過核函數的定義表示:
??????????????????????????????????????????????????????????????????
核函數就是輸入空間的的分類曲線。這里核函數K轉化為映射結果的內積的形式。在這之后我們不再關注于映射關系,而是其內積,因為在對偶問題中,目標函數和決策函數都涉及了當前輸入和輸入的訓練實例的內積,而他們又可以轉化為特征空間中的內積,所以只要把核函數轉化為內積形式,就不必明確指出映射關系和特征空間就可以求解,即學習是隱式的在特征空間進行的,這就是核技巧。
但其實不是所有的歐式幾何下的分類曲線都可以轉化為內積的形式,即不是所有函數K都是核函數。書中證明了Mercer定理7.7:K為核函數(正定核函數)的充要條件是K對應的Gram矩陣是半正定矩陣。但檢驗一個具體函數K是否是正定核函數依然不容易,在實際問題中往往應用已有的核函數,如多項式核函數、高斯核函數、字符串核函數、徑向基核RBF、樣條核、Sigmoid核。
在選取核函數解決實際問題時,通常采用的方法有:一是利用專家的先驗知識預先選定核函數;二是采用Cross-Validation方法,即在進行核函數選取時,分別試用不同的核函數,歸納誤差最小的核函數就是最好的核函數.如針對傅立葉核、RBF核,結合信號處理問題中的函數回歸問題,通過仿真實驗,對比分析了在相同數據條件下,采用傅立葉核的SVM要比采用RBF核
的SVM誤差小很多.三是采用由Smits等人提出的混合核函數方法,該方法較之前兩者是目前選取核函數的主流方法,也是關于如何構造核函數的又一開創性的工作.將不同的核函數結合起來后會有更好的特性,這是混合核函數方法的基本思想.
SVM的目標是找到使得訓練數據盡可能分開且分類間隔最大的超平面,應該屬于結構風險最小化,嚴格來說也是錯誤的。 D. SVM可以通過正則化系數控制模型的復雜度,避免過擬合。
關于支持向量機SVM,下列說法錯誤的是()正確答案:C??你的答案:D(錯誤)
L2正則項,作用是最大化分類間隔,使得分類器擁有更強的泛化能力 Hinge 損失函數,作用是最小化經驗分類錯誤 分類間隔為1/||w||,||w||代表向量的模 當參數C越小時,分類間隔越大,分類錯誤越多,趨于欠學習Reference:
1. 距離https://blog.csdn.net/amyaguang/article/details/46043885
2.牛客網https://www.nowcoder.com/test/question/done?tid=16646359&qid=56467#summary
3.https://www.nowcoder.com/test/question/done?tid=16669005&qid=7173#summary
總結
以上是生活随笔為你收集整理的李航《统计学习方法》-----支持向量机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 降维算法学习
- 下一篇: windows+caffe下对CIFAR