Kernel

Kernel Method

  • Kernel
  • 前言
  • 一、General introduction to kernel methods
    • 1.The Basic Idea
    • 2.Inner Product Matrix(Gram Matrix/Kernel Matrix)
  • 二、Dual Representation
  • 三、PCA and KPCA
    • 1.Principal Component Analysis (PCA)
    • 2.Kernel Principal Component Analysis (KPCA)
  • 四、LDA and GDA
    • 1.Linear Discriminant Analysis(LDA)
    • 2.Generalized Discriminant Analysis(GDA)
  • 五、Hard-margin and Soft-margin SVMs
    • 1.Hard-margin SVMs
    • 2.Soft-margin SVMs
  • 总结

前言

参考书籍:
[1]Kernel Methods for Pattern Analysis
[2]learning with Kernels:Support Vector Machines, Regularization, Optimization and Beyond

一、General introduction to kernel methods

1.The Basic Idea

①mapping

φ将二维空间映射到三维空间,这里面有一个映射特点:z1z_{1}z1z3z_{3}z3恒为正,z2z_{2}z2要根据x1x_{1}x1x2x_{2}x2乘积的值而定,因此可以看到feature space Η坐标全在右上象限上。
在original space x上,想要分开两个类,就需要使用椭圆:x12a2+x22b2=1\frac{x_{1}^{2}}{a^{2}}+\frac{x_{2}^{ 2}}{b^{2}}=1a2x12+b2x22=1,但是在feature space H中只要使用平面就可以分离两个类。

(注:z3z_{3}z3下的分母应该是b2b^{2}b2
通过上面式子转换,椭圆式就变成了一个平面方程,本来在原始空间中要用一个非线性的椭圆,但是在映射空间中只要使用一个线性的平面就可以实现类别分离。

②kernel function

利用kernel function将原始空间上的点投影到映射空间,这里面的映射函数φ(x1,x2)=(x12,2x1x2,x22)=(z1,z2,z3)φ(x_{1},x_{2})=(x_{1}^{2},\sqrt{2}x_{1}x_{2},x_{2}^{2})=(z_{1},z_{2},z_{3})φ(x1,x2)=(x12,2

x1x2,x22)=(z1,z2,z3)
然后对投影后的点进行内积<φ(x1,x2),φ(x1′,x2′)>=(<x,x′>)2=k(x,x′)<φ(x_{1},x_{2}),φ(x_{1}^{'},x_{2}^{'})>=(<x,x^{'}>)^{2}=k(x,x^{'})<φ(x1,x2),φ(x1,x2)>=(<x,x>)2=k(x,x)(注:具体过程如上图所示),等式后面两项就是我们将要定义的kernel function。
在算映射空间的内积时,只要知道kernel function,φ函数有没有都不影响求映射空间的内积。
③process
♦Kernel Methods work by
☞embedding data in a vector space(with more high dimensionality):将我们的数据送入一个新的向量空间上面,一般希望这个空间具有比较高的纬度。
☞looking for(linear)relations in such space:要想办法在这个空间上找到一个线性关系,将它们分开。
♦If map is chosen suitably,complex relations can be simplified,and easily detected:如果选择到一个比较适当的空间,复杂的关系就会变得比较简单,而且容易被发现。
♦Much of the geometry of the data in the embedding space(relative position)is contained in all pairwise inner products
♦In many cases,inner product in the embedding space is very cheap to compute
内积可以帮我们决定高维空间的几何性质。几何性质:距离和角度。
③Distance in the Feature Space
在映射空间中两点的距离平方可以如下图中表示的那样

这样的话,两点之间的距离就转化成内积:
<φ(x),φ(x)>−2<φ(x),φ(x′)>+<φ(x′),φ(x′)>=k(x,x)−2k(x,x′)+k(x′,x′)<φ(x),φ(x)>-2<φ(x),φ(x^{'})>+<φ(x^{'}),φ(x^{'})>=k(x,x)-2k(x,x^{'})+k(x^{'},x^{'})<φ(x),φ(x)>2<φ(x),φ(x)>+<φ(x),φ(x)>=k(x,x)2k(x,x)+k(x,x)
只要知道Kernel Function,我们就能得到两个点之间的距离,而并不需要去关心φ(x)φ(x)φ(x)长什么样子。
④Angle in the Feature Space
在映射空间中两点的角度可以如下图中表示的那样

因此只要知道Kernel Function,就能知道两点在空间中的角度。
⑤总结
映射空间中的距离和角度都可以用内积表示,φ(x)φ(x)φ(x)到底长什么样子其实就变得对我们来说不重要了。

2.Inner Product Matrix(Gram Matrix/Kernel Matrix)

根据第一节的思想,n个点之间的内积就可以有一个内积矩阵:

①A Simple Recognition Algorithm
yiy_{i}yi是标签,只有两个类别+1和-1,然后利用φφφ将x映射到更高维空间φ(x)φ(x)φ(x),下面就是投影之后的空间

然后算中心点,也就是当前类别之后求平均得到c+c_{+}c+以及c−c_{-}c

现在我们主要的想法就是找一条线将两个类分开,先找出两个中心点向量:w=c+−c−w=c_{+}-c_{-}w=c+c

然后从中心点出发,找出垂直平分w的点c=12(c++c−)c=\frac{1}{2}(c_{+}+c_{-})c=21(c++c),也就是下方蓝色线和红色线的交点

现在当测试点进入的时候,先进行的就是feature mapping,之后就是算角度,判断标签y是+1还是-1

两个向量之间的内积要小于零,这样就能保证角度是在0-180°之间,当角度小于90°的时候,就表明表示是+1,90°-180°表明y是-1



利用sgn将上面的关系转换成关系式(sgn取内积的正负号)

接下来就是计算上面的式子:y=sgn(<φ(x)−c,w>)y=sgn(<φ(x)-c,w>)y=sgn(<φ(x)c,w>)
第一个方法:已知φ
直接将所有的sample送到高维空间中去,直接计算。
第二种方法:不知道φ,知道kernel function
将表达是化成内积形式,这样就不需要feature mapping。如下所示:

②kernel function and feature mapping
因此就形成下面几个问题:

●只要知道kernel function,φ就不是必须的
●只要知道kernel function就可以达到计算需求
●有限半正定的kernel matrix可以使用
●k和φ是一一对应的
●知道kernel function 可以构建feature space

One definition:
Finitely positive semi-definite functions

One theorem:
Characterization of kernels

③一些常用的核函数


二、Dual Representation

Dual Representation主要求一个线性函数表达式:f(x)=wTφ(x)+bf(x)=w^{T}φ(x)+bf(x)=wTφ(x)+b

因此需要求解wTw^{T}wTbbb,在我们上一个例子中,对w的求解就是相当于求φ(xi)φ(x_{i})φ(xi)的线性组合,系数αiα_{i}αi的数量和样本数量有关,假设w是100维的,α的值是有可能大于这个值的也有可能小于这个值。
上面的概念可以总结成下面的两个式子

最后也可以化成内积的表达形式,有利于减少计算复杂度

注意w和α维度的区别

一般投影流程


三、PCA and KPCA

具有降噪功能,除去一些对数据结构影响很小的特征

1.Principal Component Analysis (PCA)


对下面的数据进行投影,投影到蓝色的线的variance是最大的

这里需要用到投影的知识:


寻找投影坐标的过程,先找到一个投影最大的轴


前提条件:均值为零

现在就是优化找出v,使用拉格朗日乘法

这里可以看出v和λ一个是特征值一个是特征向量

因此λ最大就可以得到argmaxvTCvargmax v^{T}CvargmaxvTCv就是最大

由于直接是特征向量和特征值,因此它们相互正交,很好的满足了轴之间的对称垂直性。

2.Kernel Principal Component Analysis (KPCA)

先进行维度投影然后在使用PCA,直接投影计算是没有办法进行的,因为我们是不知道φ(feature mapping)

接下来就需要将C变成与kernel function有关的式子

先观察kernel matrix








四、LDA and GDA

这里面还是需要用到投影的知识

1.Linear Discriminant Analysis(LDA)

了解LDA,要先知道LDA和PCA的区别,假设有两个群
①PCA:找到两个群投影的最大variance,也就是投影之后散的最开的,但是如果作分类就会发现始终有个地方是重叠的,无法区分类别。
②LDA:LDA可以解决PCA遗留的缺陷,也就是投影之后两个群之间的mean分隔最大。而且每个群自身的variance越集中越好。(这里面可以理解成类别,类别之间尽量保持不交叉)

LDA具备的属性

符号定义

将所有的样本投射到方向v,每一个类有不一样的投影mean,也就是说要分别计算

●Linear Discriminant Analysis-Between-class scatter matrix
每个类别之间的mean相减平方和

这里面的转换过程和KPCA相似

上面的式子中已经计算了mi−mjm_{i}-m_{j}mimj,后面就不会计算了,但是在一些资料里面会重复计算,具体如下面所示,但是两个是一样的。


由上式化简之后就只要计算下面的那个式子

本来需要考虑下面三个mean之间的距离尽可能大

经过转换之后可以化成下面的关系

这就是组间分散矩阵
●Linear Discriminant Analysis-Within-class scatter matrix
这里就是希望组内mean越小越好,说明类内是比较集中的,对象就变成了样本实例,而不是上面样本空间


●优化目标:最大化组间距离之和,最小化组内距离之和
这里面用了一个思想,固定分母,优化分子,最后化成求广义逆

v的计算式如下是为了保证vTSwLDAV=1v^{T}S_{w}^{LDA}V=1vTSwLDAV=1

2.Generalized Discriminant Analysis(GDA)

符号定义

为了方便,前提假设样本的均值是零,类间距离和LDA相同,但是类内距离计算不同,含义投影之后的点越往中心集中越好,相当于每个点都减去了m0m_{0}m0,这样所有点都要往中心靠齐。


计算过程:
1化成B,只留外面一个1N\frac{1}{N}N1便于后面化简消去






五、Hard-margin and Soft-margin SVMs

SVM中的一个比较重要的思想,将优化问题转成拉格朗日问题

除此之外还有一个比较重要的理论:KKT
这里面有一个优化方向target,三个优化条件constrain

现在假设的条件是在x∗x^{*}x上取得minf(x)minf(x)minf(x),因此g1g_{1}g1g2g_{2}g2取值是零,而g3g_{3}g3无法取到零,只能取小于零的数,因此只有g1g_{1}g1g2g_{2}g2是有效的(active),g3g_{3}g3无效,由下图可以看出f(x)f(x)f(x)的导数可以由g1g_{1}g1g2g_{2}g2的导数表示,因此就有如下表达式:▽f(x)=α1(−▽g1)+α2▽g2▽f(x)=α_{1}(-▽g_{1})+α_{2}▽g_{2}f(x)=α1(g1)+α2g2
根据方向α1、α2α_{1}、α_{2}α1α2需要大于零,α3α_{3}α3等于零

可以观察到只有不等式才有限制,而且不等式要化成小于等于零的情况,等式系数是没有限制的

1.Hard-margin SVMs

首先考虑二分类问题

样本散点图如下所示,因此需要找一条线分开两类,这条线的选择十分多,因此需要选择最中间的那条,也就是两个类之间最大的那个距离

wTx+b=−1/+1w^{T}x+b=-1/+1wTx+b=1/+1其中这个-1/+1是可以任意取值的,如果取-2/+2的话,两边同时除2之后是等价的,我们希望上面的值带入之后都是大于+1的数,下方的值带入是小于-1的数

计算边缘距离


可以将上面的式子化成拉格朗日乘子




这一步将W(α)W(α)W(α)矩阵化

之后优化目标就变成下式

从下图中可以观察到,在虚线上的α是大于零的,其余的都是等于零的,因此在训练的过程中,只有边缘点是起作用的,其他点都没有作用


计算b的过程,其实就是当α大于零的时候

2.Soft-margin SVMs

problem one:当类无法用直线或者平面分开的时候,可以容忍在分割的时候存在一些误差,如下面所示的两个类,它们是无法完全分开的。

problem two:过拟合问题

由于上面两个问题,因此需要对边间条件进行放松,允许存在误差分类。


C增加,就会导致ξ相对会减小,这样的话边界就相当于减小了,因为容许误差的范围变小了。

上面的式子化成拉格朗日乘式,加入了两个系数α和β,分别对w、b、ξ求导,可以得到下面的式子。可以发现C的值和α、β是有关系的。

如果进行了空间映射,就可以表示成下面的式子:

得到w的L2-norm以及xix_{i}xi的投影坐标

将上面求出的值,代入优化目标函数中

化简之后就得到下面的式子

有了优化目标,就可以得到一个最优解,之后就是将新的sample代入进去判断是来自那个类的以及具体在哪个区域,这里主要就是根据KKT条件进行分析。

根据上面可以得到两个式子,然后由这两个式子进行分析(注意这里面是建立在α、β、C≥0的条件):
①当α=0时,这时候β就是等于C,因此ξ就是等于0,计算表达式不为零,因此只能在界限两端;
②当0<α<C时,这样β就不为零,ξ就必须等于零,而且计算表达式要等于零,因此点是在界限上面的;
③当a=C时,β就是为零,因此ξ可取任意值,而表达式必须为零,所有点是在界限之间。




多分类SVM


总结


核方法(kernel Method)相关推荐

  1. 核方法(kernel method)的主要思想

    本文对核方法(kernel method)进行简要的介绍. 核方法的主要思想是基于这样一个假设:"在低维空间中不能线性分割的点集,通过转化为高维空间中的点集时,很有可能变为线性可分的&quo ...

  2. 【优化】核方法(kernel method)超简说明

    本文不做数学推导,仅从最简单的概念上讲解核方法. 问题 有训练样本 x i x_i xi​,其标定 y i y_i yi​, i=1,2-N. 欲求解一个回归函数 f ( z ) f(z) f(z), ...

  3. Kernel Method核方法—应用与理解

    前一篇主要梳理了几个基本概念以及相关关系,这一篇主要针对核方法的应用进行讨论,并理解核方法的思想,了解为什么要引入核方法. 核方法在机器学习中是一种灵活的技术,主要归结为两个方面: 非线性问题转换为高 ...

  4. Kernel Method核方法—基本概念

    这里只是简单叙述了核方法中运用到的几个概念和相互的关系,包括什么是核函数Kernel function.正定函数Positive definite function.再生核希尔伯特空间Reproduc ...

  5. 机器学习与高维信息检索 - Note 6 - 核, 核方法与核函数(Kernels and the Kernel Trick)

    Note 6 核, 核方法与核函数 到目前为止,我们所讨论的机器学习算法的成功都依赖于对输入数据分布的假设.例如,PCA的效果越好,数据围绕线性子空间分布.或者在线性判别分析中,我们假设类的高斯分布, ...

  6. matlab求logistics映射 的le_高维映射 与 核方法(Kernel Methods)

    高维映射跟核方法的概念很容易混淆. 高维映射通过将样本从原始空间映射到一个更高维的特征空间,从而解决了低纬下难以解决的问题. 核方法往往跟高维映射配合使用,可以看做是一种技巧,可以通过它来避免这种映射 ...

  7. DNN盛行的当下,老旧的核(kernel)方法或能打开神经网络的魔盒

    ©作者 | 杜伟 来源 | 机器之心 重新思考「老旧的」核(kernel)方法,或许可以破解深度学习的奥秘. 在机器学习(ML)的世界,人工神经网络(ANN)越来越大的演化趋势以及超大规模网络取得的成 ...

  8. paper 6:支持向量机系列三:Kernel —— 介绍核方法,并由此将支持向量机推广到非线性的情况。...

    前面我们介绍了线性情况下的支持向量机,它通过寻找一个线性的超平面来达到对数据进行分类的目的.不过,由于是线性方法,所以对非线性的数据就没有办法处理了.例如图中的两类数据,分别分布为两个圆圈的形状,不论 ...

  9. 关系抽取论文整理,核方法、远程监督的重点都在这里

    来源 | CSDN 博客 作者 | Matt_sh,编辑 | Carol 来源 | CSDN云计算(ID:CSDNcloud) 本文是个人阅读文章的笔记整理,没有涉及到深度学习在关系抽取中的应用. 笔 ...

  10. Kernel Method的理解

    kernel method是针对低维线性不可分而提出的一种解决方法,在PRML中有一章节的介绍,对其理解,也是迭代更进的过程. 简单来说,kernel method是一种低维和高维特征空间映射的方法, ...

最新文章

  1. bash mysql_解决bash: mysql: command not found 的方法
  2. 数据库表DML操作不了 可能是被锁了
  3. nagios 使用mysql_Nagios监控MySQL
  4. Asp.Net Core Blazor之容器部署
  5. POJ 1944 Fiber Communications (枚举 + 并查集 OR 线段树)
  6. arcgis批量将栅格里的nodata转为0
  7. java 缓存行填充_缓存伪共享问题以及解决方案缓存行填充
  8. linux脚本制定java堆大小_Java使用比堆大小更多的内存(或正确的Docker内存限制大小)...
  9. Java、JS、C++ 依然强势,Go、Kotlin 等新语言为何不能破局?
  10. 动态切换tableView中的cell的种类
  11. python是否存在键_检查给定的键在Python的字典中是否已经存在
  12. Matlab产生由正弦波产生方波
  13. php redis 清除队列,PHP Redis Queue
  14. 綫程池 部分代碼實現 筆記
  15. 如何在linux上下载github项目,在linux上使用github
  16. 结构光相机国产、非国产统计参数对比分析
  17. Android:从零开始打造自己的深度链接库(一):ARouter简介
  18. Google勇敢新世界:两个天才的相遇
  19. 下载文件中英文逗号导致下载失败
  20. Python可视化——matplotlib.pyplot绘图的基本参数详解

热门文章

  1. 5W1H分析法和5W2H分析法
  2. 微信小程序开发之十 —— 点击事件
  3. qqxml图片代码_QQXML代码大全(持续更新)
  4. linux usb转串口驱动报错,USB转串口驱动编译出错
  5. 云场景实践研究第79期:熊猫直播
  6. Unity-DLL反编译学习
  7. 2020 IDEA插件无法安装问题
  8. Python电商数据分析实战案例
  9. C#调用海康威视人脸识别接口
  10. SVN 版本回退 命令行