1. 程式人生 > >統計學習方法 7-支援向量機

統計學習方法 7-支援向量機

支援向量機學習方法包含構建由簡至繁的模型:線性可分支援向量機(linear support vector machine in linearly separable case)、線性支援向量機(linear support vector machine)及非線性支援向量機(non-linear support vector machine)。

  • 當訓練資料線性可分時,通過硬間隔最大化(hard margin maximization),學習一個線性的分類器,即線性可分支援向量機,又稱為硬間隔支援向量機;
  • 當訓練資料近似線性可分時,通過軟間隔最大化(soft margin maximization),也學習一個線性的分類器,即線性支援向量機,又稱為軟間隔支援向量機;
  • 當訓練資料線性不可分時,通過使用核技巧(kernel trick)及軟間隔最大化,學習非線性支援向量機。

當輸入空間為歐氏空間或離散集合、特徵空間為希爾伯特空間時,核函式(kernel function)表示將輸入從輸入空間對映到特徵空間得到的特徵向量之間的內積。通過使用核函式可以學習非線性支援向量機,等價於隱式地在高維的特徵空間中學習線性支援向量機。這樣的方法稱為核技巧。

線性可分支援向量機與硬間隔最大化

線性可分支援向量機

輸入空間為歐氏空間或離散集合,特徵空間為歐氏空間或希爾伯特空間。線性可分支援向量機、線性支援向量機假設這兩個空間的元素一一對應,並將輸入空間中的輸入對映為特徵空間中的特徵向量。學習的目標是在特徵空間中找到一個分離超平面,能將例項分到不同的類。

函式間隔和幾何間隔

(函式間隔)對於給定的訓練資料集T和超平面(w,b),定義超平面(w,b)關於樣本點(xiyi)的函式間隔為 γ^=yi(wxi+b)
定義超平面(w,b)關於訓練資料集T的函式間隔為超平面(w,b)關於T中所有樣本點(xiyi)的函式間隔之最小值,即γ^=mini=1,,Nγ^i

(幾何間隔)對於給定的訓練資料集T和超平面(w,b),定義超平面(w,b)關於樣本點(xiyi)的幾何間隔為γi=yi(w||w||xi+b||w||)
定義超平面(w,b)關於訓練資料集T的幾何間隔為超平面(w,b)關於T中所有樣本點(xiyi)的幾何間隔之最小值,即γ

=mini=1,,Nγi

γi=γ^i||w||
γ=γ^||w||

間隔最大化

支援向量機學習的基本想法是求解能夠正確劃分訓練資料集並且幾何間隔最大的分離超平面。

  1. 最大間隔分離超平面

  2. 最大間隔分離超平面的存在唯一性
  3. 支援向量和間隔邊界
    在H1和H2上的點就是支援向量,H1與H2之間的距離稱為間隔 2||w||

學習的對偶演算法

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

線性支援向量機

約束條件:yi(wxi+b)εi
目標函式:12||w||2+CNi=1εi

學習的對偶演算法

支援向量

軟間隔的支援向量xi或者在間隔邊界上,或者在間隔邊界與分離超平面之間,或者在分離超平面誤分一側。

  • αi<C,則εi0,支援向量xi恰好落在間隔邊界上;
  • αi=C0<εi<1,則分類正確,xi在間隔邊界與分離超平面之間;
  • αi=Cεi=1,則xi在分離超平面上;
  • αi=Cεi>1,則xi位於分離超平面誤分一側。

合頁損失函式

  • 對於線性支援向量機學習來說,其模型為分離超平面w*·x+b*=0及決策函式f(x)=sign(w*·x+b*),其學習策略為軟間隔最大化,學習演算法為凸二次規劃。
  • 最小化以下目標函式:Ni=1[1yi(wxi+b)]++λ||w||2
    [z]+={

    相關推薦

    統計學習方法 7-支援向量

    支援向量機學習方法包含構建由簡至繁的模型:線性可分支援向量機(linear support vector machine in linearly separable case)、線性支援向量機(linear support vector machine)及非線性

    統計學習方法》“支援向量”一章中說可以取函式間隔等於 1 是為什麼?

    假設兩條平行直線分別是 (1)Wx+A=0, Wx+A=0,\tag{1} Wx+A=0,(1) 與 (2)Wx+B=0. Wx+B=0.\tag{2} Wx+B=0.(2) 那麼和這兩條直線平行,且位於中間的那條直線就可以表示成: (3)Wx+A+B−A2=0

    統計學習方法_支援向量SVM實現

    由於在MNIST上執行SVM耗時過久,所以這裡使用了偽造的資料集,並使用線性核和多項式核進行實驗。 #!/usr/bin/env python3and # -*- coding: utf-8 -*- import time import random import log

    【資料科學系統學習】機器學習演算法 # 西瓜書學習記錄 [7] 支援向量(一)

    這兩篇內容為西瓜書第 6 章支援向量機 6.1,6.2,6.4,6.3 的內容: 6.1 間隔與支援向量 6.2 對偶問題 6.4 軟間隔與正則化 6.3 核函式 由於本章內容較多,分為兩篇來敘述。本篇所包含內容為間隔與支援向量和對偶問題。 如移動端無法正常

    Spark中元件Mllib的學習28之支援向量SVM-方法1

    支援向量機(Support Vector Machine,SVM)是Corinna Cortes和Vapnik等於1995年首先提出的,它在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢,並能夠推廣應用到函式擬合等其他機器學習問題中。 SVM的

    機器學習實戰——SVM支援向量 實現記錄

    問題:TypeError: data type not understood alphas = mat(zeros(m,1)) 原因是zeros(())格式不對,更改後: alphas = mat(zeros((m,1))) 問題:關於IDLE中換行,回車前面出現很多空格的情況

    機器學習 --- 軟間隔支援向量

    一、軟間隔支援向量機直觀理解 之前所介紹的支援向量機形式都是要求所有的樣本都要能被正確地劃分,這又被稱作"硬間隔支援向量機",當資料是帶有噪聲的,就可能會產生一些脫離群體的點。在實際情況中,採用硬間隔的方式難以確定合適的核函式使得訓練樣本在特徵空間中線性可分,即使能確定某個核函式能進行很好的劃分

    機器學習演算法——SVM(支援向量)

    文章目錄 1. SVM簡介 2. SVM的一些概念 2.1 函式間隔與幾何間隔 2.2 支援向量 3. SVM模型目標函式與優化 3.1 SVM模型目標函式的推導(線性可分)

    【資料科學系統學習】機器學習演算法 # 西瓜書學習記錄 [8] 支援向量(二)

    這兩篇內容為西瓜書第 6 章支援向量機 6.1,6.2,6.4,6.3 的內容: 6.1 間隔與支援向量 6.2 對偶問題 6.4 軟間隔與正則化 6.3 核函式 由於本章內容較多,分為兩篇來敘述。本篇所包含內容為軟間隔與正則化和核函式。關於間隔與支援向量和

    機器學習筆記之支援向量

    目的:給定二分類樣本集,想要找一個分離超平面。(魯棒性最好)其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規劃問題的求解。 分析:超平面可以由以下方程確定 b為超平面和原點之間的距離,wT決定超平面的方向。樣

    sklearn庫學習之核支援向量

    核支援向量機 核SVM的重要引數是正則化引數C、核的選擇以及與核相關的引數。 在低維資料和高維資料上表現都很好。 但對樣本個數的縮放表現不好。 預處理資料和調參都需要非常小心。 線性模型在低維空間中可能非常受限,因為線和平面的靈活性有限,新增更多的特徵讓線性

    Stanford機器學習筆記-8. 支援向量(SVMs)概述

    8. Support Vector Machines(SVMs) Content 8. Support Vector Machines(SVMs)       8.1 Optimization Objection       8.2 Large margin intuition       8.

    【機器學習實戰】支援向量----分類庫和簡單訓練mnist

    前面已經對mnist資料集進行了讀取,現在我們可以直接使用sklearn.svm模組中的演算法庫對mnist資料集進行訓練。 【svm模組】 演算法庫: sklearn.svm模組中提供了這些庫: 大概分成這幾類(除了svm_l1_min_c

    機器學習筆記8-支援向量(3/3)

    機器學習筆記8-支援向量機(3/3) scikit-learn中的SVM函式 機器學習庫scikit-learn中也集成了SVM的函式,可以方便的進行呼叫,可用來分類、迴歸和異常點檢測。 支援向量機的優點有: i)在高維空間效果很好 ii)當維度數大於樣本點數時,效果仍然不錯 i

    cs229學習筆記之支援向量

    函式距離和幾何距離 設特徵和類標籤分別為x,y∈{−1,1},定義分類器hw,b(x)=g(wTx+b),g(z)={1−1z≥0z<0 函式距離 給定訓練樣本(x(i),y(i)),則函式距離r^(i)=y(i)(wTx(i)+b) 如果y(

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

    前言 學習前幾章很順利,然後就覺得機器學習也不過如此,但學到這章時,發現如果沒有一點理論基礎,是看不懂的(如果不想看懂理論,可直接使用MLiA書上例子,只要知道怎麼把資料組織成演算法支援的資料型別即可),回想起看前幾章為什麼能這麼順利,原因是之前看過一堆相關視

    統計學習方法筆記二---感知(Perceptron Learning Algorithm,PLA)

    簡介 感知機(perceptron)是二分類的線性分類模型,其輸入為例項的特徵向量,輸出為例項的類別,取+1和-1二值。感知機對應於輸入空間(特徵空間)中將例項劃分為正負兩類的分離超平面,屬於判別模型,解決的問題是分類問題。 目標/目的:求出將訓練資料進行線

    吳恩達機器學習筆記 —— 13 支援向量

    本章講述了SVM,相比於《統計學習方法》,從邏輯迴歸的角度更容易理解了。 從邏輯迴歸來看,看損失值與Z的值的關係: 代入原來的是指,可以化簡公式: 總結來說:如果y=1,我們希望z的值大於等於1,如果y=0,我們希望z的值小於-1,這樣損失函式的值都會為0. 線性可分的決策邊界: 但是這種情況對於

    《機器學習實戰》支援向量的數學理解及程式實現

    一、 引言最近在機器學習課上,學到的《機器學習實戰》第六章的支援向量機,這部分內容非常多,不僅要會程式設計和測試,還要理解它的數學基礎,這裡對這部分的學習進行一些總結。二、 SVM的數學原理從一個簡單的二分問題開始說吧:我們要把這兩類不同的點區分開,那麼在這個二維平面上就是找

    機器學習實戰-55:支援向量分類演算法(Support Vector Machine)

    支援向量機分類演算法 支援向量機(Support Vector Machine)分類演算法屬於監督學習演算法。常用分類演算法包括:邏輯迴歸(Logistic Regression, LR)、K最近鄰(k-Nearest Neighbor, KNN)、樸素貝葉斯