当前课程知识点:机器学习概论 > 第八章 支持向量机(II)和无监督学习 > 8.1 核函数支持向量机 > 核函数支持向量机:核函数(1)
所谓核函数其实我们事实上就是说从我们之前
我们看到要解决这个问题的时候
我们其实不需要知道这个ΦXi 这个映射是什么
我们唯一需要知道的是变换到特征空间(feature space)上面之后
这两个映射之后的点 它们的内积就行了
这是我们在对偶问题里面 唯一需要的是它们的内积
我其实不需要原来的每一个各自的点它的映射是什么
这个是一个非常非常重要的一点
就是因为我们在这样求最大间隔学习的时候
通过了拉格朗日变换求对偶问题的时候 会发现我们只需要求内积
这点性质相当重要 它就使得一个做法成为可能 就是我不关心
不知道Φ是什么样 有没有办法直接求出来他们的内积是什么
如果假设我们知道 假设我们可以找到一个函数K
这个Kernel(x,y) 这个K(x,y)就等于X和Y
它们两个映射之后的内积 注意这里我们写的不是Kernel(Φx、Φy)
如果是Kernel(Φx,Φy)没有意义 就是我们这是Kernel(x,y)
就是我们是不是能够在原来的空间上找一个核函数
这样一个函数 我们把这个函数叫核函数
在原来空间上的这个函数表达它就等于映射之后的空间的
映射之后两个点的内积 如果你能够找到这样一个函数
那么这个问题就解决了 你不需要去求Φx 什么Φy
你也不需要在映射之后的空间去求Φx和Φy的点积
你需要求的就是它在原来这个空间上x和y 它的这个Kernel函数
我们的这个核函数这个值是怎么得到的
好 这个是一个特别核心的思想 我们就把这样的K(x,y)
就是在原来空间上的它的一个函数的表达形式把它称作核函数
听起来好像很神奇
我们先看 事实上如果说我们刚才说我们需要求的是这个
就是任何映射之后的两个点的内积
假设有这样一个核函数 那么我们原来要求的是在映射之后
空间上的内积 现在我们这个问题就会变成
我不是找映射之后两个点的内积 而是找这个核函数的这个值
因为我们的定义就是这个核函数的K(x,y) xi和xj
就等于这个ΦXi和ΦXj的内积 我们相当于就只要求这个值就行了
那同样我们的决策面 也事实上就变成了这个Kernel
就是我们要预测的那个点和已知点它们之间的这个核函数的取值
然后所有的都是这样表达过来
看起来这个问题好像更接近解决的一步
因为我们好像把这个问题简化到最初我们说
我们把这个数据点不可分 我把它升格为或者把它映射到
另外一个可分的空间上 让它变成可分的问题
但这个时候我们第一步说在这个空间上
我们需要知道它映射之后的点积 但是我不需要它每一个的独立的
独自的映射之后的点是什么 我只要知道他们的点积
内积等于多少就行了 所以我可以不需要知道怎么映射的
不需要给出映射的公式 那再进一步我想知道下一步很巧妙的转化
我想知道它在映射之后空间的点积
但是我不用在映射之后的空间上做 我可不可以在原来的空间上做
我在原来的空间上找到一个核函数
这个函数的取值对于原来空间上这两个点的函数取值
就等于它们的映射之后的那个空间的点积的值 好
经过了这样非常巧妙的想法 那么我们这个问题
其实就可以变的非常简单的处理 核心就是这一点核函数是什么
怎么找 首先它是不是存在 那好 事实上我们可以告诉大家说
首先我们说如果能够找到这样一个Kernel
然后它在原始空间上的取值 就等于映射之后函数空间上的内积的话
我们就可以很简单的去计算找到这个最大间隔的分类面了
问题可不可以呢 回答是yes可能的
它不是一个过于理想的状况 是可能的
那么第二个是说这样的核函数是必须要保证存在有这样的一个映射
你得是要保证必须存在这样的映射 那怎么保证呢
这个问题不简单 挺复杂的 然后细节我们在今天这个课上也不讲
作为大家的概论课的学习不讲细节
但我们告诉大家结论是说可以的 怎么可以呢
是有一个很重要的 在数学上一个很重要的定理叫做Mercer's定理
这个Mercer's定理它有不同的表达方式
我们在这里面是用了积分的表达形式
Mercer's定理就说其实存在有这样的一个映射Φ
以及它相应的扩展使得这个Kernel函数 对原来的x、y的这个Kernel取值
就等于映射之后空间的两个点之间的内积
它是存在的充分必要条件 if and only if 就是如果对于所有的g(x)
使得g(x)平方的积分 它是有限的
那么我们只要满足你这个条件K(x,y)乘以g(x)乘以g(y)
再对x、y去积分的这个值 大于等于零
只要满足这个条件就可以了 那么这个定理是可以证明的
但它的证明会比较复杂 大家理解起来会有点困难
感兴趣的同学可以再去了解一下
还有另外一种描述的方式是这样的 这个充要条件是什么
是这个核函数它所对应的这个核矩阵是对称 半正定的
还有没有同学记得正定矩阵和半正定矩阵是什么意思
非常好 大家刚好在学过你们的数学
可能应该在你们现在的是代数吧 那这个是微积分的表达
但在代数上面 应该线性代数上面学过相关 那很好
只要这个核函数它所对应的矩阵 这个核矩阵是对称半正定的
那么就存在这样的一个映射 以及这样的核函数是存在的
特别强调一点 大家其实刚才能够说上来这个对称半正定的意思
一定提醒大家不要把半正定阵把它和非负矩阵搞混了
因为时间长了之后 有同学会想半正定阵因为都有一个大于等于零
其实就是矩阵里面的每一个元素都要大于等于零 那就错了
那个是叫非负矩阵 但不是叫半正定阵
我们说的这个定理在数学上可以证明的
所以我们大家现在的这个学习 由于它的难度的问题
我们不要求大家证明 只是知道因为Mercer's定理的存在
使得我们这样的函数的映射是存在的
并且这个函数的扩展K(x,y)等于它映射之后的
两个点之间的内积的 这一点也是成立的 也是存在的
那么接下来我们就把就叫做一些核
接下来我们给大家介绍一下常用的核函数
常用的核函数有哪些呢 比如说齐次多项式
就它等于x、y的内积的d次方 或者非齐次的多项式
就x、y内积加上1 加上1的这个d次方
还有一个非常常用的叫做高斯核函数
高斯核就是k(x,y)=e的-(x减y)模的平方除以2的σ的平方
下面是它的协方差 那么这个下面的图就是高斯核函数的表示
在高斯核函数是怎么用的 其实原始数据上
它的这个input space 它的点是如图所示的示意图 比如说有红的
还有红色的是一类 灰蓝色的是一类
我们经过高斯核函数就把它变到了这种球面上
然后其中红色的在这一边 蓝色的在另外一边
中间是很容易找到一个线性的分类面 分界面把它们分开的
那还有我们还比较常用的是sigmoid的核 其实在这个里面就是用双曲正切函数
然后再加一个V的这样的形式 这个是我们比较常用的核函数
那其实有一个这样的想法 大家其实是到底怎么样映射
我们还拿刚才二维空间的例子来说
二维空间我们其实有x1和x2 其实这样如果它表达成
x1+x2的某一个的平方 你其实就可以把它展开
展开之后你让每一项 展开就是x1的平方
加上x2的平方 加上2倍的x1x2 这是二维空间上
那你既然展开了之后 你发现它是多少项
那么每一项你就可以作为一个单独的维度
然后就可以把它从二维的变成三维
那三维面你需要再做一些放缩 比如说把这个2变成根号
这个是稍微你需要去凑一凑的事情 然后放缩之后你就会发现
它在高维空间上就可以变成这种可分的了 就是线性可分的
你不能所有的问题都这样解 比如说我如果是三个的话
我就映射到更高维 事实上你就会发现
这样会产生一个维度会越映射越多 而且映射的好像维度灾难一样
就是维度映射的太多了 这个问题很复杂
其实我们不需要那么高的维度就可以了
所以我们才会使用一些常用的核函数
来去表达一些简单的这样映射方法 那么举个例子
比如说我们如果是用刚才的
就刚才高斯核我们已经给大家看到例子了
如果是这种多项式核的话 现在我们Kernel是x、y的内积的d次方
假设我们现在d等于2 就看它的多项式是二次方的时候
那我们假设就是x和y每一个是二维的
那现在Kernel它就是等于x和y它们的内积 它们是在二次方
所谓内积其实就是对应维度的乘积就是
x1乘以y1加上x2乘以y2它们的平方这是一个多项式的和
这样我们其实刚才说 就存在有这样的一个核的Φx
这个Φ其中一维是x1平方 还有一维是x2的平方
然后还有一个维是根号2的x1x2这样的
乘下来它的核大概长成这个样子
在这个空间存在这个Φ 这个Φ到底对不对
我们来看一下 在这个函数映射下 我们去求内积x和y
它们的内积 就等于x1方、y1方
然后这个是根号2的x1x2 乘以根号2的y1y2
再乘以x 这下面是加上x2的平方 加y2的平方
这么乘起来 你一加会发现就是等于x1y1+x2y2的平方
就是在这样映射之后的这两个变换之后的两个点
它的内积是和原始的这个Kernel函数 在原始空间上
这个Kernel函数的表达是一样的
也就相当于你不用去找出这个Φx是什么
也不用去在这个映射后的空间去求它的内积
因为映射后的空间的这个内积等于它在原始空间上的
这个多项式Kernel 所以这是我们Kernel函数很重要的一个地方
你不用做这些 还有一个需要大家提醒
大家注意的是这个Φ不唯一 不是说只存在这个
而且你这个feature space也不唯一 首先Kernel映射关系不唯一
所以你映射之后的这个Φx、Φy这样的feature space也不唯一
比如说我们这里就给出来了另外两种不同的映射方法
大家看一下一种是说把这个Φ映射成四维 刚才是说它是两维
我把它映射每一个变成了三维是可以的 如果是四维呢
也可以 这四维分别是x1方 x2方 x1x2、x1x2这样四维也是可以的
或者仍然是三维 但这三维描述的很复杂也是可以的
感兴趣的同学你们可以算一算 在这样的映射下
我们在映射之后的空间内求两个x和y之间的内积
它的解是不是也等于这个 是的 所以说你的映射
这样的映射是不唯一的 而且映射之后的那个函数空间也是不唯一的
但没关系 其实我们不关心它是怎么映射的
我们也不关心它映射之后的那个空间上求内积怎么求
我们关心的就是我们有这么一个核函数可以做到这件事
使得我要求它映射之后的内积
只要在原空间上求这个核函数的值就可以了
-1.1 课程介绍
--课程介绍(1)
--课程介绍(2)
-1.2 机器学习的背景
--机器学习的背景
-1.3 什么是机器学习
--什么是机器学习
-1.4 机器学习系统设计
-第一章作业
-2.1 决策树的基本概念
--决策树的基本概念
-2.2 决策树的实例和发展历史
-2.3 经典决策树算法ID3
-2.4 过拟合和前剪枝
--过拟合和前剪枝
-第二章作业
-3.1 下午茶时间:勒索软件
-3.2 后剪枝
--后剪枝
-3.3 决策树的改进和归纳学习假设
-3.4 贝叶斯学习的背景
--贝叶斯学习的背景
-3.5 极大似然假设、朴素贝叶斯和最小描述长度
-第三章作业
-4.1 下午茶时间:微博的垃圾检测
-4.2 马尔可夫模型
--马尔可夫模型
-4.3 隐马尔可夫模型
--隐马尔可夫模型
-4.4 评估问题
--评估问题(1)
--评估问题(2)
-4.5 解码问题
--解码问题
-4.6 隐马尔可夫模型的应用
-第四章作业
-5.1 下午茶时间:图灵奖
-5.2 假设评估
--假设评估(1)
--假设评估(2)
--假设评估(3)
-5.3 置信度和置信区间
-5.4 有限数据下的比较
--有限数据下的比较
-第五章作业
-6.1 下午茶时间:黑洞照片
-6.2 基于实例的学习的基本概念
-6.3 最近邻算法
--最近邻算法
-6.4 K邻近算法
--K近邻算法
-6.5 KD树
--KD树
-6.6 距离加权的K近邻算法
-第六章考试
-7.1 支持向量机的背景
--支持向量机的背景
-7.2 线性支持向量机
-第七章作业
-8.1 核函数支持向量机
-8.4 支持向量机总结
--支持向量机总结
-8.5 无监督学习简介
-8.6 层次聚类
--层次聚类
-8.7 K-means聚类和K-medoids聚类
-第八章作业


