1. 程式人生 > >《SVM筆記系列之六》支援向量機中的核技巧那些事兒

《SVM筆記系列之六》支援向量機中的核技巧那些事兒

《SVM筆記系列之六》支援向量機中的核技巧那些事兒

前言

我們在前文[1-5]中介紹了線性支援向量機的原理和推導,涉及到了軟和硬的線性支援向量機,還有相關的廣義拉格朗日乘數法和KKT條件等。然而,光靠著前面介紹的這些內容,只能夠對近似於線性可分的資料進行分割,而不能對非線性的資料進行處理,這裡我們簡單介紹下支援向量機中使用的核技巧,使用了核技巧的支援向量機就具備了分割非線性資料的能力。本篇可能是我們這個系列的最後一篇了,如果有機會我們在SMO中再會吧。

如有謬誤,請聯絡指正。轉載請註明出處。

聯絡方式:
e-mail: [email protected]
QQ

: 973926198
github: https://github.com/FesianXu


1. 重回SVM

我們在前文[1-5]中就線性SVM做了比較系統的介紹和推導,我們這裡做個簡單的小回顧。支援向量機(Support Vector Machine,SVM),是一種基於最大間隔原則進行推匯出來的線性分類器,如果引入鬆弛項,則可以處理近似線性可分的一些資料,其最終的對偶問題的數學表達形式為(1.1),之所以用對偶形式求解是因為可以輕鬆地引入所謂的核技巧,我們後面將會看到這個便利性。
(1.1)

min α 1 2
i = 1 N j = 1 N α i α j y i y j ( x i x j ) i = 1 N α i s . t .   i = 1 N α i y i = 0 α i 0 , i = 1 ,   , N
\min_{\alpha} \frac{1}{2}\sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_jy_iy_j(x_i \cdot x_j)- \sum_{i=1}^N\alpha_i \\ s.t. \ \sum_{i=1}^N\alpha_iy_i=0 \\ \alpha_i \geq0,i=1,\cdots,N \tag{1.1}
其最終的分類超平面如(1.2):
(1.2) θ ( x ) = s i g n ( i = 1 N α i y i ( x i x ) + b ) \theta(x) = \rm{sign}(\sum_{i=1}^N \alpha^*_iy_i(x_i \cdot x)+b^*) \tag{1.2}

從KKT條件[3]中我們知道,除了支援向量SV會影響到決策面之外,其他所有的樣本都是不會對決策面產生影響的,因此只有支援向量對應的 α i > 0 \alpha_i^* > 0 ,其他所有的 α j \alpha_j^* 都是等於0的。也就是說,我們的支援向量機只需要記住某些決定性的樣本就可以了。實際上,這種需要“記住樣本”的方法,正是一類核方法(kernel method)。這個我們後面可能會獨立一些文章進行討論,這裡我們記住,因為SVM只需要記憶很少的一部分樣本資訊,因此被稱之為稀疏核方法(Sparse Kernel Method)[6]。


2. 更進一步觀察SVM

我們這裡更進一步對SVM的對偶優化任務和決策面,也即是式子(1.1)(1.2)進行觀察,我們會發現,有一個項是相同作用的,那就是 ( x i x j ) (x_i \cdot x_j) ( x i x ) (x_i \cdot x) ,這兩項都是在度量兩個樣本之間的距離。我們會發現,因為點積操作
(2.1) x i x j = x i x j cos ( θ ) x_i \cdot x_j = ||x_i|| \cdot ||x_j|| \cdot \cos(\theta) \tag{2.1}
在兩個向量模長相同的情況下,可以知道這個點積的結果越大,兩個樣本之間的相似度越高,因此可以看作是一種樣本之間的度量(metric)。這個我們可以理解,SVM作為一種稀疏核方法的之前就是一個核方法,是需要紀錄訓練樣本的原始資訊的。

但是,我們注意到,我們是在原始的樣本特徵空間進行對比這個相似度的,這個很關鍵,因為在原始的樣本特徵空間裡面,樣本不一定是線性可分的,如果在這個空間裡面,線性SVM將沒法達到很好的效果。


3. 開始我們的非線性之路

那麼,我們在回顧了之前的一些東西之後,我們便可以開始我們的非線性之路了,抓好扶手吧,我們要起飛了。

3.1 高維對映

對於非線性的資料,如下圖所示,顯然我們沒法通過一個線性平面對其進行分割。
在這裡插入圖片描述
當然,那僅僅是在二維的情況下我們沒法對齊進行線性分割,誰說我們不能在更高的維度進行“維度打擊”呢?!我們不妨把整個資料上升一個維度,投射到三維空間,我們將紅色資料“拉高”,而綠色資料“留在原地”,那麼我們就有了:
在這裡插入圖片描述
發現沒有,在二維線性不可分的資料,在三維空間就變得線性可分了。這個時候我們可以紀錄下在三維情況下的決策面,然後在做個逆操作,將其投射到原先的二維空間中,那麼我們就有了:
在這裡插入圖片描述
看來這種維度打擊還真是有效!

\nabla 我們其實還可以再舉個更為簡單的例子。 \nabla
假如我們現在有一些資料,滿足 x 1 2 + x 2 2 = 1 x_1^2+x_2^2=1 ,是的,我們不難發現這其實就是個以原點為圓心半徑為1的圓,其引數為 x 1 x_1 x 2 x_2 ,但是顯然的,這個是個非線性的關係,如果要轉換成一個線性的關係要怎麼操作呢?簡單,用 x 3 = x 1 2 x_3 = x_1^2 x 4 = x 2 2 x_4 = x_2^2 ,我們有變形等價式 x 3 + x 4 = 1 x_3+x_4=1 ,於是我們便有了關於 x 3 x_3 x 4 x_4 的線性關係式,其關鍵就是對映 ϕ ( x ) = x 2 \phi(x)=x^2

別小看這個例子哦,這個是我們核技巧的一個關鍵的直觀想法哦。沒暈吧?讓我們繼續吧。

3.2 基函式

其實我們剛才舉得例子中的 ϕ ( x ) = x 2 \phi(x) = x^2

相關推薦

SVM筆記系列支援向量中的核技巧那些事兒

《SVM筆記系列之六》支援向量機中的核技巧那些事兒 前言 我們在前文[1-5]中介紹了線性支援向量機的原理和推導,涉及到了軟和硬的線性支援向量機,還有相關的廣義拉格朗日乘數法和KKT條件等。然而,光靠著前面介紹的這些內容,只能夠對近似於線性可分的資料進行分割,而不能對非線性的資料

[SVM系列之一]白話支援向量SVM

初識支援向量機(SVM) 我們來玩一個遊戲: 首先在桌子上放兩種顏色的球,它們似乎存在某種關係,那你能不能用一根木棒將兩種顏色分開呢?要求:儘可能在桌面上放置更多的小球后仍然適用。 你大概會這麼放吧: 為了測試你的答案是不是符合要

sklearn庫學習支援向量

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

資料科學和人工智慧技術筆記 十五、支援向量

十五、支援向量機 作者:Chris Albon 譯者:飛龍 協議:CC BY-NC-SA 4.0 校準 SVC 中的預測概率 SVC 使用超平面來建立決策區域,不會自然輸出觀察是某一類成員的概率估計。 但是,我們實際上可以通過一些技巧輸出校準的類概率。

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

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

周志華《Machine Learning》學習筆記(7)--支援向量

寫在前面的話:距離上篇部落格竟過去快一個月了,寫完神經網路部落格正式進入考試模式,幾次考試+幾篇報告下來弄得心頗不寧靜了,今日定下來看到一句雞血:Tomorrow is another due!也許生活就需要一些deadline~~ 上篇主要介紹了神經網路。首

公開課機器學習筆記(13)支援向量三 核函式

2.2、核函式Kernel 2.2.1、特徵空間的隱式對映:核函式     咱們首先給出核函式的來頭:在上文中,我們已經瞭解到了SVM處理線性可分的情況,而對於非線性的情況,SVM 的處理方法是選擇一個核函式 κ(⋅,⋅) ,通過將資料對映到高維空間,來解決在原始空

《Hands-On Machine Learning with Scikit-Learn & TensorFlow》讀書筆記 第五章 支援向量

第5章 支援向量機 支援向量機(SVM)是個非常強大並且有多種功能的機器學習模型,能夠做線性或者非線性的分類,迴歸,甚至異常值檢測。機器學習領域中最為流行的模型之一,是任何學習機器學習的人必備的工具。SVM 特別適合應用於複雜但中小規模資料集的分類問題。

支援向量非線性支援向量(四)

非線性支援向量機與核函式 核技巧 對於非線性分類問題,可以轉換成線性問題求解。 首先,將原始特徵空間資料對映到新的空間 然後,在新的空間利用線性可分支援向量機方法求解 核函式 設X是輸入空間,設H是特徵空間,如果存在一個從X−>H的

SVM支援向量系列理論(SVM過擬合的原因和SVM模型選擇

6.1 SVM 過擬合的原因 實際我們應用的SVM模型都是核函式+軟間隔的支援向量機,那麼,有以下原因導致SVM過擬合: 選擇的核函式過於powerful,比如多項式核中的Q設定的次數過高 要求的間隔過大,即在軟間隔支援向量機中C的引數過大時,表示比較重視間隔,堅持要資

斯坦福CS229機器學習筆記-Lecture8- SVM支援向量 核方法 + 軟間隔 + SMO 演算法

作者:teeyohuang 本文系原創,供交流學習使用,轉載請註明出處,謝謝 宣告:此係列博文根據斯坦福CS229課程,吳恩達主講 所寫,為本人自學筆記,寫成部落格分享出來           博文中部分圖片和公式都來源於CS229官方notes。      

Python3《機器學習實戰》學習筆記(九):支援向量實戰篇再撕非線性SVM

一 前言 上篇文章講解的是線性SVM的推導過程以及簡化版SMO演算法的程式碼實現。本篇文章將講解SMO演算法的優化方法以及非線性SVM。 二 SMO演算法優化 在幾百個點組成的小規模資料集上,簡化版SMO演算法的執行是沒有什麼問題

Spark機器學習系列13: 支援向量SVM

C−SVM基本公式推導過程 下面摘抄一小部分內容(不考慮推導細節的話,基本上能理解C-SVM方法推導的整個流程). 我們用一個超平面劃分圖中對圖中的兩類資料進行分類,超平面寫成f(x)=wTx+b=0,線上性可分的情況下,我們能找到一

機器學習支援向量SVM Support Vector Machine () 高斯核調參

        在支援向量機(以下簡稱SVM)的核函式中,高斯核(以下簡稱RBF)是最常用的,理論上 RBF一定不比線性核函式差,但是在實際應用中,卻面臨幾個重要超引數的調優問題。如果調的不好,可能比線性核函式還要差。所以實際應用中,能用線性核函式得到較好效果的都會選擇

《機器學習》 周志華學習筆記支援向量(課後習題)python 實現

一、 1.間隔與支援向量 2.對偶問題 3.核函式 xi與xj在特徵空間的內積等於他們在原始yangben空間中通過函式k(.,.)計算的結果。 核矩陣K總是半正定的。 4.軟間隔與正則化 軟間隔允許某些samples不滿足約束  鬆弛變數 5.支援

詳解SVM系列(三):線性可分支援向量與硬間隔最大化

支援向量機概覽(support vector machines SVM) 支援向量機是一種二類分類模型。它的基本模型是定義在特徵空間上的間隔最大(間隔最大區別於感知機)線性分類器(核函式可以用非線性的分類)。 支援向量機的學習策略是間隔最大化可形式化為一個求解凸二次規劃的問題。 也等

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

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

SVM支援向量系列理論(九) 核嶺迴歸

1. 嶺迴歸問題 嶺迴歸就是使用了L2正則化的線性迴歸模型。當碰到資料有多重共線性時(自變良量存在高相關性),我們就會用到嶺迴歸。 嶺迴歸模型的優化策略為: minw    1N∑i(yi−w⋅zi)2+λNwTw&nbs

SVM支援向量系列理論(八) 核邏輯迴歸

kernel 邏輯迴歸(KRL)就是使用Representer Theory在L2正則的邏輯迴歸模型中應用核技巧。 1. Representer Theoem Representer Theoem是說,對於任何一個L2正則化的線性模型,其最優的權重向量 w∗

SVM支援向量系列理論(七) 線性支援向量與L2正則化 Platt模型

7.1 軟間隔SVM等價於最小化L2正則的合頁損失 上一篇 說到, ξi ξ i \xi_i 表示偏離邊界的度量,若樣本點