核方法总结———(二)

接 《核方法总结———(一)》继续做摘录或总结笔记。

全文目录

一、核函数的基本性质

二 、常用核函数

    1、简单核函数

          线性核                  

          多项式核

          高斯核

            指数核

             Gamma指数核

2、核函数的学习

  三、概率核

        基于模型距离的核

       基于模型映射的核

            Fisher核

          TOP核 

四 、复杂对象上的核函数

4.1 集合上的核

4.2 序列上的核

4.3 图上的核

   4.3.1 基于状态转移的图核函数

     4.3.2 基于路径标识的特征映射方法

   4.3.3 基于最短路径的图核

   4.3.4 有限状态机

五、总结


一、核函数的基本性质

      设k1(. , .), k2(. , .) 是合法的核函数,α是一个非负数,f(.) 是任意一个函数,\phi是从X到R^{N}的映射, k3(. , .)是定义在 R_{N}\times R_{N}上的核函数,B是一个对称半正定矩阵。则可以证明如下操作生成的函数都是合法的核函数:

                                         k(x,x') = k1(x,x') + k2(x,x')

                                         k(x,x') = αk1(x,x')

                                         k(x,x') = k1(x,x')k2(x,x')

                                         k(x,x') = f(x)f(x')

                                         k(x,x') = k3(\phi(x),\phi(x'))

                                         k(x,x') = f(x)k1(x,x')f(x')

                                         k(x,x') = x^{T}Bx^{'}

    此外,通过以下方式生成的核函数也是合法的:

                                         k(x,x') = exp(k1(x,x'))

                                         k(x,x') = P(k1(x,x'))

                                         k(x,x') = exp(\frac{-\left \| x-x^{'} \right \|^{2}}{2\sigma ^{2}})

上式中,k1(x,x')是一个合法的核函数,P(x)是一个具有正系数的多项式,\sigma是一个任意常数。通过核函数的这些基本性质,可以从简单核函数生成复杂核函数。

二 、常用核函数

    1、简单核函数

          线性核                  

                                           k(x,x') = x\cdotx' + c

           核方法不仅包含特征映射,也包含非参建模,因此线性核在很多实用场景中也好于传统参数方法。典型的线性核方法如线性SVM。

          多项式核

                                          k(x,x') = (\alpha x\cdot x^{'} + c )^{d}  α>0, c>=0, d \in Z_{+}

           多项式核等价于对原始数据进行了特征扩展,不仅考虑映射特征,同时考虑不同特征之间的相关性。多项式核的缺点是,当阶数d比较大时,在取值时容易出现数值上的不稳定,可能出现过大或过小值。

          高斯核

           高斯核是应用最广泛的核函数,其式如下:

                                       k(x,x')=exp(-\alpha \left \| x -x')\right \|^{2}),

           α是控制核函数宽度的参数,高斯核是距离的函数,具有位置不变性,因与RBF形式一致,也称为RBF核。

            高斯核有多种扩展形式,如果在特征空间φ(x)计算核函数,则此时的核函数变成:

                                      k(x,x') = exp(-\alpha k1(x,x)- 2k1(x,x') + k1(x',x')))

            其中 k(x,x') = \phi (x)^{T}\phi (x') 

            指数核

              具有如下形式:

                                        k(x,x')=exp(-\alpha \left \| x-x' \right \|_{1})

             Gamma指数核

              另一种类似的核是Gamma指数核,如:

                                      k(x,x')=exp(-\alpha \left \| x - x' \right \|^{\gamma })

2、核函数的学习

            当数据分布比较复杂时,简单核函数可能无法使用,一种方是利用 第一节列出的核函数性质,由简单核函数生成复杂核函数,但人为定义的生成方式往往不能满足需要,为此,一种常用的核函数设计方法是将若干简单的核函数线性组合起来生成复杂核函数,其中组合系数通过学习得到。该方法可形式化如下:

k(x,x') = \sum _{r}w_{r}k_{r}(x,x')

其中k_{r}是简单核函数,w_{r}为相应的组合系数。

  三、概率核

        在某些情况下直接计算样板间的距离比较困难,概率核方法通过对数据建立概率模型,再基于该模型计算样本件的距离,从而可以解决直接计算样本间的距离比较困难(如序列样本)。

        概率核有两种设计方法,在基于模型距离的核方法中,对每个样本建立概率模型,再基于模型间的距离来定义样本间的距离。这一方法多用在比较复杂的样本(如集合或序列)情况下,基于单个样本可以建立独立的概率模型。而基于模型映射的核方法,对所有样本建立一个概率模型,再基于该概率模型实现对每个样本的映射。

        基于模型距离的核

        KL核是一种常见的基于模型距离的核,其思路是对样本x和x' 分别建立一个概率模型,然后基于这两个模型间的KL距离导出核函数。

         一种常用的KL核形式如下:

 k(x,x')=e^{-\beta (KL(p_{x}\parallel p_{x'}) + KL(p_{x}\parallel p_{x'})) + b}

         类似的,还有Bhattacharyya核,基于Bhattacharyya距离来计算两个分布的相似度,形式化如下:

                                                k(x,x')=\int \sqrt{p_{x}(z)} \sqrt{p_{x'}(z)}dz

       基于模型映射的核

            Fisher核

                                            k(\mathbf{x},\mathbf{x'};\theta ) = g(\mathbf{x};\theta )^{T}I(\theta )^{-1}g(\mathbf{x'};\theta )

其中 g(\mathbf{x};\theta ) 称为Fisher Score,其维度与 θ 一致g(\mathbf{x};\theta ) = \triangledown _{\theta }lnp(x\mid \theta ) 为 以\mathbf{\theta} 为参数的概率生成模型p(x\mid \theta ),对于任一x ,在该点处关于θ的梯度向量。I(\theta )为Fisher信息矩阵,定义为:

I(\theta ) = E_{x}[g(x;\theta )g(x;\theta )^{T}] 即为梯度向量的协方差阵。引入该矩阵的目的是对梯度向量做正规化。

          TOP核 

           是基于Fisher核的扩展。

                                                k(\mathbf{x},\mathbf{x'}) = f(\mathbf{x};\mathbf{\theta} )^{T}f(\mathbf{x^{'}};\mathbf{\theta} )

其中 f(\mathbf{x};\mathbf{\theta} ) = \triangledown _{\theta }lnv(x\mid \theta ) ,v为二分类任务的概率模型p(x|θ)所定义的后验概率差函数:

v(x;\mathbf{\theta }) = \frac{p(y=1| \mathbf{x},\mathbf{\theta} )}{p(y=-1| \mathbf{x},\mathbf{\theta}) }

四 、复杂对象上的核函数

           核方法可以应用到比较复杂的对象,如集合、序列、图结构,这种复杂对象一般有多种属性和较强的结构性。对于这些复杂对象,用核方法就可以无需将这些对象做向量化,只需设计刻画对象之间相似性的核函数,即可完成分类、回归等建模任务。

4.1 集合上的核

      首先定义集合之间的距离,一种简单的定义方法是利用集合中点对点的距离再生成集合间的距离:

      D(A,A') =f(\{d(a_{i},a_{j})|(a,a_{j}^{'})\in A\times A^{'}\})

其中d(a_{i},a'_{j}) 是两个集合中元素的点对点距离,f是一个聚合函数,如果对所有点对点距离取平均,则得到平均连接距离;如果取A中的每一点到A' 最近的点距离,以及A'中每一点到A的最近的点距离,并取这些距离的平均即为平均最小距离。另一种常用的集合之间的距离为Hausdorff距离: 

D(A,A') = max{\{max_{a_{i}}\{min_{a'_{j}}\{d(a_{i},a'_{j})\}\},max_{a'_{j}}\{min_{a_{i}}\{d(a_{i},a'_{j})\}\}}\}

     有了上述的距离定义,就可以定义集合上的核函数了,常用的方法就是距离替换法,就是将基于向量距离的核替换为基于集合的距离,

 k(x,x') = f(\left \| x -x' \right \|) ————> k(x,x') = f(\left \| -\alpha D(x,x')^{2} \right \|)

比如Gauss Kernel:

k(A,A') = e^{-\alpha D(A,A')^{2}}

基于集合间的距离生成核函数的另一种方式是标志集向量,选择一些“标志集”,记为(s_{1}s_{2},...s_{m}),求集合A到所有s_{i}的距离,

v(A) =[D(A,S_{1}),......,D(A,S_{m})]^{T}

利用任意一个基于向量的核函数即可以得到一个集合上的核函数:

k(A,A') = k(v(A),v(A'))

如果k(.,.) 是半正定的,则关于v(A)上的核函数也是半正定的。

    第三种生成集合核函数的方法是利用概率核方法,将集合表示成一个概率函数,再基于概率函数间的距离设计集合的核函数。

     测地线距离

    首先将一个集合中的元素进行聚类,得到每一类的中心即该类中的元素在整个集合中的比例,基于此,一个集合可以表示成一个元素是二元组的向量:

v(A) =[(p_{1},u_{1}),......,(p_{n},u_{n})]^{T}

其中p_{i}p'_{j} 分别为A和A' 的类中心向量。u_{i} 为第i类中元素的比例。基于此,A和A'的测地线距离可表示为:

 D(A,A') = \frac{\sum_{i}^{}\sum_{j}^{}f_{ij}d(p_{i},p'_{j})}{\sum_{i}^{}\sum_{j}^{}f_{ij}}

f_{ij}是可基于二元组向量v(A)、v(A')通过优化方法求出一组参数。EMD事实上描述了由一个离散分布S变换成另一个离散分布所需要的最小努力。

     \chi ^{2}距离

    是另一种描述离散分布相似性的度量方法。设两个m维的离散分布S和S',其\chi ^{2}距离定义如下:

\chi ^{2}(S,|S') = \frac{1}{2}\sum_{i=1}^{m}\frac{(u_{i}-u'_{i})^{2}}{(u_{i}+u'_{i})}

u_{i}u'_{i}分别为这两个离散分布的第 i 个分量。如果两个集合分别可以表示为离散分布S和S',则这两个集合之间的距离可以用这两个分布的\chi ^{2}距离表示: D(A,A')=\chi ^{2}(s,s')

     基于以上两种距离,可以用替换法得到集合上的核函数:

k(A,A') = e^{-\alpha D(A,A')^{2}}

    另一种概率核方法,即基于模型映射的方法(如Fisher核),可同样用于设计集合的核函数。首先需要对S中的所有元素建立一个全局概率模型,再求该模型对一个集合A所有元素的对数概率的梯度:

v(A) = \triangledown _{\mathbf{\theta} }\sum_{a}^{}logp(a|\mathbf{\theta })  a \in A

其中θ是参数向量,v(A)是关于θ的导数向量,则集合上的Fisher核可简单表示为:

k(A,A') = v(A)^{T}I^{-1}v(A')

其中I^{-1}为概率模型的Fisher信息矩阵(梯度向量的协方差阵)。

4.2 序列上的核

      如果对象是一个序列,如文本串、DNA等,则距离计算更复杂。处理方法有两种:一种简单的处理方法是忽略序列中的元素顺序,这时序列退化为一个集合,序列上的核函数退化为集合上的核函数。另一种方法只考虑局部顺序,文本处理的 N-gram词袋模型在实践中被广泛采用。

    在局部顺序方面,Lodhi提出了一种基于子串的序列核,称为SSK核(String Subsequence Kernel)。方法通过搜索两个序列中的共同子串描述连个序列的相似性,子串可以连续的,也可以不连续的。Lodhi证明这一核函数是对称半正定的,还设计了基于动态规划的快速算法,以高效计算两个序列的SSK核函数值。

    如果是全局顺序,一般需要对序列进行对齐(序列之间元素一一对应的方式),采用某种对齐策略,可以计算序列之间的距离。给定两个序列,总可搜索得到一种将x和x'对齐的策略使得依此方式得到的元素间的距离的和最小:

d(x,x') = min\sum_{\varepsilon }^{}d(\xi _{t}(x),\xi_{t}(x'))

    式中d为距离,\xi _{t}(x) 为依对齐\xi序列中排第t位的元素。这一优化任务可以用动态规划算法求解,通常称为动态时间弯折算法。文本处理中常用的编辑距离即是这一方法的特例。

    距离本身并不一定是合法的核函数,可以利用距离替换法或者标志集向量发生成序列的核函数。Neuhaus提出了一种核函数构造方法,定义如下:

k(x,x') = \frac{1}{2}(d(x,x_{0})^{2} + d(x',x_{0})^{2} - d(x,x')^{2})

x_{0}是某一参考序列。

    虽然d(x,x')一般不是个合法的核函数,但如果d选择合理,是可以构造合法的核函数。如shimodaira提出的:

d(x,x') = min_{\xi}\sum_{t }^{}\phi (\xi _{t}(x))^{T}\phi(\xi_{t}(x'))

其中\phi(.)是对序列中元素的特征映射。这一核函数可以表示成映射空间的内积,因此是对称半正定的。

     生成序列核的另一种方法是对序列进行概率建模,一是用模型间的距离构造核函数(如KL核),另一种是将序列映射为向量(如Fisher核)。还有一种方法的基本思路是,如果两个序列的联合概率分布式条件独立的:

p(x,x') =\sum_{c}^{}p(x|c)p(x'|c)p(c)

    上式右侧显然可以是两个向量的内积,因此联合概率分布是一个合法的核函数:

k(x,x') = p(x,x')

4.3 图上的核

      图是比序列更复杂的结构,如何定义两幅图之间的相似性成为创建核函数的关键。

 Haussler提出几种基于子结构的图核函数,称为卷积图核方法。

    具体地,设依某一关系R可以将图G分解成子结构的一个组合g=(g_{1},g_{2},g_{3}....g_{m}),记为g\in R^{-1}(G) ,表示g是依R的一个可能组合。如果该组合的上的一个函数k可以用下式来表示:

 k(g,g')= \prod_{i=1}^{D}k_{}(g_{i},g'_{i}),

则如下图核函数是对称半正定的:

K(G,G')= \sum_{g\in R^{-1}(G),g'\in R'^{-1}(G)}^{}k(g,g')

    卷积图核给出一种在图上构造核函数的方法,但依R分解子结构较困难,可以将子结构限制为部分路径,从而降低分解的复杂度,通过计算两幅图中部分路径的相似性来计算图之间的相似性。

   4.3.1 基于状态转移的图核函数

    基于这一思路Kashima给出一个基于状态转移的图核函数。是在两幅图上进行随机游走,通过随机游走对两幅图进行路径采样,通过对路径的相似性进行求和,即可得到两幅图的相似性。

    一个无向图G可由节点集合V核边集合E表示,如果V中的两个节点和边集合E表示,如果V中的两个节点v_{j} 和 v_{k}相邻,则二者被E中的一条边e_{jk}相连,记为j~k,为推论方便,可以假设图的顶点没有标识,而边是有标识的。

    设图G中节点间的跳转概率由矩阵P定义,其中p_{jk}表示由节点j到节点k的跳转概率。设在G上进行了t步随机游走后到达结束状态,所经过节点的下标序列为i_{1},i_{2},i_{3},....,i_{t+1},对应边上的标记序列为h_{1},h_{2},h_{3},....,h_{t}。设初始概率为p,结束概率为q,则路径h的概率为:

p(h|G) = q_{i_{t}+1}\prod_{j=1}^{t}p_{i_{j},i_{j+1}}p_{i_{1}}

若两个标记序列即路径h和h'长度不同,则相似性为0,否则相似性由定义在序列间的核函数确定:

k(h,h') = \prod_{i=1}^{t}k(h_{i},h'_{i})

两幅图G和G'间的距离为:

k(G,G')= \sum_{h}^{}\sum_{h'}^{}k(h,h')p(h|G)p(h'|G')

即两序列的核与两序列概率积在所有序列上求和。

      如果k是合法的核函数,则k(G,G')由于是和式,显然可以写成两个向量的内积,因而是一个合法的核函数,称之为边缘化核。

     4.3.2 基于路径标识的特征映射方法

    基于类似思路,Gartner提出了一种基于路径标识的特征映射方法。给定长度为n的一个标识序列s=(h_{1},...h_{n}),其中hi为路径第i条边上的标识。统计图G中包含着一序列的综述C_{s},由此得到一个特征映射:

\phi (G) =[C_{s_{1}},C_{s_{2}},C_{s_{3}},...]^{T}

    其中每维为对应一个可能的序列s。注:长度为n的s总数为\left | L \right |^{n},其中L为标识集,即L=\{h_{i}\},因n可以选取不同的数量,可以得到非常高的维度,基于这一特征,可以得到一个对称半正定核函数:

k(G,G') =\phi (G)^{T}\phi (G')

   4.3.3 基于最短路径的图核

    Borgwardt 提出一种基于最短路径的图核,和上面基本思路一致,但节点之间采用的最短路径标注,即节点之间的标注都在原图的最短路径上。因此首先要将原图转换成最短路径图。基于最短路径图可计算核函数:

k(G,G')= \sum_{h\in E}^{}\sum_{h' \in E'}^{}k(h_{i},h'_{j})

    其中E和E'分别为G和G'对应的最短路径图的边,即h和h'一定在最短路径上。

   4.3.4 有限状态机

    另一种常见的图结构是有限状态机,有限状态机之间的距离采用Rational核,一种简单的Rational核称为n-gram核。给定一个有限状态机G,所有可能的序列s都被赋以一个概率p_{G}(s),

定义s 中包含某子串的次数为\left | s \right |_{x},则G中包含x的期望次数为:

c(G,x) = \sum_{s}^{}p_{G}(s)\left | s \right |_{x}

基于这一统计次数,两个有限状态机G和G'之间的n-gram核函数可表示为:

k_{n}(G,G') =\sum_{\left | x \right |=n}^{}c(G,\mathbf{x})c(G',\mathbf{x})

因此n-gram 是对称半正定的,因此是合法核函数。

      以上几种图核函数的构造方法,都遵循将图做分解,用部分结构的相似性计算全局相似性。特别是将图分解成部分路径之后,相当于构造了以这些路径为索引的特征空间,从而将图与图之间的相似度转化为在特征空间的内积。

五、总结

       本文是学习《机器学习导论》(清华大学出版社,中文版,王东,2021年)的摘录总结或笔记。

      

    

   

      

      

         

                                             

                      

                                         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值