0-1损失函数是真正的二分类损失函数,合页损失函数是其上界,但是0-1损失函数不是连续可导的,直接优化困难,所以选择优化0-1损失上界--合页损失函数。合页损失函数不仅要求分类正确,还要确信度足够高损失才是0,对于学习要求更加高。
§12.5 非线性支持向量机与核函数
线性可分问题,支持向量机非常有效,但是非线性分类问题则需要引入核函数。如下图
非线性分类问题是指通过利用非线性模型才能很好地进行分类的问题。如左图,是一个分类问题,图中"·"表示正实例点,"×"表示负实例点。由图可见,
无法用直线(线性模型)将正负实例正确分开,但可以用一条椭圆曲线(非线性模型)将它们正确分开。非线性问题往往不好求解,所以希望能用解线性分类问题的方法解决这个问题。所采取的方法是进行一个非线性变换,将非线性问题变换为线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。对图中所示的例子,通过变换,将左图中椭圆变换成右图中的直线,将非线性分类问题变换为线性分类问题。
设原空间为$\mathbf{X}\in R^2$,$x=[x^{(1)},x^{(2)}]^{\mathrm{T}}\in \mathbf{X}$,新空间为$\mathbf{Z}\in R^2$,$z=[z^{(1)},z^{(2)}]^{\mathrm{T}}\in \mathbf{Z}$定义从原空间到新空间的变换(映射):
\[z=\phi(x)\]
经过变换,原空间$\mathbf{X}\in R^2$变换为新空间$\mathbf{Z}\in R^2$,原空间中的点相应地变换为新空间中的点,原空间中的椭圆变换成为新空间中的直线。在变换后的新空间里,直线$w_1z^{(1)}+w_2z^{(2)}+b=0$可以将变换后的正负实例点正确分开。这样,原空间的非线性可分问题就变成了新空间的线性可分问题。
上面的例子说明,用线性分类方法求解非线性分类问题分为两步:首先使用一个变换将原空间的数据映射到新空间;然后在新空间里用线性分类学习方法从训练数据中学习分类模型。核技巧就属于这样的方法。
核技巧应用到支持向量机:基本想法就是通过一个非线性变换将输入空间(欧氏空间或离散集合)对应于一个特征空间(希尔伯特空间),使得在输入空间中的超曲面模型对应于特征空间中的超平面模型(支持向量机)。这样,分类问题的学习任务通过在特征空间中求解线性支持向量机就可以完成。
核函数:设$\mathbf{X}\in R^n$欧式空间或离散集合,有特征空间H(希尔伯特空间),存在一个映射
\[\phi(x):X\rightarrow H\]
对于所有的$x,y\in X$, 函数满足
\[K(x,y)=\phi(x)\cdot \phi(y)\]
则$K(x,y)$称为核函数,$\phi(x)$是映射函数,$\phi(x)\cdot \phi(y)$是二者内积。
核技巧的想法是,在学习与预测中只定义核函数$K(x,y)$,而不显式地定义映射函数$\phi(x)$。通常,直接计算$K(x,y)$比较容易,而通过$\phi(x)$和$\phi(y)$计算$K(x,y)$并不容易。注意,$\phi(x)$是输入空间到特征空间的映射,特征空间一般是高维的,甚至是无穷维的。可以看到,对于给定的核$K(x,y)$,特征空间和映射函数$\phi(x)$的取法并不唯一,可以取不同的特征空间,即便是在同一特征空间里也可以取不同的映射。下面举一个简单的例子来说明核函数和映射函数的关系。
例子:设输入空间为$\mathbf{X}\in R^2$,核函数$K(x,y)=(x\cdot y)^2$
如果取特征空间$H\in R^3$, 由于
\[(x\cdot y)^2=(x_1y_1+x_2y_2)^2=(x_1y_1)^2+2x_1y_1x_2y_2+(x_2y_2)^2\]
所以映射可以选取
\[\phi(x)=[(x_1)^2,\sqrt2x_1x_2,(x_2)^2]^{\mathrm{T}}\\
\phi(x)=\frac{1}{\sqrt2}[(x_1)^2-(x_2)^2,2x_1x_2,(x_1)^2-(x_2)^2]^{\mathrm{T}}\]
如果取特征空间$H\in R^4$, 映射可以选取
\[\phi(x)=[(x_1)^2,x_1x_2,x_1x_2,(x_2)^2]^{\mathrm{T}}\]
核函数的应用:
我们注意到在线性支持向量机的对偶问题中,无论是目标函数还是决策函数(分离超平面)都只涉及输入实例与实例之间的内积$x_i\cdot x_j$。在对偶问题的目标函数中的内积$x_i\cdot x_j$可以用核函数
\[K(x_i,x_j)=\phi(x_i)\cdot \phi(x_j)\]
来代替。此时对偶问题的目标函数成为
\[\underset{\alpha}{min}\quad \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^{N}\alpha_i\]
分类决策函数中的内积也可以用核函数代替,而分类决策函数式成为
\[sign(\sum_{i=1}^{N}\alpha_i^*y_iK(x,x_i)+b^*)\]