统计学习方法(机器学习)——7.3、支持向量机(非线性支持向量机与核函数)

支持向量机SVM

接上文:线性支持向量机与软间隔最大化

非线性支持向量机与核函数

核技巧

非线性分类问题

        非线性分类问题是指通过利用非线性模型才能很好地进行分类的问题。
        假设给定一个特征空间上的的训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1, y_1),(x_2,y_2),...,(x_N,y_N)\},如果能用RnR^n中的一个超曲面将正负例正确分开,则称这个问题为非线性可分问题。非线性问题往往不好求解,所以希望能用解线性分类问题的方法解决这个问题。采用的方法是进行一个非线性变换,将非线性问题转换成线性问题,如下图示例。
统计学习方法(机器学习)——7.3、支持向量机(非线性支持向量机与核函数)

        假设原空间为XR2,x=(x(1),x(2))TX\mathcal{X} \subset R^2,x=(x^{(1)},x^{(2)})^T\in \mathcal{X},新空间为ZR2,z=(z(1),z(2))TZ\mathcal{Z} \subset R^2,z=(z^{(1)},z^{(2)})^T\in \mathcal{Z},定义从原空间到新空间的变换(映射):
z=ϕ(x)=((x(1))2,(x(2))2)Tz=\phi(x)=((x^{(1)})^2,(x^{(2)})^2)^T
经过变换z=ϕ(x)z=\phi(x),原空间XR2\mathcal{X} \subset R^2变为新空间ZR2\mathcal{Z} \subset R^2,原空间中的椭圆
w1(x(1))2+w2(x(2))2+b=0w_1(x^{(1)})^2+w_2(x^{(2)})^2+b=0
变成新空间中的直线
w1z(1)+w2z(2)+b=0w_1z^{(1)}+w_2z^{(2)}+b=0
        用线性分类方法求解非线性分类问题(核技巧)分为两步:

  • 使用一个变换将原空间的数据映射到新空间
  • 在新空间里用线性分类学习方法从训练集学习模型

        核技巧应用到SVM,其基本想法就是通过一个非线性变换将输入空间对应于一个特征空间,使得在输入空间RnR^n中的超曲面模型对应于特征空间H\mathcal{H}中的超平面模型(SVM),分类问题可以通过在特征空间中求解线性SVM完成。


核函数的定义

定义 核函数
        设 X\mathcal{X}是输入空间(欧氏空间RnR^n的子集或离散集合),又设H\mathcal{H}是特征空间(希尔伯特空间),如果存在一个从X\mathcal{X}H\mathcal{H}的映射
ϕ(x)XH(1)\phi(x):\mathcal{X} \rightarrow \mathcal{H} \tag{1}
使得对所有的x,zXx,z \in \mathcal{X},函数K(x,z)K(x,z)满足条件
K(x,z)=ϕ(x)ϕ(z)(2)K(x,z) = \phi(x)·\phi(z) \tag{2}
则称K(x,z)K(x,z)为核函数,ϕ(x)\phi(x)为映射函数,式子中的·代表内积。
        核技巧的想法是,在学习与预测中只定义核函数K(x,z)K(x,z),而不显示地定义映射函数ϕ\phi。通常直接计算K(x,z)K(x,z)比较容易,通过ϕ\phi计算并不容易。对于给定的核K(x,z)K(x,z),特征空间H\mathcal{H}和映射函数ϕ\phi的取法并不唯一,可以取不同的特征空间,即使同一特征空间也可以取不同的映射。


核技巧在SVM中的应用

        在线性SVM的对偶问题中,无论目标函数还是决策函数(分离超平面)都只涉及输入实例与实例之间的内积,对偶问题中的内积可以用核函数代替。此时,对偶问题的目标函数成为:
W(α)=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi(3)W({\alpha}) = \frac12\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i\tag {3}
同样,分类决策函数中的内积也可以用核函数代替,分类决策函数就变成:
f(x)=sign(i=1Nαiyiϕ(xi)ϕ(x)+b)=sign(i=1NαiyiK(xi,x)+b)(4)f(x)=sign \left(\sum_{i=1}^N\alpha_i^*y_i\phi(x_i)·\phi(x)+b^*\right) =sign \left(\sum_{i=1}^N\alpha_i^*y_iK(x_i,x)+b^*\right) \tag{4}
        这等价于经过映射函数ϕ\phi将原来的输入空间变成一个新的特征空间,将输入空间中的内积变成特征空间中的内积,在新的特征空间中学习线性SVM。当映射函数是非线性时,学习到的含有核函数的SVM是非线性分类模型。学习是隐式地在特征空间进行的,不需要显示地定义特征空间和映射函数。核函数选择的有效性需要通过实验验证。


正定核

        函数K(x,z)K(x,z)满足什么条件才能成为核函数?
        依据函数K(x,z)K(x,z)构成一个希尔伯特空间,其步骤是:

  • 定义映射,构成向量空间SS
  • SS上定义内积,使其成为内积空间
  • 将内积空间SS完备化为希尔伯特空间

定义 正定核的充要条件
        设K:X×XRK:\mathcal{X}×\mathcal{X} \rightarrow R是对称函数,则K(x,z)K(x,z)为正定核函数的充要条件是对任意xiX,i=1,2,...,m,  K(x,z)x_i\in \mathcal{X}, i=1,2,..., m,\;K(x,z)对应的Gram矩阵:
K=[K(xi,xj)]m×m(5)K=\left[K(x_i,x_j)\right]_{m×m} \tag{5}
是半正定矩阵。