1. 非线性判别函数
本章介绍广义线判别函数与核函数,并分析他们的不一样。函数
2. 广义线性判别函数
对于非线性问题,咱们依旧可使用线性分类器进行求解。学习
- 广义线性判别函数增长了特征的高次项,将低维特征转化为高维特征。将低维线性不可分问题转化为高维的线性可分问题,并学习到高维空间下的线性分类器,该分类器其实等价于低维的非线性分类器。
- 以经典的异或问题为例(线性不可分):
- 这么作的弊端是,当引入的高维特征后,会下降模型的泛化能力,易过拟合。
- 广义线性判别函数的问题:
- 阶数问题:对于一个具体问题,很难肯定判别函数的阶数。
- 维数问题:当原始特征维数较大时,会形成“维数灾难”。
3. 核函数
核函数虽然也是将特征从低维空间映射到高维空间,可是能够很好的避免广义线性判别函数的维数灾难问题。
接下来介绍核函数的主要思想,以后举例介绍核函数是怎么避免维数灾难的。blog
3.1 核函数基本思想
- 启示:特征空间中两个矢量之间的内积能够经过定义输入空间中的核函数直接计算获得。
- 实现方法:没必要定义非线性映射,而直接在输入空间中定义核函数\(K\)来完成非线性映射。
- 应用条件:
- 定义的核函数\(K\)可以对应于特征空间中的内积;
- 识别方法中不须要计算特征空间中的矢量自己,而只须计算特征空间中两个矢量的内积。
3.2 核函数举例说明
- 对于下列输入空间的非线性问题,经过非线性映射,转化为高维空间的线性可分问题:

- 非线性映射函数为:
\[\Phi : \left( x _ { 1 } , x _ { 2 } \right) ^ { t } \rightarrow \left( x _ { 1 } ^ { 2 } , \sqrt { 2 } x _ { 1 } x _ { 2 } , x _ { 2 } ^ { 2 } \right) ^ { t }\]
- 计算特征空间中两个矢量的内积:
\[\begin{aligned} \Phi ( \mathbf { x } ) ^ { t } \Phi ( \mathbf { y } ) & = \left( x _ { 1 } ^ { 2 } , \sqrt { 2 } x _ { 1 } x _ { 2 } , x _ { 2 } ^ { 2 } \right) \left( y _ { 1 } ^ { 2 } , \sqrt { 2 } y _ { 1 } y _ { 2 } , y _ { 2 } ^ { 2 } \right) ^ { t } \\ & = x _ { 1 } ^ { 2 } y _ { 1 } ^ { 2 } + 2 x _ { 1 } x _ { 2 } y _ { 1 } y _ { 2 } + x _ { 2 } ^ { 2 } y _ { 2 } ^ { 2 } \\ & = \left( x _ { 1 } y _ { 1 } + x _ { 2 } y _ { 2 } \right) ^ { 2 } \\ & = \left( \mathbf { x } ^ { t } \mathbf { y } \right) ^ { 2 } \end{aligned}\]
- 定义核函数\(K ( \mathbf { x } , \mathbf { y } ) = \left( \mathbf { x } ^ { t } \mathbf { y } \right) ^ { 2 }\),则有:
\[\Phi ( \mathbf { x } ) ^ { t } \Phi ( \mathbf { y } ) = K ( \mathbf { x } , \mathbf { y } )\]
- 在这个例子中,特征空间中的内积,能够用输入空间的核函数计算获得,从而不须要计算高维空间的矢量具体是什么,也就避免的维数灾难问题。
3.3 经常使用的核函数
- 高斯 Gaussian RBF:\(K ( \mathbf { x } , \mathbf { y } ) = \exp \left( - \frac { \| \mathbf { x } - \mathbf { y } \| ^ { 2 } } { \sigma } \right)\)
- 多项式 Polynomial:\(K ( \mathbf { x } , \mathbf { y } ) = \left( \left( \mathbf { x } ^ { t } \mathbf { y } \right) + 1 \right) ^ { d }\)