本文主要是介绍ML(4)-核函数与再生核希尔伯特空间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
核函数与再生核希尔伯特空间
- 1.支持向量积-核函数
- 2.一个函数为核函数的条件
- 3.核函数与希尔伯特空间
- 3.1希尔伯特空间-Hilbert空间
1.支持向量积-核函数
核(kernel)的概念由Aizenman et al.于1964年引入模式识别领域,原文介绍的是势函数的方法。在那之后,核函数在模式识别领域沉积了很久。1992年Boser 等人的在解决支持向量机算法时,重新将核的概念引入机器学习领域;从此引发了核函数研究应用的热潮。一个最简单的应用就是:利用核方法扩展经典算法,将算法中的内积替换成核函数。
在支持向量机中,核函数是 将 原线性不可分的特征空间中的特征向量 x x x,映射到 线性可分的高维特征空间的特征向量 ϕ ( x ) \phi(x) ϕ(x),然后,特征向量 ϕ ( x ) \phi(x) ϕ(x)之间求内积的一个表达式。(核函数就是一个表达式)
k ( x n , x m ) = ϕ ( x n ) T ϕ ( x m ) 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′),样本(特征向量) { x i n } \{x_i^n\} {xin},gram矩阵 K = { K i , j } K=\{ K_{i,j} \} K={Ki,j}, K i , j = k ( x i , x j ) K_{i,j}=k(x_i,x_j) Ki,j=k(xi,xj)
[ 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 ) ] \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,都有 z T A z > 0 z^TAz > 0 zTAz>0。
具体做法:将样本 { x i = 1 i = n } \{x_{i=1}^{i=n}\} {xi=1i=n}带入函数 k ( x , x ′ ) k(x,x') k(x,x′),计算gram矩阵 K = { K i , j } K=\{ K_{i,j} \} K={Ki,j}, K i , j = k ( x i , x j ) K_{i,j}=k(x_i,x_j) Ki,j=k(xi,xj),判定gram矩阵的半正定性。
(连续化)定义:一个对称函数 k ( x , x ′ ) k(x,x') k(x,x′)是半正定的,当且仅当对于任意的函数g下式成立:
∫ X g ( x ) k ( x , x ′ ) g ( x ′ ) d x d x ′ ≥ 0 \int_\mathcal{X}g(x)k(x,x')g(x')dxdx'\ge0 ∫Xg(x)k(x,x′)g(x′)dxdx′≥0
通过Gram矩阵特征值分解(谱分解),可以将 k ( x i , x j ) k(x_i,x_j) k(xi,xj)表示成gram矩阵特征值与特征向量分量组合的形式:
Q T K Q = d i a g ( λ 1 , λ 2 , . . . , λ n ) = Λ Q^TKQ=diag(\lambda_1,\lambda_2,...,\lambda_n)=\Lambda QTKQ=diag(λ1,λ2,...,λn)=Λ
K = Q Λ Q T K=Q\Lambda Q^T K=QΛQT
Q Q Q为特征向量矩阵, v i v_i vi为n维向量,其第二个下标表示该向量分量:
Q = [ v 1 , v 2 , . . . , v n ] Q=[v_1,v_2,...,v_n] Q=[v1,v2,...,vn]
K = Q Λ Q T = [ λ 1 v 1 , λ 2 v 2 , . . . , λ n v n ] [ v 1 , v 2 , . . . , v n ] T K=Q\Lambda Q^T=[\lambda_1v_1,\lambda_2v_2,...,\lambda_nv_n][v_1,v_2,...,v_n]^T K=QΛQT=[λ1v1,λ2v2,...,λnvn][v1,v2,...,vn]T
= [ λ 1 v 11 λ 2 v 21 . . . λ n v n 1 λ 1 v 12 λ 2 v 22 . . . λ n v n 2 . . . . . . . . . . . . λ 1 v 1 n λ 2 v 2 n . . . λ n v n n ] [ v 11 v 12 . . . v 1 n v 21 v 22 . . . v 2 n . . . . . . . . . . . . v n 1 v n 2 . . . v n n ] =\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] = λ1v11λ1v12...λ1v1nλ2v21λ2v22...λ2v2n............λnvn1λnvn2...λnvnn v11v21...vn1v12v22...vn2............v1nv2n...vnn
k ( x i , x j ) = ∑ k = 1 n λ k v k i v k j k(x_i,x_j)=\sum_{k=1}^n\lambda_kv_{ki}v_{kj} k(xi,xj)=k=1∑nλkvkivkj
注意: v k i v_{ki} vki第一个下标表示:这是第 k k k个特征向量,第二个下标表示:这是第 k k k个特征向量的第 i i i个分量。
当特征 n → ∞ n\rightarrow \infty n→∞时,离散-》连续。 v k i v_{ki} vki可以看做第k个特征函数的第i个函数值,即 ψ k ( x i ) \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的特征向量特征值: A x = λ x Ax=\lambda x Ax=λx,矩阵A作用于(每一矩阵都对应一个变换)特征向量 x x x,其效果等价与对向量 x x x做尺度变换。(所以 x x x真是一个很神奇的方向呢!!)
每一个矩阵A都相似于一个上三角矩阵:通初等变换可以将一个矩阵转换成一个上三角阵,将这些初等变换乘在一起,就构成了一个变换矩阵。
每次的初等变换选择 特征值变换,且,矩阵A是一个对称矩阵,那矩阵A可以进行特征值分解:
Q T A Q = d i a g ( λ 1 , λ 2 , . . . , λ n ) Q^TAQ=diag(\lambda_1,\lambda_2,...,\lambda_n) QTAQ=diag(λ1,λ2,...,λn)
Q Q Q的列向量组成 A A A的一个完备标准正交向量系。
3.核函数与希尔伯特空间
原来线性映射 ϕ ( x ) \phi(x) ϕ(x) ,它将原始特征空间中的数据点映射到另一个高维空间中。其实这个高维空间在这里有一个华丽的名字——“再生核希尔伯特空间 (Reproducing Kernel Hilbert Space, RKHS)”[1]
所以:每一个核函数都对应着自己的一个再生核希尔伯特空间。
下面先介绍希尔波特空间,再介绍再生核希尔伯特空间。
3.1希尔伯特空间-Hilbert空间
从 泛函 说 希尔伯特空间[2]
希尔伯特空间 是 希尔伯特 在解决 无穷维线性方程组 时提出的概念,原来的线性代数理论都是基于有限维欧几里得空间的,无法适用,这迫使希尔伯特去思考无穷维欧几里得空间,也就是无穷序列空间的性质。
l 2 l^2 l2空间:所有2范数 ∑ x n 2 \sum x_n^2 ∑xn2(n为向量的下标)为有限的 无穷维向量 x x x 组成的空间。这是最早的Hilbert space。
L 2 L^2 L2空间:单位闭区间上所有平方可积的实函数(就是说 f(x)的平方在[0,1]上的积分存在且有限)按照函数的加法和数乘成为一个线性空间。
∫ f 2 ( x ) d x \int f^2(x)dx ∫f2(x)dx
L 2 L^2 L2希尔伯特空间是一个函数空间,其中定义内积如下:
< f , g > = ∫ ∣ f ∗ g ∣ d x <f,g>= \int|f*g|dx <f,g>=∫∣f∗g∣dx
范数:
‖ f ‖ = < f , f > = ∫ f 2 ( x ) d x ‖f‖=\sqrt{<f,f>}=\sqrt{\int f ^2(x)dx} ‖f‖=<f,f>=∫f2(x)dx
泛函:就是自变量为函数,因变量为实数的映射。一个简单的例子,某一个泛函的定义域在 L 2 L^2 L2Hilbert space上。
从 定义 说 希尔伯特空间
向量空间:空间中的点具有加法和数乘的操作
内积空间:向量空间上定义一个内积操作
赋范空间:根据内积可以定义一个范数
度量空间:范数可以用于定义一个度量
Hilbert Space:如果一个空间在其定义的度量下是完备的,那么这个空间叫做 Hilbert Space。[1]
完备性:一个空间上的任意柯西序列必收敛于空间中的某一点——相当于闭集的定义
对于常见的 R n \mathbb{R}^n Rn,满足内积运算,能够推导出 l 2 l_2 l2范数,且是完备的,所以是希尔伯特空间。欧几里德空间 是 希尔伯特空间的一个重要特例,一个抽象的希尔伯特空间中的元素往往被称为向量。在实际应用中,它可能代表了一列复数或是一个函数。
核函数的再生性
对于任意的 f ∈ H f\in \mathcal{H} f∈H,都有:
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 ∈ R d \mathcal{X}\in \mathbb{R}^d X∈Rd;和希尔伯特空间 H \mathcal{H} H,其中元素为 f : X → R f:\mathcal{X}\rightarrow \mathbb{R} f:X→R,如果存在 k : X → R k:\mathcal{X}\rightarrow \mathbb{R} k:X→R,满足如下条件,就叫 H \mathcal{H} H为再生核希尔伯特空间。
1. k k k有再生性: f ( x ) = < f ( . ) , k ( . , x ) > f(x)=<f(.),k(.,x)> f(x)=<f(.),k(.,x)>
2. k k k张成 H \mathcal{H} H: H = s p a n { k ( . , x ) : x ∈ X } ‾ \mathcal{H}=\overline{span\{k(.,x):x\in \mathcal{X}\}} H=span{k(.,x):x∈X}
所以说具有再生性的核都可以张成自己的一个再生核希尔伯特空间。
参考资料:
[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介绍了一个大概,从定义出发去验证希尔伯特空间
这篇关于ML(4)-核函数与再生核希尔伯特空间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!