1. 程式人生 > >SVM中核函式的理解

SVM中核函式的理解

這篇文章是閱讀JULY大神支援向量機通俗導論(理解SVM的三層境界)的一點學習筆記。
在JULY大神原文中,對核函式解釋的時候,點和點的座標表示混用了”X”這個字母,從而為理解帶來了不便。於是自己經過一些驗算和重寫之後,有了這一學習筆記。

我們知道,核函式的提出是在解決SVM在將低維線性不可分資料對映成高位線性可分時提出來的,於是我們直接從此開始。
對於下圖(來源於導論原文)的兩類資料
這裡寫圖片描述
我們可以用一個圓將它們區分開,這個二維上的點座標為(p,q)於是,圓我們可以用一個二次方程表示:

a1p+a2p2+a3q+a4q2+a5pq+a6=0
根據這一方程的形式,我們構造一個五維空間,其上點與二維平面的對映關係為
(
Z1,Z2,Z3,Z4,Z5)=(p,p2,q,q2,pq)
(1.1)

於是原二次方程即變為:
i=15aiZi+a6=0
αZ+a6=0
即一個超平面方程,通過SVM知識我們知道,這個超平面正是在五維空間上線性劃分兩類資料的超平面。
那麼是否對於式子,f(x)=i=1naiyi<x1,x2>+b
將其對映為f(x)=i=1naiyi<ϕ(x1),ϕ(x2)>+b(1.2)
是否可以對已知的非線性資料,找一個對映ϕ() 一股腦將資料對映到高維空間,於是就能根據限制條件求出ai?
其實不行,ϕ()這個對映,隨著原像的維數增長,像的維數會爆炸性增長,自然ϕ
()
也會變得很龐大,所以不好求。
但是,我們不能退縮,要想出來辦法。
我麼思考式子1.2,我們是先對映點積,我們能否找到一個函式K(x1,x2)其操作獲得的結果和<ϕ(x1),ϕ(x2)>結果一致,這樣就不用對映,可以直接用x1x2來求得,這樣就不用尋找複雜的ϕ()了。
下面我們就找這樣一個K(x1,x2)
還是考慮二維平面上的點x1(p1,q2),x2(p1,q2),及上文中式子1.1的對映我們有:
ϕ(x1)=(p1,p21,q1,q21,p1q1)
ϕ(x2)=(p2,p22,q2,

相關推薦

SVM中核函式理解

這篇文章是閱讀JULY大神支援向量機通俗導論(理解SVM的三層境界)的一點學習筆記。 在JULY大神原文中,對核函式解釋的時候,點和點的座標表示混用了”X”這個字母,從而為理解帶來了不便。於是自己經過一些驗算和重寫之後,有了這一學習筆記。 我們知道,核函

SVM中核函數的理解

cap 減少 不一定 tps 需要 link 正是 lin Dimension (1)如何理解核函數能把低維映射到高維 關鍵:因為有泰勒展開 嚴格說是為什麽高斯核函數能夠將低維映射到無窮維 對於高斯核為什麽可以將數據映射到無窮多維,我們可以從泰勒展開式的角度來解釋, 首

svm函式理解和選擇

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

SVM的簡單理解

1、基本知識 決策邊界,或稱為決策面,其目的是將兩種類別的進行分開。 決策邊界如何定義?訓練集上的正負樣本到決策邊界的距離保持最大。 支撐向量是什麼?可以理解為當前樣本下,支撐當前決策邊界的樣本,如何支撐向量不變,繼續增加訓練樣本,決策邊界不會發生變化。 鬆弛因子ei(大於0

svm 損失函式以及其梯度推導

一般而言,score_matrix=WX W是係數矩陣,X是data_matrix,這兒是學習cs231n的筆記,為了與其程式碼內w,x的含義保持一致, 以下統一使用XW來計算score_matrix。背景是用svm實現圖片分類,輸入引數如下: N 代表樣品個數,D 代表畫素個數,C代表

pytorch 常見函式理解

gather >>> a = torch.Tensor([[1,2],[3,4]]) >>> a tensor([[ 1., 2.], [ 3., 4.]]) >>> torch.gather(a,1,torch.LongTen

js封裝物件與js封裝函式理解

1,js封裝物件 1.1 建立:首先建立一個建構函式,建構函式中用this.XXX的形式給這個建構函式新增屬性和方法。給建構函式的原型物件新增方法(建構函式.prortotype.XXX=XXX) 1.2 使用:new一個物件 物件.XXX呼叫這個物件封裝的方法。 1.3 提示:建構函式

16 SVM - 程式碼案例三 - 不同SVM函式效果比較

SVM的章節已經講完,具體內容請參考:《01 SVM - 大綱》 《14 SVM - 程式碼案例一 - 鳶尾花資料SVM分類》《15 SVM - 程式碼案例二 - 鳶尾花資料不同分類器效果比較》 常規操作: 1、標頭檔案引入SVM相關的包2、防止中文亂碼3、讀取資料4、資料分割訓練集和測試集 6:4

回撥函式理解(轉載)

 想要詳細理解回撥函式的內容還需要理解與javascript單執行緒和非同步相關知識。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <

faster rcnn的損失函式理解

1. 使用Smoooh L1 Loss的原因 對於邊框的預測是一個迴歸問題。通常可以選擇平方損失函式(L2損失)f(x)=x^2。但這個損失對於比較大的誤差的懲罰很高。 我們可以採用稍微緩和一點絕對損失函式(L1損失)f(x)=|x|,它是隨著誤差線性增長,而不是平方增長。但這個函式在0點處

vue所有生命週期函式/鉤子函式理解

下邊是一個template 的程式碼,裡邊包含了所有vue 生命週期函式,我們可以vue-cli 專案中新建一個模板把下邊程式碼全都複製進去,然後F12開啟審查元素,觀察這些生命週期函式打印出來的log 裡的區別! <template> <div class

通過7個python函式理解區塊鏈

我想對於那裡的很多人來說,區塊鏈就是這種現象,很難不讓你頭腦發熱。我開始觀看視訊和閱讀文章,但對我個人而言,直到我編寫自己的簡單區塊鏈,我才真正理解它是什麼以及它的潛在應用價值。 我對區塊鏈的看法是它是一個公開的加密資料庫。如果你是亞馬遜並且你想使用該技術來跟蹤庫存水平,那

從 ES6 高階箭頭函式理解函式柯里化

前言:第一次看到多個連續箭頭函式是在一個 react 專案中,然鵝確認了下眼神,並不是對的人,因為看得一臉懵逼。em......於是開始各種搜尋,先是知道了多個連續箭頭函式就是 es6 的多次柯里化的寫法,對於函式柯里化,很久以前就知道這個名次,但是並不理解,也沒有去了解。為了弄明白多個連續箭頭函式,開始

SVM的個人理解

支援向量機–SVM大家都不會陌生,其實就是一種分類器。在集合空間中尋找一個能夠正確分隔這些元素的超平面,當只有兩個元素的時候,符合我們條件的超平面有很多,但是找到最佳的超平面的只有一個。在這裡面超平面是一條線,是一個wx+b=0的直線。 這裡面說一下我遇到的疑惑點: SMO(Sequ

邏輯迴歸演算法之交叉熵函式理解

之前看到Tensorflow中文社群網站(http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.htm)中訓練MNIST資料集有一個交叉熵函式,當時不是特別理解,想了很久為什麼這個函式就可以表示代價函式,

JavaScript函式理解

  本文參考自簡書javaScript之函式詳解   這裡從函式的建構函式開始。   在js中,函式都是物件,它們都是Function建構函式的例項。因此,類似Java中的物件,函式名可以理解為指向該Function建構函式例項的指標。下面很多內容都將與該點相關。 &nbs

陣列中的reduce 函式理解

第一次見到reduce 是在js 的高階程式設計中,它的意思是把一個數組減少為一個數,舉的例子是陣列中元素的求和。它接受一個函式作為引數,函式又有兩個引數,一個是prev, 前一個值,一個是next, 後一個值,然後函式體就是返回相加的值。 let array = [1, 3, 5]; let sum

關於fit(),transform(), fit_transform()函式理解

參考:https://datascience.stackexchange.com/questions/12321/difference-between-fit-and-fit-transform-in-scikit-learn-models?utm_medium=organi

OpenGl的glMatrixMode()函式理解

glMatrixMode()函式的引數,這個函式其實就是對接下來要做什麼進行一下宣告,也就是在要做下一步之前告訴計算機我要對“什麼”進行操作了,這個“什麼”在glMatrixMode的“()”裡的選項(引數)有3種模式: GL_PROJECTION 投影, GL_MODEL

【機器學習】SVM函式的計算

J=∑iαi−12∑i∑jαiαjdidjk(xi)Tk(xj)=∑iαi−12∑i∑jαiαjdidjK(xi,xj)subjectto∑αidi=0,0≤αi≤C 在優化好αi拉格朗日量後,我們得