分享

专家坐堂:机器学习中对核函数的理解

 昵称31750011 2016-11-19


随着人工智能的进程推进,核函数概念也越来越高频率的出现在各类机器学习方法当中,较常见如svm、逻辑回归等等。而在实际运用中,部分可能并不是很熟悉核函数本身的背后intuition(当然从工程角度去看,无可厚非)。


 

首先,核函数是什么?到底什么是核函数?

个人理解为:核函数!=内积!=映射!=相似度,核函数是一种表征映射、实现内积逻辑关系且降低计算复杂度的一类特殊函数(满足Mercer's condition)!

下面给出官方核函数的定义,其定义如下(可参考统计学习方法):

设X是输入空间(欧氏空间或离散集合),Η为特征空间(希尔伯特空间),如果存在一个从X到Η的映射 

φ(x): X→Η

使得对所有的x,y∈X,函数Κ(x,y)=φ(x)?φ(y), 

则称Κ(x,y)为核函数,φ(x)为映射函数,φ(x)?φ(y)为x,y映射到特征空间上的内积。

在该定义中,涉及到几个概念:输入空间、特征空间、以及Mercer's condition。那先从空间说起。简单来说,常见的空间有欧式空间,集合(离散),赋范空间,希尔伯特空间。常见的欧式空间,即平常我们见到1,2……n维且满足可度量条件的空间(注:也可查看欧式五大公理)。而赋范空间通俗的理解就是距离 线性结构 范数=赋范空间,而在赋范空间 内积运算 完备性=希尔伯特空间。关于空间定义中几个概念下面给出简单解释:


距离的定义:设任意非空集合X,对X中任意两点x,y,满足一个实数d(x,y):

d(x,y)<=0,当且仅当d(x,y)=0或者x=y;d(x,y)=d(y,x),d(x,y)<=d(x,z) d(z,y)[类勾股定理]

线性结构:指的是加减乘除,交换律,结合律等

范数:空间点到空间零点的距离

内积运算:引入空间中角的概念

完备性: 内包含任意极限(通俗理解即永远逃不出的空间体系)


接下来看一下Mercer's condition,Mercer定理是指,函数需满足对称性和正定性,所谓的对称性就是比如上述定义中φ(x)?φ(y)= φ(y)?φ(x),而所谓的正定性定义如下(核函数会对应Gram矩阵),当矩阵M所有的特征值大于零的前提下,根据谱定理,必然存在一个对角矩阵D与M相似(M = P-1DP),通俗的理解就是点M落在以P-1,P 为基的空间中,其特征值M就是在这组基空间下的具体点值。

 

矩阵正定性有很多好处,如:可逆,迹大于0,运算正定…….而至于为什么梅歇尔定理要求正定呢?自己也还不是很清楚,个人理解就是正定性使得函数极限方向唯一且大于等于零,同时正定性产生的优化问题都是有良好凸优化性质(凸函数收敛到局部最优值即为全局最优值,是不是立马想到了梯度下降法),从而把原始空间的度量概念能移植到特征空间(融入了角和内积)中去(可拍砖)。


其次,数据在什么情况下可以用核函数?

从个人理解出发,即只要在原始数据维度大于零且涉及空间度量的前提下,都可以运用核函数方法(诚然,最后是否选择还需要根据优化目标进行决定)。也正是基于此,很多在使用核函数方法时就会陷入一个误区,简单认为核函数就是一个从低纬度映射到高维度的函数,核函数在特征变换时,的确会包含了映射这一层个逻辑,但是低纬度到高纬度的表述就不严谨了,因为常规的空间是有度量的,即有维度的概念,但是希尔伯特空间已经延展至无限维度(即没有维度的定义了),故再谈维度,已然没有任何意义了!


接下来,在这里说一下正常思维的理解下的核函数:

1、找到映射函数(映射到高维空间去)

2、高维空间里面通过内积(其实内积仅仅是其中一种在高维空间里面度量其数据相似度一种手段,这里的相似度可能定义不准确,可以这么说,算是常规空间中度量的一种标准)

3、优化问题求解

4、最优解还原到原始空间


这种思路是正常的,也是合理的。但是从核函数产生的过程来看,这种思路恰好和核函数本质逻辑是逆向的,其实这里引用网友一个通俗的比喻:


故事应该是这样的,那些做支持向量机、特征变换的人,发现自己的算法对数据集的效果不好,他们认为这可能是因为数据集线性不可分(假设,实际可能不是这样)。另外他们发现他们搞出的式子里,出现的都是两个数据点的内积。他们认为要是把原始数据集映射到高维可能就线性可分(增加可分的概率),但是这可是内积,而且怎么找映射函数呢?这时候Mercer Theorem出现了,那就构造一个kernel function。根据Mercer Theorem,那些原始维度的内积转换到高维内积只需要把数据点带进核函数就可以了。


是不是很简单?结果在数据集上反应居然出奇的好,之后这种方法便出现了很多时髦名称。


所以透过这个故事,可以看到,实际当中核函数只是在表达的时候,可以说内包含了映射,内积,相似度这些逻辑,但这个映射,内积以及相似度的具体表达式以及过程不需要也没有必要显示表征出来,最终直接通过核函数在低维空间中实现映射到高维空间之后的最终内积结果。


最后的4点总结:

1、核函数是一种满足条件梅歇尔条件的函数,包含映射,内积,相似度的逻辑,但具体的这些逻辑不要显示表征出来


2、核函数深层次原理就是通过变换特征空间并在特征空间中组合有限的平滑函数对求解问题进行优化(所有的平滑函数都能通过麦克劳林展开式近似计算,从而为映射到无穷维度提供可能)


3、核函数映射到维空间,仅仅是增加了数据可分性,并不是代表一定可分,借用一句网友较形象的比如:We are safe but not certain!


4、有很多人问,怎么去选择核函数(线性核、多项式核、sigmoid核……),那针对特定问题如何选择一个较好的核函数去学习能获得较好的模型能力呢?还有就是,在希尔伯特空间映射下,数据到底变换为多少维度?有穷还是无穷?,这对这些问题,我会在接下来继续把自己的一些看法继续以纪要的形式发出来,也希望广大网友能多多批评和指正!



作者,说:

作者:海涛

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多