1. 程式人生 > >詳解SVM系列(五):非線性支援向量機與核函式

詳解SVM系列(五):非線性支援向量機與核函式

對解線性分類問題,線性分類支援向量機是一種有效的方法。但是,有時分類問題是非線性的,這時可以使用非線性支援向量機。

核技巧

在這裡插入圖片描述
**非線性分類問題:**如上面左圖所示,能用 R n R^n 中的一個超曲面將正負例項分開,則稱這個問題為非線性可分問題。
非線性問題不好求解,想辦法轉換成線性問題。
通過進行一個非線性變換(線性變換無法改變資料集的線性可分與不可分性),將非線性問題轉換為線性問題,通過解變換後的線性問題的方法求解原來的非線性問題。(如上圖所示)
用線性分類方法求解非線性分類問題分為兩步:
1):首先使用一個非線性變換,將原空間的資料對映到新的空間


2):然後在新空間裡用線性分類學習方法從該訓練資料集中學習分類模型。
核技巧就屬於這樣的方法。

要搞明白核技巧是怎麼回事,我們先來看一下核函式的定義:
李航在統計學習方法中的定義是:有一個輸入空間 χ χ 是歐式空間 R n

R^n 的子集,又有一個特徵空間 H H ,是希爾伯特空間,如果存在一個從 χ χ H
H
的對映 Φ ( x ) : χ H Φ(x):χ→H ,使得對所有的 x , z χ x,z∈χ ,函式 K ( x , z ) = Φ ( x ) Φ ( z ) K(x,z)=Φ(x)Φ(z)
則稱 K ( x , z ) K(x,z) 為核函式, Φ ( x ) Φ(x) 為對映函式,式中 Φ ( x ) Φ ( z ) Φ(x)Φ(z) Φ ( x ) Φ(x) Φ ( z ) Φ(z) 的內積。

核技巧的想法是:在學習與預測中只定義核函式 K ( x , z ) K(x,z) ,而不顯式定義對映函式 Φ ( x ) Φ(x)
(因為在求解非線性可分問題時,其目標函式形式是 m i n 1 2 i = 1 N J = 1 N α i α j y i y j x i x j i = 1 N α i min\frac{1}{2}\displaystyle\sum_{i=1}^{N}\displaystyle\sum_{J=1}^{N}α_iα_jy_iy_jx_ix_j-\displaystyle\sum_{i=1}^{N}α_i ,在這個目標函式裡面,只有x內積的形式,這就是為什麼核函式要定義成對映的內積的形式了)
為什麼之定義核函式,而不顯式的定義對映函式?
1)要求解的目標函式裡面是輸入例項 x i x_i x j x_j 的內積形式,而核函式的定義形式就是將原始輸入空間的例項對映到高緯的特徵空間後的例項的內積。所以可以直接定義核函式不用定義對映函式。
2)對映後的特徵空間一般是高維的,在其空間內求內積不太容易。並且對於給定的核函式 K ( x , z ) K(x,z) ,特徵空間與對映函式的取法並不唯一。

核技巧在支援向量機中的應用

線上性支援向量機的對偶問題中,無論是目標函式還是決策函式(分離超平面)都只涉及輸入例項與例項之間的內積。

在對偶問題的目標函式中的內積 x i x j x_ix_j 可以用核函式 K ( x i , x j ) = Φ ( x i ) Φ ( x j ) K(x_i,x_j)=Φ(x_i)Φ(x_j) 來代替。此時對偶問題的目標函式成為:
W ( α ) = i = 1 N j = 1 N α i α j y i y j K ( x i x j ) i = 1 N α i W(α)=\displaystyle\sum_{i=1}^{N}\displaystyle\sum_{j=1}^{N}α_iα_jy_iy_jK(x_ix_j)-\displaystyle\sum_{i=1}^{N}α_i
同樣分類決策函式中的內積也可以用核函式代替,而分類決策函式式成為:
f ( x ) = s i g n ( j = 1 N s α i y i Φ ( x i ) Φ ( x ) + b ) = s i g n ( j = 1 N s α i y i K ( x i , x ) + b ) f(x)=sign(\displaystyle\sum_{j=1}^{N_s}α_i^{*}y_iΦ(x_i)Φ(x)+b^*)=sign(\displaystyle\sum_{j=1}^{N_s}α_i^{*}y_iK(x_i,x)+b^*)

這等價於經過對映函式 Φ ( x ) Φ(x)

相關推薦

SVM系列非線性支援向量函式

對解線性分類問題,線性分類支援向量機是一種有效的方法。但是,有時分類問題是非線性的,這時可以使用非線性支援向量機。 核技巧 **非線性分類問題:**如上面左圖所示,能用 R

SVM系列線性支援向量軟間隔最大化

線性支援向量機 線性可分問題的支援向量機學習方法,對線性不可分訓練資料是不適用的,因為這時上述方法的不等式約束並不能都成立。 舉2個例子: 如果沒有混入異常點,導致不能線性可分,則資料可以按上面的實線來做超平面分離的。 這種情況雖然不是不可分的,但是由於其中的一個藍色點不滿足線性

支援向量學習筆記非線性支援向量SMO演算法

非線性問題 在之前學了線性支援向量機,通過訓練集學習到分離超平面 w x +

SVM系列拉格朗日對偶性

拉格朗日函式有什麼用? 在約束最優化問題中,常常利用拉格朗日對偶性將原始問題轉換為對偶問題,通過解對偶問題而得到原始問題的解。 原始問題: 假設 f (

SVM系列感知

什麼是感知機 感知機是二類分類的線性分類模型,其輸入為例項的特徵向量,輸出為例項的類別,取+1和-1二值。 感知機對應於輸入空間(特徵空間)中將例項分為正負兩類的分離超平面,屬於判別模型。 感知機旨在求出將訓練資料進行線性劃分的分離超平面,為此,匯入基於誤分類的損失函式,利用梯度

SVM系列線性可分支援向量硬間隔最大化

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

SVM系列深入解析 序列最小最優化SMO演算法一

SMO演算法是幹啥的 首先要先搞明白一個基本的問題: SMO演算法是幹啥的? 通過前面的介紹,我們現在掌握了線性不可分支援向量機。其形式為如下的凸二次規劃: m

SVM支援向量系列理論 非線性支援向量函式技巧

3.1 核技巧解決非線性SVM 3.1.1 非線性SVM解決思路 3.1.2 核技巧下SVM 3.2 Mercer核

解密SVM系列matlab下libsvm的簡單使用分類迴歸

本節簡單介紹一下libsvm的使用方法。關於libsvm似乎曾經使用過,那個時候主要用libsvm進行。當時還翻譯過關於 介紹與分類實驗 下載下來的libsvm其實包含好多個平臺的工具箱軟體,c++,matlab,java,python都有。他們的函

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

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

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

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

學習筆記使用支援向量區分僵屍網路DGA家族

1.資料蒐集和資料清洗       ·1000個cryptolocker域名       ·1000個post-tovar-goz域名       ·alexa前1000域名   &n

學習筆記使用支援向量識別XSS

1.特徵化:提取特徵,對特徵進行向量化,標準化,均方差縮放,去均值操作 def get_len(url): return len(url) def get_url_count(url): if re.search('(http://)|(http://)',url,re.IGNO

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

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

半監督學習——半監督支援向量

半監督支援向量機(S3VMs)   今天我們主要介紹SVM分類器以及它的半監督形式S3VM,到這裡我們關於半監督學習基礎演算法的介紹暫時告一段落了。之後小編還會以論文分享的形式介紹一些比較新的半監督學習演算法。讓我們開始今天的學習吧~ 引入   支援向量機(SVM)相信大家並不陌生吧?但是如果資料集中有大量無

Redis系列Redis的RESP協議

一、什麼是RESP   Redis是Redis序列化協議,Redis客戶端RESP協議與Redis伺服器通訊。Redis協議在以下幾點之間做出了折衷: 簡單的實現 快速地被計算機解析 簡單得可以能被人工解析 二、RESP協議描述   RESP協議在Redis 1.2中引入,但在Redis 2.0中成為與R

EonStor GSe Pro 1000攻略內功深厚提升效能的資料服務

最大800GB的SSD快取池 快取是一個透明儲存資料的元件,以便將來可以更高效的處理資料請求,是儲存的核心組成部分之一,特別適合讀密集型的應用。由於控制器的記憶體容量有限,SSD快取能夠利用高速的SSD來擴充套件儲存系統的快取池容量,並且儲存經常訪問的資料。隨著SSD快取容量的增加,更多熱資料可以儲存在SS

機器學習實戰系列SVM支援向量

課程的所有資料和程式碼在我的Github:Machine learning in Action,目前剛開始做,有不對的歡迎指正,也歡迎大家star。除了 版本差異,程式碼裡的部分函式以及程式碼正規化也和原書不一樣(因為作者的程式碼實在讓人看的彆扭,我改過後看起來舒服多了)

Scala入門系列面向對象之類

important ica back ember const 就會 out 不用 spa // 定義類,包含field以及method class HelloWorld { private var name = "Leo" def sayHello() { prin

yuv系列---YUV444

存儲空間 根據 字節 roc 排列 原因 每一個 mar size 本篇詳細分析YUV444格式: 一、文字描述首先從文字敘述的角度來講,這個格式相對比較簡單一些,就是真對每一個像素都要分別采樣Y, U, V的值。從物理存儲的角度來講,也就是每一個像素的表示都需要有3個字節