原文:https://baijiahao.baidu.com/s?id=1618526683185169455&wfr=spider&for=pc
SVM必须搭配kernel l函数才能让SVM可以在分类问题中得到非常好的效能
Kernel trick在机器学习的角色就是希望当不同类别的特征在原始空间中无法被线性分类器区隔开来时,经由非线性投影后的特征能在更高维度的空间中可以更区隔开。
是映射关系 的内积,映射函数本身仅仅是一种映射关系,并没有增加维度的特性,不过可以利用核函数的特性,构造可以增加维度的核函数,这通常是我们希望的。
当我们无法在原始空间(Rd)中适当的找到一个线性分类器将两类区隔开,需要找到一个非线性投影(φ)将特征进行转换到更高维度的空间,此时在高维度的空间中只需要一个线性分类器/hyperplane就可以完美分类。
而这个更高维度的空间则称为Hilbert space(H)。
核技巧(kernel trick)的作用,一句话概括的话,就是降低计算的复杂度,甚至把不可能的计算变为可能。
希尔伯特空间(Hilbert Space)是什么?
百度百科:
在数学中,希尔伯特空间是欧几里德空间的一个推广,其不再局限于有限维的情形。与欧几里德空间相仿,希尔伯特空间也是一个内积空间,其上有距离和角的概念(及由此引申而来的正交性与垂直性的概念)。此外,希尔伯特空间还是一个完备的空间,其上所有的柯西序列等价于收敛序列,从而微积分中的大部分概念都可以无障碍地推广到希尔伯特空间中。希尔伯特空间为基于任意正交系上的多项式表示的傅立叶级数和傅立叶变换提供了一种有效的表述方式,而这也是泛函分析的核心概念之一。希尔伯特空间是公式化数学和量子力学的关键性概念之一。
原理:
在一个实向量空间或复向量空间H上的给定的内积 < x,y > 可以按照如下的方式导出一个范数(norm):
。
如果其对于这个范数来说是完备的,此空间称为是一个希尔伯特空间。这里的完备性是指,任何一个柯西序列都收敛到此空间中的某个元素,即它们与某个元素的范数差的极限为0。任何一个希尔伯特空间都是巴拿赫空间,但是反之未必。
任何有限维内积空间(如欧几里德空间及其上的点积)都是希尔伯特空间。但从实际应用角度来看,无穷维的希尔伯特空间更有价值。
内积可以帮助人们从“几何的”观点来研究希尔伯特空间,并使用有限维空间中的几何语言来描述希尔伯特空间。在所有的无穷维拓扑向量空间中,希尔伯特空间性质最好,也最接近有限维空间的情形。
傅立叶分析的一个重要目的是将一个给定的函数表示成一族给定的基函数的和(可能是无穷和)。这个问题可以在希尔伯特空间中更抽象地描述为:任何一个希尔伯特空间都有一族标准正交基,而且每个希尔伯特空间中的元素都可以唯一地表示为这族基中的元素或其倍数的和。
只要对所有的特征,有一个函数可以满足
K(x,y)=φ(x),φ(y)
这个k(x,y)就是一个kernel函数
有个定理(Mercer’s theorem)说如果有一个函数(φ)存在,这个k必需满足Mercer’s condition,k就是kernel函数。
,简化说就是如果所有的特征带到这个kernel function中的和必须大于等于0
相关概念:
柯西序列:
在数学中,一个柯西序列是指一个这样一个序列,它的元素随着序数的增加而愈发靠近。更确切地说,在去掉有限个元素后,可以使得余下的元素中任何两点间的距离的最大值不超过任意给定的正的常数。柯西列是以数学家奥古斯丁·路易·柯西的名字命名的。
向量空间
向量空间又称线性空间,是线性代数的中心内容和基本概念之一。在解析几何里引入向量概念后,使许多问题的处理变得更为简洁和清晰,在此基础上的进一步抽象化,形成了与域相联系的向量空间概念。譬如,实系数多项式的集合在定义适当的运算后构成向量空间,在代数上处理是方便的。单变元实函数的集合在定义适当的运算后,也构成向量空间,研究此类函数向量空间的数学分支称为泛函分析。
泛函分析
泛函分析是20世纪30年代形成的数学分科,是从变分问题,积分方程和理论物理的研究中发展起来的。它综合运用函数论,几何学,现代数学的观点来研究无限维向量空间上的泛函,算子和极限理论。它可以看作无限维向量空间的解析几何及数学分析。泛函分析在数学物理方程,概率论,计算数学等分科中都有应用,也是研究具有无限个自由度的物理系统的数学工具。
Mercer定理
Mercer 定理:任何半正定的函数都可以作为核函数。所谓半正定的函数f(xi,xj),是指拥有训练数据集合(x1,x2,…xn),我们定义一个矩阵的元素aij = f(xi,xj),这个矩阵式n*n的,如果这个矩阵是半正定的,那么f(xi,xj)就称为半正定的函数。这个mercer定理是核函数必要条件.
机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:
- 线性:K(v_1,v_2)=<v_1,v_2>
- 多项式:K(v_1,v_2)=(\gamma<v_1,v_2>+c)^n
- Radial basis function:K(v_1,v_2)=\exp(-\gamma||v_1-v_2||^2)
- Sigmoid:K(v_1,v_2)=\tanh(\gamma<v_1,v_2>+c)