1. 程式人生 > >學習筆記——支援向量機

學習筆記——支援向量機

支援向量機(SVM),基本模型是定義在特徵空間上的間隔最大的線性分類器,使用核技巧可以使它成為實質上的非線性分類器。“使間隔最大”形成一個凸二次規劃問題。由簡至繁可分為:線性可分(硬間隔)支援向量機,(軟間隔)線性支援向量機,非線性支援向量機。

線性可分支援向量機

資料線性可分的時候,感知機可以求得分離超平面,但有無數多個解,而支援向量機通過間隔最大化求得的最優分離超平面,解是唯一的。

  • 線性可分支援向量機
    給定線性可分訓練資料集,通過間隔最大化或等價地求解相應的凸二次規劃問題學習得到的分離超平面為\[w^* \cdot x + b^* = 0\]以及相應的分類決策函式\[f(x) = sign(w^* \dot x + b)\]
    稱為線性可分支援向量機。

超平面\((w, b)\)關於樣本點\((x_i, y_i)\)的幾何間隔:\[\gamma = y_i (\frac{w}{||w||} \cdot x_i + \frac{b}{||w||} ),\]求最大間隔分離超平面可以表示成下面的約束最優化問題:
\[\max_{w, b} \: \gamma\]\[s.t. \: y_i (\frac{w}{||w||} \cdot x_i + \frac{b}{||w||} ) \geq \gamma\]
進行簡單的推導,得到下面的線性可分支援向量機學習演算法——最大間隔法,

線性可分支援向量機學習演算法——最大間隔法

  • 輸入:線性可分資料集\(T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\}\),其中\(x_i \in \mathcal{X}=R^n\)\(y_i \in \mathcal{Y} = \{-1, +1\}\)\(i = 1,2,...,N\)
  • 輸出:最大間隔分離超平面和分類決策函式.
  1. 構造並求解約束最優化問題:\[\min_{w, b} \: \frac{1}{2}||w||^2\]\[s.t. \: y_i (w \cdot x_i + b) - 1 \geq 0, i = 1, 2, ..., N\]
  2. 由此得到分離超平面:\[w^* \cdot x + b^* = 0\]
    分類決策函式\[f(x) = sign(w^* \cdot x + b^*)\]

距離分離超平面最近的例項稱為支援向量,在決定分離超平面時只有支援向量起作用,其他例項點不起作用。

可以應用拉格朗日對偶性,通過求解對偶問題得到原始問題的解,簡單來說,就是把最優化問題中的約束條件作為目標函式的一部分,形成新的最優化問題,這個新的最優化問題如果想要和原問題一致的話,需要滿足KKT條件。經過推導,可以得到線性可分支援向量機原始問題的對偶問題,相應的對偶學習演算法為,

  • 線性可分支援向量機學習演算法(對偶)
  1. 構造並求解約束最優化問題\[\min_{\alpha} \:\: \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i = 1}^{N}\alpha_i\]\[s,t.\:\: \sum_{i=1}^{N} \alpha_i y_i = 0\] \[\alpha_i \geq 0, i = 1, 2, ..., N \]求得最優解\[ \alpha^* = ( \alpha_1^*, \alpha_2^*,..., \alpha_N^*)^T\]
  2. 計算 \[w^* = \sum_{i=1}^{N} \alpha_i^* y_i x_i\]並選擇\(\alpha\)的一個正分量,計算\[b^* = y_j - \sum_{i=1}^N \alpha_i^*y_i(x_i \cdot x_j)\]
  3. 求得分離超平面:\[w^* \cdot x + b^* = 0\]分類決策函式\[f(x) = sign(w^* \cdot x + b^*)\]

資料集中對應於\(\alpha_i > 0\)的例項為支援向量,在間隔邊界上。

線性支援向量機與軟間隔最大化

對於線性不可分的資料,可以引入一個鬆弛變數\(\xi_i \geq 0\),對約束條件放寬一點,同時在目標函式中給予相應的懲罰,這樣,就得到了線性不可分的線性支援向量機的原始問題:

  • 線性不可分支援向量機原始問題
    \[\min_{w, b, \xi} \: \: \frac{1}{2} ||w||^2 + C\sum_{i=1}^N \xi_i\]\[s.t. \: \: y_i(w \cdot + b) \geq 1 - \xi_i, i=1,2, ..., N\]\[\xi_i \geq 0, i = 1,2,...,N\]

與線性可分支援向量機一樣,可以得到線性支援向量機相應的對偶問題,

  • 線性支援向量機學習演算法(對偶)
  1. 選擇懲罰引數\(C > 0\),構造並求解凸二次規劃問題\[\min_{\alpha} \:\: \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j (x_i \cdot x_j) - \sum_{i = 1}^{N}\alpha_i\]\[s,t.\:\: \sum_{i=1}^{N} \alpha_i y_i = 0\] \[0 \leq \alpha_i \leq C, i = 1, 2, ..., N \]求得最優解\[ \alpha^* = ( \alpha_1^*, \alpha_2^*,..., \alpha_N^*)^T\]
  2. 計算 \[w^* = \sum_{i=1}^{N} \alpha_i^* y_i x_i\]並選擇\(\alpha\)的一個大於0小於\(C\)的分量,計算\[b^* = y_j - \sum_{i=1}^N \alpha_i^*y_i(x_i \cdot x_j)\]
  3. 求得分離超平面:\[w^* \cdot x + b^* = 0\]分類決策函式\[f(x) = sign(w^* \cdot x + b^*)\]

這時的線性支援向量機原始最優化問題等價於合頁損失函式最小化問題\[\min_{w,b} \:\: \sum_{i=1}^N [1 - y_i(w \cdot x_i + b)]_+ + \lambda ||w||^2\],合頁損失函式長得像合頁,是0-1損失函式的上界。

非線性支援向量機與核函式

在處理非線性問題的時候,可以把原空間對映到新的空間,這是的資料可能就線性可分了,這是就能在新空間中學習分類模型。

  • 核函式的定義

    \(\mathcal{X}\)是輸入空間(歐氏空間的子集或離散集合),\(\mathcal{H}\)為特徵空間(希爾伯特空間),如果存在一個從\(\mathcal{X}\)\(\mathcal{H}\)的對映\[\phi(x): \mathcal{X} \rightarrow \mathcal{H}\]使得對所有的\(x, z \in \mathcal{X}\),函式\(K(x, z) = \phi(x) \cdot \phi(z)\)

核技巧的想法是,在學習與預測中只定義核函式\(K(x,z)\),而不顯式地定義對映函式\(\phi\),用一些合適的\(K(x,z)\),計算起來容易。在支援向量機的對偶問題中,目標函式與決策函式都只涉及例項與例項之間的內積,可以用核函式\(K(x_i, x_j) = \phi(x_i) \cdot \phi(x_j)\)來代替。

  • 常用的核函式
    • 多項式核函式
      \[K(x, z) = (x \cdot z + 1)^p\]對應的支援向量機是一個p次多項式分類器,分類決策函式為\[f(x) = sign(\sum_{i=1}^{N_s} a_i^* y_i (x_i \cdot x + 1)^p + b^*)\]
    • 高斯核函式
      \[K(x, z) = \exp(-\frac{||x-z||^2}{2\sigma^2})\]對應的支援向量機是高斯徑向基函式分類器,分類決策函式為\[f(x) = sign((\sum_{i=1}^{N_s} a_i^* y_i \exp(-\frac{||x-z||^2}{2\sigma^2}) + b^*)\]
    • 字串核函式
      離散的字串集合中的核函式,在文字分類、資訊檢索中可以應用。
  • 非線性支援向量機學習演算法
  1. 選擇適當的核函式\(K(x, z)\)和適當的引數\(C\),構造並求解最優化問題\[\min_{\alpha} \:\: \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N} \alpha_i \alpha_j y_i y_j K(x_i, x_j) - \sum_{i = 1}^{N}\alpha_i\]\[s,t.\:\: \sum_{i=1}^{N} \alpha_i y_i = 0\] \[0 \leq \alpha_i \leq C, i = 1, 2, ..., N \]求得最優解\[ \alpha^* = ( \alpha_1^*, \alpha_2^*,..., \alpha_N^*)^T\]
  2. 選擇\(\alpha\)的一個大於0小於\(C\)的分量,計算\[b^* = y_j - \sum_{i=1}^N \alpha_i^*y_iK(x_i \cdot x_j)\]
  3. 構造決策函式:\[f(x) = sign(\sum_{i=1}^N \alpha_i^* y_i K(x \cdot x_i) + b^*)\]
  • 序列最小最優化演算法(SMO)
    求解支援向量機中的凸二次規劃問題,資料量很大時,需要這些快速實現演算法。SMO演算法不斷地將原二次規劃問題分解為只有兩個變數的二次規劃子問題,並對子問題進行解析求解,直到所有變數滿足KKT條件為止。這種通過啟發式的方法得到最優解,因為子問題有解析,所以很有效。

相關推薦

機器學習筆記——支援向量

一,線性可分支援向量機與硬間隔最大化 1.1 間隔與支援向量 在樣本空間中,劃分超平面可通過如下線性方程來描述: 其中,w = (w1;w2;...;wd)為法向量,決定了超平面的方向;b為位移項,決定了超平面與原點之間的距離。 我們將超平面記為(w,b).樣本空間中任意點x到

HCIE-BigData學習筆記-支援向量

1、華為MLS分類模型中資料的檢視 真 偽 陰 真陰 偽陰 陽 真陽 偽陽 2、要將所要結果輸出偽目標 3、懲罰係數 當我們構建出最大超平面的時候,本來是輸入屬性,經過判斷之後,它是屬於不存款的一邊,但是真實是存款的,我們就可以改變懲罰

機器學習筆記——支援向量(SVM)

支援向量機 除了之前講的機器學習的方法,還有一種常用的方法叫做支援向量機。我們將logistic迴歸的假設函式以及代價函式稍加更改就可以得到支援向量機的模型 另外還有不同的是SVM的輸出並不是一個概率值,而是0或1 大間隔 我們說SVM是一種大間隔演算法,意思是我們

學習筆記——支援向量

支援向量機(SVM),基本模型是定義在特徵空間上的間隔最大的線性分類器,使用核技巧可以使它成為實質上的非線性分類器。“使間隔最大”形成一個凸二次規劃問題。由簡至繁可分為:線性可分(硬間隔)支援向量機,(軟間隔)線性支援向量機,非線性支援向量機。 線性可分支援向量機 資料線性可分的時候,感知機可以求得分離

學習筆記——支援向量svm(2)對偶問題

回顧 上一篇已經講到了將找一個最好的分割超平面轉化為上面的公式並且用二次規劃來求解的問題。但是還是存在一個問題,這個演算法維度(w的維度)不是跟資料量相關的,而是跟資料內在的vc維度有關的,所以當

神經網路學習筆記-支援向量(Support Vector Machine,SVM )

基於誤差反向傳播演算法的多層感知器 徑向基函式網路 支援向量機(SupportVector Machine , SVM ) 都是前饋神經網路 ,都用於解決模式分類與非線性對映問題 。 線性可分模

人工智障學習筆記——機器學習(4)支援向量

一.概念 支援向量機(Support Vector Machine),簡稱SVM。是常見的一種判別方法。在機器學習領域,是一個有監督的學習模型,通常用來進行模式識別、分類以及迴歸分析。 SVM的主要思想可以概括為兩點: 1.它是針對線性可分情況進行分析,對於線性不可分的情況

王小草【機器學習筆記--支援向量SVM

標籤(空格分隔): 王小草機器學習筆記 1.SVM的原理與目標 1.1 分割超平面 來看上圖,假設C和D是兩個不想交的凸集,則存在一個超平面P,這個P可以將C和D分離。 這兩個集合的距離,定義為兩個集合間元素的最短距離。 做集合C和集合

[機器學習]svm支援向量介紹

1 什麼是支援向量機 支援向量機是一種分類器,之所以稱為 機 是因為它會產生一個二值決策結果,即它是一個決策機。 ​​​Support Vector Machine, 一個普通的SVM就是一條直線罷了,用來完美劃分linearly separable的兩類。但這又不是一條

機器學習支援向量(四)

引言:   SVM是一種常見的分類器,在很長一段時間起到了統治地位。而目前來講SVM依然是一種非常好用的分類器,在處理少量資料的時候有非常出色的表現。SVM是一個非常常見的分類器,在真正瞭解他的原理之前我們多多少少都有接觸過他。本文將會詳細的介紹SVM的原理、目標以及計算過程和演算法步驟。我們針對線性可分資

[四]機器學習支援向量SVM

4.1 實驗資料 本資料集來源於UCI的Adult資料集,並對其進行處理得到的。資料集下載地址:http://archive.ics.uci.edu/ml/datasets/Adult。本實驗使用LIBSVM包對該資料進行分類。 原始資料集每條資料有14個特徵,分別為age,workc

機器學習5---支援向量

1. 線性可分的支援向量機 1.1 支援向量機(SVM)基本型 對於給定的在樣本空間中線性可分的訓練集,我們有多重辦法對其進行劃分,以二分類問題為例,如圖: 紅線和黑線(超平面)都能將兩類樣本很好的劃分開,但是當新樣本進入時,黑線比紅線更加有可能正確劃分新的樣本,換句話說:越位

機器學習 --- 線性支援向量

支援向量機是一種二分類模型,目的是尋找一個超平面對樣本進行劃分,其基本模型定義為特徵空間上的間隔最大的線性分類器。 一、線性支援向量機的直觀理解 給定訓練樣本集  ,  ,模型旨在能基於訓練集在樣本空間中找到一個合適的劃分超平面。 在下圖

機器學習演算法——支援向量svm,實現過程

 初學使用python語言來實現支援向量機演算法對資料進行處理的全過程。 from sklearn.datasets import load_iris #匯入資料集模組 from sklearn.model_selection import train_test_spli

機器學習---演算法---支援向量---線性SVM--第一部分

轉自:https://cuijiahua.com/blog/2017/11/ml_8_svm_1.html 什麼是SVM? SVM的英文全稱是Support Vector Machines,我們叫它支援向量機。支援向量機是我們用於分類的一種演算法。讓我們以一個小故事的形式,開啟我們的SVM之旅吧。 在很

吳恩達機器學習13--支援向量(Support Vector Machines)

第13章 支援向量機(Support Vector Machines) 一,優化目標(Optimization objective) SVM也是廣泛的應用於工業界和學術界的監督學習演算法。 類似於logistic的代價函式,SVM的代價函式如圖是斜直線加上平直線

機器學習支援向量(Support Vector Machines)

支援向量機(Support Vector Machines, SVM)是一種二分類模型,其基本模型是定義在特徵空間上的間隔最大的線性分類器。支援向量機的學習策略就是間隔最大化。 間隔最大化的直觀解釋是:對訓練資料集找到幾何間隔最大的超平面意味著以充分大的卻確信度對訓練資料進

筆記——支援向量

在 SVM 公式的推導中,優化問題的基本型是一個 凸二次規劃問題,因此涉及到對偶問題與原問題等價性的論證。 Lagrange對偶問題 Q1:為什麼要將原問題轉換為對偶問題求解? 原問題往往難以求解,因為對偶問題總是個凹函式,因此轉化為對偶問題則便於求解。

機器學習4-支援向量

目錄 支援向量機(SVM) 原理 引數 不同核函式的分類效果 線性核函式:linear 多項式核函式:poly 徑向基核函式:rbf 樣本類別均衡化 置信概率 網格

機器學習支援向量SVM和人工神經網路ANN的比較

在統計學習理論中發展起來的支援向量機(Support Vector Machines, SVM)方法是一種新的通用學習方法,表現出理論和實踐上的優勢。SVM在非線性分類、函式逼近、模式識別等應用中有非常好的推廣能力,擺脫了長期以來形成的從生物仿生學的角度構建學習機器的束縛。