MachineLearning(4)-核函數與再生核希爾伯特空間

核函數與再生核希爾伯特空間

  • 1.支持向量積-核函數
  • 2.一個函數為核函數的條件
  • 3.核函數與希爾伯特空間
    • 3.1希爾伯特空間-Hilbert空間

1.支持向量積-核函數

核(kernel)的概念由Aizenman et al.于1964年引入模式識別領域,原文介紹的是勢函數的方法。在那之后,核函數在模式識別領域沉積了很久。1992年Boser 等人的在解決支持向量機算法時,重新將的概念引入機器學習領域;從此引發了核函數研究應用的熱潮。一個最簡單的應用就是:利用核方法擴展經典算法,將算法中的內積替換成核函數。

在支持向量機中,核函數是 將 原線性不可分的特征空間中的特征向量xxx,映射到 線性可分的高維特征空間的特征向量?(x)\phi(x)?(x),然后,特征向量?(x)\phi(x)?(x)之間求內積的一個表達式。(核函數就是一個表達式)
k(xn,xm)=?(xn)T?(xm)k(x_n,x_m)=\phi(x_n)^T\phi(x_m)k(xn?,xm?)=?(xn?)T?(xm?)

核函數的巧妙之處:高維空間中特征向量的內積表達式,可以直接用低維特征向量的各個維度的坐標表示。所以,只需將低維度特征x,x′x,x'x,x帶入核函數k(x,x′)k(x,x')k(x,x)求函數值,就等價于x?>?(x),x′?>?(x′)=>求內積<?(x),?(x′)>x->\phi(x) ,x'->\phi(x')=>求內積<\phi(x),\phi(x')>x?>?(x),x?>?(x)=><?(x),?(x)>的過程,當高維空間維很高時,內積求解十分緩慢,所以核函數是一個十分便利的工具。

基本概念: 核函數k(x,x′)k(x,x')k(x,x),樣本(特征向量){xin}\{x_i^n\}{xin?},gram矩陣K={Ki,j}K=\{ K_{i,j} \}K={Ki,j?},Ki,j=k(xi,xj)K_{i,j}=k(x_i,x_j)Ki,j?=k(xi?,xj?)
[k(x1,x1)k(x1,x2)...k(x1,xn)k(x2,x1)k(x2,x2)...k(x2,xn)............k(xn,x1)k(xn,x2)...k(xn,xn)]\left[ \begin{matrix} k(x_1,x_1) & k(x_1,x_2) & ... & k(x_1,x_n)\\ k(x_2,x_1) & k(x_2,x_2) & ... & k(x_2,x_n)\\ ... & ...& ... & ... & \\ k(x_n,x_1) & k(x_n,x_2) & ... & k(x_n,x_n) \end{matrix} \right] ?????k(x1?,x1?)k(x2?,x1?)...k(xn?,x1?)?k(x1?,x2?)k(x2?,x2?)...k(xn?,x2?)?............?k(x1?,xn?)k(x2?,xn?)...k(xn?,xn?)???????

詳細SVM與核函數參見(對偶問題的求解巴拉巴拉):https://cuijiahua.com/blog/2017/11/ml_9_svm_2.html



2.一個函數為核函數的條件

可以通過多種方式構造核函數,(1)原始的映射構造法、(2)核函數性質+簡單核函數構造法[RBF核函數就可以從此構造出來]、(3)概率生成式模型開始構造。

高維特征向量的內積 實際是 低維特征向量 各個分量的函數=》高維內積 是一個函數。但是,并非每一個函數都對應著一個高維內積。只有當一個函數滿足mercer定理時,它才能作為一個核函數。所以可以通過mercer定義判斷一個函數是否可以作為一個核函數。


Mercer定理: 對稱半正定的函數可以作為一個核函數。

(離散化)簡單理解:“半正定”三個字常見于矩陣分析中。此處,可通過判定對稱函數Gram 矩陣的半正定性,進而判斷源函數的半正定性質。一個n × n的實對稱矩陣A是正定的當且僅當對于所有的非零實系數向量z,都有zTAz>0z^TAz > 0zTAz>0

具體做法:將樣本{xi=1i=n}\{x_{i=1}^{i=n}\}{xi=1i=n?}帶入函數k(x,x′)k(x,x')k(x,x),計算gram矩陣K={Ki,j}K=\{ K_{i,j} \}K={Ki,j?},Ki,j=k(xi,xj)K_{i,j}=k(x_i,x_j)Ki,j?=k(xi?,xj?),判定gram矩陣的半正定性。

(連續化)定義:一個對稱函數k(x,x′)k(x,x')k(x,x)是半正定的,當且僅當對于任意的函數g下式成立:
∫Xg(x)k(x,x′)g(x′)dxdx′≥0\int_\mathcal{X}g(x)k(x,x')g(x')dxdx'\ge0X?g(x)k(x,x)g(x)dxdx0


通過Gram矩陣特征值分解(譜分解),可以將k(xi,xj)k(x_i,x_j)k(xi?,xj?)表示成gram矩陣特征值與特征向量分量組合的形式:
QTKQ=diag(λ1,λ2,...,λn)=ΛQ^TKQ=diag(\lambda_1,\lambda_2,...,\lambda_n)=\LambdaQTKQ=diag(λ1?,λ2?,...,λn?)=Λ

K=QΛQTK=Q\Lambda Q^TK=QΛQT

QQQ為特征向量矩陣,viv_ivi?為n維向量,其第二個下標表示該向量分量:
Q=[v1,v2,...,vn]Q=[v_1,v_2,...,v_n]Q=[v1?,v2?,...,vn?]

K=QΛQT=[λ1v1,λ2v2,...,λnvn][v1,v2,...,vn]TK=Q\Lambda Q^T=[\lambda_1v_1,\lambda_2v_2,...,\lambda_nv_n][v_1,v_2,...,v_n]^TK=QΛQT=[λ1?v1?,λ2?v2?,...,λn?vn?][v1?,v2?,...,vn?]T
=[λ1v11λ2v21...λnvn1λ1v12λ2v22...λnvn2............λ1v1nλ2v2n...λnvnn][v11v12...v1nv21v22...v2n............vn1vn2...vnn]=\left[ \begin{matrix} \lambda_1v_{11}&\lambda_2v_{21}&...&\lambda_nv_{n1}\\ \lambda_1v_{12}&\lambda_2v_{22}&...&\lambda_nv_{n2}\\ ... & ...& ... & ... & \\ \lambda_1v_{1n}&\lambda_2v_{2n}&...&\lambda_nv_{nn} \end{matrix} \right] \left[ \begin{matrix} v_{11}&v_{12}&...&v_{1n}\\ v_{21}&v_{22}&...&v_{2n}\\ ... & ...& ... & ... & \\ v_{n1}&v_{n2}&...&v_{nn} \end{matrix} \right]=?????λ1?v11?λ1?v12?...λ1?v1n??λ2?v21?λ2?v22?...λ2?v2n??............?λn?vn1?λn?vn2?...λn?vnn?????????????v11?v21?...vn1??v12?v22?...vn2??............?v1n?v2n?...vnn????????

k(xi,xj)=∑k=1nλkvkivkjk(x_i,x_j)=\sum_{k=1}^n\lambda_kv_{ki}v_{kj}k(xi?,xj?)=k=1n?λk?vki?vkj?

注意:vkiv_{ki}vki?第一個下標表示:這是第kkk個特征向量,第二個下標表示:這是第kkk個特征向量的第iii個分量。
當特征n→∞n\rightarrow \inftyn時,離散-》連續。vkiv_{ki}vki?可以看做第k個特征函數的第i個函數值,即ψk(xi)\psi_k(x_i)ψk?(xi?)。此時,核函數可以寫為:
k(x,x′)=∑jλjψj(x)ψj(x′)k(x,x')=\sum_{j}\lambda_j\psi _j(x)\psi _j(x')k(x,x)=j?λj?ψj?(x)ψj?(x)


用到的工具:

Mercer定理的一點證明: https://blog.csdn.net/sinat_22510827/article/details/79116612
矩陣特征值分解:https://blog.csdn.net/weixin_42018112/article/details/80250206:
矩陣A的特征向量特征值:Ax=λxAx=\lambda xAx=λx,矩陣A作用于(每一矩陣都對應一個變換)特征向量xxx,其效果等價與對向量xxx做尺度變換。(所以xxx真是一個很神奇的方向呢!!)

每一個矩陣A都相似于一個上三角矩陣:通初等變換可以將一個矩陣轉換成一個上三角陣,將這些初等變換乘在一起,就構成了一個變換矩陣。

每次的初等變換選擇 特征值變換,且,矩陣A是一個對稱矩陣,那矩陣A可以進行特征值分解:
QTAQ=diag(λ1,λ2,...,λn)Q^TAQ=diag(\lambda_1,\lambda_2,...,\lambda_n)QTAQ=diag(λ1?,λ2?,...,λn?)

QQQ的列向量組成AAA的一個完備標準正交向量系。



3.核函數與希爾伯特空間

原來線性映射?(x)\phi(x)?(x) ,它將原始特征空間中的數據點映射到另一個高維空間中。其實這個高維空間在這里有一個華麗的名字——“再生核希爾伯特空間 (Reproducing Kernel Hilbert Space, RKHS)”[1]

所以:每一個核函數都對應著自己的一個再生核希爾伯特空間。

下面先介紹希爾波特空間,再介紹再生核希爾伯特空間。

3.1希爾伯特空間-Hilbert空間

從 泛函 說 希爾伯特空間[2]
希爾伯特空間 是 希爾伯特 在解決 無窮維線性方程組 時提出的概念,原來的線性代數理論都是基于有限維歐幾里得空間的,無法適用,這迫使希爾伯特去思考無窮維歐幾里得空間,也就是無窮序列空間的性質。

l2l^2l2空間:所有2范數∑xn2\sum x_n^2xn2?(n為向量的下標)為有限的 無窮維向量xxx 組成的空間。這是最早的Hilbert space。

L2L^2L2空間:單位閉區間上所有平方可積的實函數(就是說 f(x)的平方在[0,1]上的積分存在且有限)按照函數的加法和數乘成為一個線性空間。
∫f2(x)dx\int f^2(x)dxf2(x)dx

L2L^2L2希爾伯特空間是一個函數空間,其中定義內積如下:
<f,g>=∫∣f?g∣dx<f,g>= \int|f*g|dx<fg>=f?gdx

范數:
‖f‖=<f,f>=∫f2(x)dx‖f‖=\sqrt{<f,f>}=\sqrt{\int f ^2(x)dx}f=<ff>?=f2(x)dx?

泛函:就是自變量為函數,因變量為實數的映射。一個簡單的例子,某一個泛函的定義域在L2L^2L2Hilbert space上。


從 定義 說 希爾伯特空間
向量空間:空間中的點具有加法和數乘的操作
內積空間:向量空間上定義一個內積操作
賦范空間:根據內積可以定義一個范數
度量空間:范數可以用于定義一個度量
Hilbert Space:如果一個空間在其定義的度量下是完備的,那么這個空間叫做 Hilbert Space。[1]
完備性:一個空間上的任意柯西序列必收斂于空間中的某一點——相當于閉集的定義

對于常見的Rn\mathbb{R}^nRn,滿足內積運算,能夠推導出l2l_2l2?范數,且是完備的,所以是希爾伯特空間。歐幾里德空間 是 希爾伯特空間的一個重要特例,一個抽象的希爾伯特空間中的元素往往被稱為向量。在實際應用中,它可能代表了一列復數或是一個函數。


核函數的再生性
對于任意的f∈Hf\in \mathcal{H}fH,都有:
f(x)=<f(.),k(.,x)>f(x)=<f(.),k(.,x)>f(x)=<f(.),k(.,x)>

k(.,.)被稱為希爾伯特空間H\mathcal{H}H的再生核。
由核的再生性還可以推到出:
k(x,x′)=<k(x,.),k(.,x′)>k(x,x')=<k(x,.),k(.,x')>k(x,x)=<k(x,.),k(.,x)>


再生核希爾伯特空間: 由具有再生性的核 張成的希爾伯特空間
定義:對于一個緊致的X∈Rd\mathcal{X}\in \mathbb{R}^dXRd;和希爾伯特空間H\mathcal{H}H,其中元素為f:X→Rf:\mathcal{X}\rightarrow \mathbb{R}f:XR,如果存在k:X→Rk:\mathcal{X}\rightarrow \mathbb{R}k:XR,滿足如下條件,就叫H\mathcal{H}H為再生核希爾伯特空間。
1.kkk有再生性:f(x)=<f(.),k(.,x)>f(x)=<f(.),k(.,x)>f(x)=<f(.),k(.,x)>
2.kkk張成H\mathcal{H}HH=span{k(.,x):x∈X} ̄\mathcal{H}=\overline{span\{k(.,x):x\in \mathcal{X}\}}H=span{k(.,x):xX}?

所以說具有再生性的核都可以張成自己的一個再生核希爾伯特空間。

參考資料:
[1]https://blog.csdn.net/hggjgff/article/details/83828394
[2]再生核希爾伯特空間:https://wenku.baidu.com/view/09df5b7a11a6f524ccbff121dd36a32d7375c7c6.html
[3]希爾伯特空間,數學空間的神秘之地 :http://www.sohu.com/a/315344647_348129介紹了一個大概,從定義出發去驗證希爾伯特空間


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445125.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445125.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445125.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CRegKey 注冊表操作

1.簡介 CRegKey提供了對系統注冊表的操作方法&#xff0c;通過CRegKey類&#xff0c;可以方便的打開注冊表的某個分支或子鍵&#xff08;CRegKey::Open&#xff09;&#xff0c;可以方便的修改一個鍵的鍵值&#xff08;CRegKey::SetValue&#xff09;&#xff0c;也可以查詢某…

進程基礎

進程的基本概念 程序順序執行的特征&#xff1a; 1&#xff09;順序性&#xff1a;處理機嚴格按照程序所規定的順序執行&#xff0c;每一步操作必須在下一步操作開始前執行 2&#xff09;封閉性&#xff1a;程序在封閉的環境下運行&#xff0c;程序獨占資源&#xff0c;資源的狀…

用Docker容器自帶的tensorflow serving部署模型對外服務

相信很多人和我一樣&#xff0c;在試圖安裝tensorflow serving的時候&#xff0c;翻遍了網上的博客和官網文檔&#xff0c;安裝都是以失敗而告終&#xff0c;我也是一樣&#xff0c;這個問題折磨了我兩個星期之久&#xff0c;都快放棄了。幸運的是在同事的建議下&#xff0c;我…

C資源

云風最近寫了一篇博客《C語言的前世今生》。作為長期使用C語言開發網絡游戲服務器的程序員&#xff0c;云風是有理由寫這樣一篇文字&#xff0c;不過還是感覺談的不夠深入&#xff0c;C語言在業界使用的現狀沒有怎么描寫&#xff0c;有些意猶未盡。在這里想比較系統的談談個人對…

學點數學(2)-特征函數

特征函數1.數列特征方程2.矩陣特征方程3.微分方程特征方程4.積分方程特征方程特征方程是為研究相應的數學對象而引入的一些等式&#xff0c;這些等式描述了特定對象的特性。依據研究的對象不同&#xff0c;特征方程包括數列特征方程、矩陣特征方程、微分方程特征方程、積分方程…

GCC如何產生core dump

先決條件1.安裝apport&#xff08;automatically generate crash reports for debugging&#xff09;2.修改/etc/security/limits.conf文件&#xff0c;使允許core dump&#xff0c;或者用ulimit -c unlimited設置core dump文件的大小為unlimited3.C/C的編譯開關-g&#xff08;…

經典的進程同步問題

經典的進程同步問題 普通版&#xff1a;一類進程作為生產者&#xff0c;生產產品&#xff0c;生產的產品放入一個緩沖區&#xff0c;消費者從緩沖區中取出產品&#xff0c;需要保證生產者不可以向滿的緩沖區中添加產品&#xff0c;消費者不可以從空的緩沖區中取出產品。同一時刻…

面試題匯總---深度學習(圖像識別,NLP內容)

文章目錄1.基本概念1.1 為什么神經網絡中深度網絡的表現比廣度網絡表現好&#xff1f;1.2 推導BP算法1.3 什么是梯度消失和梯度爆炸&#xff1f;1.4 常用的激活函數有哪些&#xff1f;1.5 常用的參數更新方法有哪些&#xff1f;1.6 解決過擬合的方法&#xff1f;數據層面模型層…

Linux-2.6.25 TCPIP函數調用大致流程

Linux-2.6.25 TCPIP函數調用大致流程學習目的&#xff0c;隨手筆記。函數和文字說明會不斷補充更新。Changelog2008.10.08 最近找工作忙。暫時緩緩插口層系統調用sendsys_sendsys_sendtosendtosys_sendtosock_sendmsgsendmsgsys_sendmsgsock_sendmsgwritesys_writevfs_write…

Python(28)-文件,os模塊

文件1. 文件2. 文件的基本操作3. 讀取文件open()3.1 文件指針: 標記從哪一個位置開始讀取數據.3.2 文件的打開方式mode3.3 文件按行讀取3.3.1 readline()3.3.2 readlines()4.文件輸出f.write(),print()5.文件復制5.1 小文件復制&#xff08;搬家&#xff09;5.2 大文件復制&…

IOCP的程序

C代碼 #include <winsock2.h> #include <mswsock.h> #include <windows.h> #include <stdio.h> #include <stdlib.h> #include <assert.h> #include "vld.h" #pragma message("automatic link to ws2_32.lib and…

PaperNotes(3)-圖像分割-RCNN-FCN-Boxsup

圖像分割算法對比小結1.{基本概念}2.{R-CNN}2.1R-CNN 網絡結構選擇性搜索算法為什么選擇SVM作分類器邊框回歸2.2{R-CNN 訓練}2.3{R-CNN實驗結果}2.4{R-CNN語義分割}2.5{補充材料}2.5.1{R-CNN建議區域放縮}2.5.2{IOU閾值設置不一樣的原因}2.5.3{Bounding-box回歸修正}2.6{R-CNN存…

Python模塊(3)--PIL 簡易使用教程

PIL模塊-用與記1.圖片導入Image.open()2.圖像顯示.show()4.查看圖片屬性.format,.size,.mode3.圖像格式轉換.convert()4.圖像模式“L”&#xff0c;“RGB”,"CYMK"5. 圖片旋轉.rotate()旋轉方式1&#xff1a;旋轉不擴展旋轉方式2&#xff1a;旋轉擴展旋轉方式3&#…

日志級別 debug info warn eirror fatal

日志級別 debug info warn eirror fatal 軟件中總免不了要使用諸如 Log4net, Log4j, Tracer 等東東來寫日志&#xff0c;不管用什么&#xff0c;這些東東大多是大同小異的&#xff0c;一般都提供了這樣5個日志級別&#xff1a; Debug Info Warn Error Fatal一個等級比一個高&…

輸入輸出系統

I/O設備&#xff1a;輸入輸出和存儲功能的設備 I/O設備的分類 按傳輸的速度&#xff1a; 低速設備&#xff08;如鍵盤、鼠標、語音輸入輸出設備&#xff09; 中速設備&#xff08;如行式打印機、激光打印機等&#xff09; 高速設備&#xff08;如磁帶機、磁盤機、光盤機等&…

vue2源碼解析---v-model雙向數據綁定

什么是v-model v-model 是 Vue 中的一個指令&#xff0c;用于實現表單元素與 Vue 實例中數據的雙向綁定。這意味著當表單元素的值發生變化時&#xff0c;Vue 實例中的數據也會隨之更新 工作原理 生成ast樹 本質上是語法糖 結合了v-bind和v-on兩個指令 示例代碼 new Vue({e…

php收集的精典代碼

1. οncοntextmenu"window.event.return&#xff06;#118aluefalse" 將徹底屏蔽鼠標右鍵 <table border οncοntextmenureturn(false)><td>no</table> 可用于Table 2. <body onselectstart"return false"> 取消選取、防止復制…

python外卷(7)--glob

glob模塊1.glob.glob()2.對比os.listdir()glob是python自帶的一個操作文件的模塊&#xff0c;可用于查找 指定路徑 中 匹配的 文件。1.glob.glob() 下面是一個測試文件路徑&#xff1a; (base) pppp-System-Product-Name:~/Desktop/test_glob$ tree . ├── a │ ├── 1…

Sublime Text 2配置強大的IDE開發環境,運行java

Sublime Text 2是我無意中發現的、據說十分強大的、便捷的編輯器&#xff0c;許多程序員都投入到Sublime Text 2的懷抱中。 1 配置java開發環境的方法如下&#xff1a; 在jdk安裝目錄下的bin文件夾下新建一個bat格式的文件&#xff0c;文件命為javacexec.bat。 如果是在Wind…

thinkphp的快捷方法實例化對象

D、F、S、C、L、A、I 他們都在functions.php這個文件家 下面我分別說明一下他們的功能 D&#xff08;&#xff09; 加載Model類 M&#xff08;&#xff09; 加載Model類 A&#xff08;&#xff09; 加載Action類 L&#xff08;&#xff09; 獲取語言定義 C&#xff08;&#xf…