主要内容
- 核函数的概念
- 核函数的分类
一、核函数的概念
1.1 核函数的定义
- 支持向量机为了更好地分类,通过某线性变换ϕ(x),将输入的低维空间X(欧氏空间R^n的子集或离散集合)映射到高维特征空间H(希尔伯特空间),如果低维空间存在K(x,y),x,y∈Χ,使得K(x,y)=ϕ(x)·ϕ(y),则称K(x,y)为核函数 ,其中ϕ(x)·ϕ(y)为x,y映射到特征空间上的内积,ϕ(x)为X→H的映射函数。
- 形象化理解: 把核函数看成一个包装器或者接口,他能把数据从某个很难处理的形式转换为了另一个较容易处理的形式
- 核技巧或者核变电: SVM优化中的一个好处是所有的运算都可以写出内积的形式,我们可以把内积运算替换成核函数进行处理,这种处理方式叫做 核技巧或者核变电
1.2 核函数的作用
- 通过核函数进行空间转换之后,我们可以在高维空间中解决线性问题,这等价于在低维空间中解决非线性问题
- 目标特征空间H的维数一般比较高,甚至可能是无穷维,所以求内积比较困难,在使用时只定义核函数,不显式定义映射函数ϕ,就只涉及变换后的内积,而并不需要变换值。这样一方面可以解决线性不可分问题,另一方面避免了“维数灾难”,减少了计算量。
- 核函数 并不仅仅应用于支持向量机,很多其他的机器学习算法也会用到核函数
二、核函数的分类
- 集中常见的核函数介绍
2.1 线性核函数(Linear Kernel)
- 线性核函数是最简单的核函数,主要用于线性可分的情况
- 线性核函数的表达式:
其中,c为可选的常数
- 线性核函数是原始输入空间的内积,即特征空间和输入空间的维度是一样的,参数较少,运算速度较快
- 一般情况下,在特征数量相对于样本数量非常多时,适合采用线性核函数。
2.2 多项式核函数(Polynomial Kernel)
- 多项式核函数的表达式 为:
- α表示调节参数,d表示最高次项次数,c为可选常数
- 多项式核函数的参数比较多,当多项式阶数高时复杂度会很高,对于正交归一化后的数据,可优先选多项式核函数
2.3 径向基核函数(Radial Basis Function Kernel)
- 径向基核函数由于类似于高斯函数,所以也称其为高斯核函数
- 径向基核函数的表达式 为:
- α2越大,高斯核函数变得越平滑,即得到一个随输入x变化较缓慢,模型的偏差和方差大,泛化能力差,容易过拟合
- α2越小,高斯核函数变化越剧烈,模型的偏差和方差越小,模型对噪声样本比较敏感。
- 径向基核函数具有很强的灵活性,应用很广泛
- 与多项式核函数相比,它的参数少,因此大多数情况下,都有比较好的性能;在不确定用哪种核函数时,可优先验证高斯核函数
2.4 激活核函数(Sigmoid Kernel)
- Sigmoid核函数表达式如下:
- α表示调节参数,c为可选常数,一般使c取1/n,n为数据维度
- Sigmoid核函数来源于MLP中的激活函数,SVM使用Sigmoid相当于一个两层的感知机网络