1. 程式人生 > >支援向量機SVM(二):基於軟間隔最大化的線性SVM

支援向量機SVM(二):基於軟間隔最大化的線性SVM

前言

由上節,線性可分SVM的學習模型為
minω,b12ω2s.t.1yi(ωxi+b)0\begin{aligned} \min_{\bm\omega, b} &\quad\frac{1}{2}||\bm\omega||^2\\ \text{s.t.} &\quad 1-y_i(\bm\omega\cdot\bm x_i + b) \leq 0 \end{aligned}

對於不可分資料集(少量資料不可分),由於約束條件不再成立,不能使用以上線性可分SVM的模型。為此,引入鬆弛變數ξ

i0\xi_i\geq 0,使得加上鬆弛變數後的函式間隔不小於1,從而建立起線性不可分資料集的學習模型。

本節主要介紹線性不可分資料集的模型建立、求解,以及等價形式。

基於軟間隔最大化的線性SVM

模型描述

線性不可分資料集T={(x1,y1), ,(xN,yN)}T=\{(\bm x_1,y_1), \cdots, (\bm x_N, y_N)\},例項特徵向量xiX=Rn\bm x_i \in \mathcal{X}=\R^n,例項類別yiY={+1,1}y_i \in \mathcal{Y}=\{+1, -1\}

。通常情況下,資料集中僅有少部分特異點,去除特異點的資料集線性可分。

模型建立

軟間隔與正則化

軟間隔 指允許某些樣本的函式間隔小於1(下式第一項);正則化 指使不滿足約束的樣本儘可能少(下式第二項),即
minω,b12ω2+Ci=1N0/1(yi(ωxi+b)1)\min\limits_{\bm\omega, b}\quad\frac{1}{2}||\bm\omega||^2+C\sum\limits_{i=1}^N\ell_{0/1}(y_i(\bm\omega\cdot\bm x_i + b) - 1)

0/1(yi(ωxi+b)1)

式中0/1\ell_{0/1}0/1損失函式,即當樣本分類正確,值為0;當樣本分類錯誤,值為1。CC為大於0的懲罰引數,即當CC趨於無窮時,迫使所有樣本均滿足約束;取有限值時,允許一些樣本不滿足約束。

函式0/1\ell_{0/1}非連續可導,不利用優化求解。常用的替代損失函式有合頁損失指數損失以及對率損失,即
hinge(z)=max(0,1z),exp(z)=exp(z),log(z)=log(1+exp(z))\ell_\text{hinge}(z)=\max(0,1-z), \quad\ell_\text{exp}(z)=exp(-z),\quad\ell_\text{log}(z)=\log(1+\exp(-z))

三種替代損失函式的曲線:

圖1 三種常見的替代損失函式:合頁損失、指數損失、對率損失

若採用 合頁損失hinge(yi(ωxi+b)\ell_\text{hinge}(y_i(\bm\omega\cdot\bm x_i + b),即函式間隔大於1時無損失、小於1時有損失,得軟間隔優化問題
minω,b12ω2+Ci=1Nmax(0,1yi(ωxi+b))\min\limits_{\bm\omega, b}\quad\frac{1}{2}||\bm\omega||^2+C\sum\limits_{i=1}^N\max(0, 1-y_i(\bm\omega\cdot\bm x_i+b))

引入鬆弛變數
ξi=max(0,1yi(ωxi+b))\xi_i=\max(0, 1-y_i(\bm\omega\cdot\bm x_i+b))
則當ξi>0\xi_i\gt0ξi=1yi(ωxi+b)\xi_i = 1 - y_i(\bm\omega\cdot\bm x_i+b);當ξi=0\xi_i=0yi(ωxi+b)1y_i(\bm\omega\cdot\bm x_i+b)\geq1,即yi(ωxi+b)1ξiy_i(\bm\omega \cdot \bm x_i + b) \geq 1-\xi_i始終成立,得優化問題變式
minω,b12ω2+Ci=1Nξis.t.yi(ωxi+b)1ξiξi0\begin{aligned} \min_{\bm\omega, b} &\quad\frac{1}{2}||\bm\omega||^2 + C\sum\limits_{i=1}^N\xi_i\\ \text{s.t.} &\quad y_i(\bm\omega \cdot \bm x_i + b) \geq 1-\xi_i \\ &\quad \xi_i \geq 0 \end{aligned}

解約束方程得(ω,b)(\bm\omega^*,b^*),求得分離超平面ωx+b=0\bm\omega^*\cdot\bm x+b^*=\bm0,決策函式f(x)=sign(ωx+b)f(\bm x)=\text{sign}(\bm\omega^*\cdot \bm x+b^*)

邏輯迴歸與線性SVM

若使用對率機率損失替代0/1損失,則軟間隔優化問題
minω,b12ω2+Ci=1Nlog(1+exp(1yi(ωxi+b)))\min\limits_{\bm\omega, b}\quad\frac{1}{2}||\bm\omega||^2+C\sum\limits_{i=1}^N\log(1+\exp(1-y_i(\bm\omega\cdot\bm x_i+b)))

可見上述軟間隔SVM與邏輯迴歸(使用L2正則化)優化目標相近,通常效能也基本一致。對率迴歸的輸出具有自然的概率意義,而SVM不做處理時,輸出不具有概率意義。此外對率迴歸能直接用於多分類,SVM需加以推廣。由於合頁損失函式有平坦的零區域,使得 支援向量機的解具有稀疏性,具有支援向量的概念,計算開銷較小

更一般的損失替代形式為
minfΩ(f)+Ci=1m(f(xi),yi)\min_{f}\quad \Omega(f)+C\sum_{i=1}^m\ell(f(\bm x_i), y_i)

相關推薦

支援向量SVM基於間隔最大化線性SVM

前言 由上節,線性可分SVM的學習模型為 min⁡ω,b12∣∣ω∣∣2s.t.1−yi(ω⋅xi+b)≤0\begin{aligned} \min_{\bm\omega, b} &\quad\frac{1}{2}||\bm\omega|

支援向量SVM基於核函式的非線性SVM

前言 線性分類SVM是一種線性分類非常有效的方法,若分類問題是非線性,需要考慮對資料進行 空間變換,將非線性分類問題轉變為線性分類問題,使非線性SVM的學習轉變為線性SVM的學習。 若使用對映ϕ\phiϕ將例項從原空間X\mathcal XX(一般為歐式空

資料探勘十大演算法——支援向量SVM線性支援向量間隔最大化模型

首先感謝“劉建平pinard”的淵博知識以及文中詳細準確的推導!!! 支援向量機原理SVM系列文章共分為5部分: (一)線性支援向量機 (二)線性支援向量機的軟間隔最大化模型 (三)線性不可分支援向量機與核函式 (四)SMO演算法原理 (五)線性支援迴歸

opencv 視覺項目學習筆記 基於 svm 和 knn 車牌識別

its ++ eas -a rect() repr poi obj std 車牌識別的屬於常見的 模式識別 ,其基本流程為下面三個步驟: 1) 分割: 檢測並檢測圖像中感興趣區域; 2)特征提取: 對字符圖像集中的每個部分進行提取; 3)分類: 判斷圖像快是不是車牌或者 每

支援向量學習·統計學習方法

支援向量機 1 線性可分支援向量機 線性可分支援向量機和線性支援向量機假設輸入空間與特徵空間為一一對應關係,並將輸入空間中的輸入對映為特徵空間中的特徵向量。非線性支援向量機利用一個從輸入空間到特徵空間的非線性對映將輸入對映為特徵向量,所以輸入都是由輸入空間到特徵空間,支援向量機的

opencv 視覺專案學習筆記 基於 svm 和 knn 車牌識別

車牌識別的屬於常見的 模式識別 ,其基本流程為下面三個步驟: 1) 分割: 檢測並檢測影象中感興趣區域; 2)特徵提取: 對字元影象集中的每個部分進行提取; 3)分類: 判斷影象快是不是車牌或者 每個車牌字元的分類。 車牌識別分為兩個步驟, 車牌檢測, 車牌識別, 都屬於模式識別。 基本結構如下: 一、車牌

機器學習---支援向量實戰核函式實現

這節和上一節很像,不同的是,上一篇的是通過支援向量和待分類資料內積進行分類的,只是這裡不同的是,在計算內積時使用核函式進行代替,這裡參考的是機器學習實戰中的核函式,如果前面理解的比較深入,讀程式碼還是很簡單的,這裡的程式碼建議不要剛開始就去讀核函式定義,建議先從測試核函式的程

linux基礎篇基於Redhat7系統的特殊許可權與acl許可權列表

新建目錄和檔案的預設許可權 新建目錄和檔案的預設許可權是由系統中umask值來決定的。 新建FILE許可權:666-umask (對位相減)    由數字法賦許可權的過程中,我們能夠發現,凡是奇數許可權,總是包含執行許可權的。而一個檔案如果預設就包含執行許可權其實是非常危險的。因此如果所

Spring Cloud Config基於Git搭建配置中心

1、簡述 本文選用Git作為配置倉庫,新建兩個環境的配置資料夾,dev 和 test,資料夾中分別存放 Config Client 端的配置檔案,目錄結構如下: ├ ─ ─ dev └ ─ ─ config-client-dev.properties ├ ─ ─ test

移動推薦演算法基於簡單規則的預測

本文為轉載文章,來源為: https://blog.csdn.net/Snoopy_Yuan/article/details/72850601 一直在探索資料探勘、資料建模的案例,百度搜到這篇文章,收穫頗豐,轉載以作記錄。 前言:移動推薦演算法是阿里天池賽2015年賽題之

基於內容推薦的個性化新聞閱讀實現基於SVD的推薦演算法

一、前言 SVD前面已經說了好多次了,先不論其資訊檢索被宣稱的各種長處如何如何,在此最主要的作用是將稀疏的term-doc矩陣進行降維,當一篇篇文章變成簡短的向量化表示後,就可以用各種科學計算和機器學習演算法進行分析處理了。 之前的推薦演算法的設計是用的最大熵估計,他和諸如樸素貝葉斯、邏輯迴歸等,本質就

數字訊號處理實驗離散時間訊號和線性時不變離散時間系統的頻域分析

目錄 一、實驗目的: 二、實驗內容及要求: 1. 離散時間訊號的頻域分析: 2. 線性時不變離散時間系統的頻域分析: 三、實驗結果及問題回答: 1. 離散時間訊號的頻域分析: 2. 線性時不變離散時間系統的頻域分析: 一、實驗目的:   

支援向量support vector machine線性SVM

    通常情況下,存在以下兩種情況:    1、分類完全正確的超平面不一定是最好的;    2、樣本資料不是線性可分的;    如圖1所示,如果按照完全分對這個準則來劃分時,L1為最優分割超平面,但是實際情況如果按照L2來進行劃分,效果可能會更好,分類結果會更加魯棒。

TensorFlow深度學習框架學習TensorFlow實現線性支援向量SVM

SVM的原理可以參考李航的《統計學習方法》 具體程式碼如下,程式碼都有註釋的 #1、匯入必要的庫 import matplotlib.pyplot as plt import numpy as np import tensorflow as tf fro

資料探勘十大演算法——支援向量SVM線性支援向量

首先感謝“劉建平pinard”的淵博知識以及文中詳細準確的推導!!! 本文轉自“劉建平pinard”,原網址為:http://www.cnblogs.com/pinard/p/6097604.html。 支援向量機原理SVM系列文章共分為5部分: (一)線性支援向量機

資料探勘十大演算法——支援向量SVMSMO演算法原理

首先感謝“劉建平pinard”的淵博知識以及文中詳細準確的推導!!! 支援向量機原理SVM系列文章共分為5部分: (一)線性支援向量機 (二)線性支援向量機的軟間隔最大化模型 (三)線性不可分支援向量機與核函式 (四)SMO演算法原理 (五)線性支援迴歸

資料探勘十大演算法——支援向量SVM線性支援迴歸

首先感謝“劉建平pinard”的淵博知識以及文中詳細準確的推導!!! 支援向量機原理SVM系列文章共分為5部分: (一)線性支援向量機 (二)線性支援向量機的軟間隔最大化模型 (三)線性不可分支援向量機與核函式 (四)SMO演算法原理 (五)線性支援迴歸

支援向量學習筆記線性支援向量

在前面已經講了線性可分支援向量機,是基於訓練集是線性可分的假設下,但是現實生活中往往資料集不是可分的,會存在著噪音或異常值,看下面的圖。 補充:個人習慣,接下來會將凸二次規劃模型稱為支援向量機模型,因為支援向量機是通過求解凸二次規劃模型最終得到分離超平面。另外分離超平面

機器學習7——支援向量線性可分支援向量到非線性支援向量

線性可分支援向量機 回顧 前面總結了線性可分支援向量機,知道了支援向量機的最終目的就是通過“間隔最大化” 得到最優分類器,能夠使最難區分的樣本點得到最大的分類確信度,而這些難區分的樣本就是支援向量。 還是如下圖所示,超平面H1 和 H2 支撐著中間的決

機器學習與深度學習系列連載 第一部分 機器學習支援向量2Support Vector Machine

另一種視角定義SVM:hinge Loss +kennel trick SVM 可以理解為就是hingle Loss和kernel 的組合 1. hinge Loss 還是讓我們回到二分類的問題,為了方便起見,我們y=1 看做是一類,y=-1 看做是另一類