机器学习之感知机与SVM详细推导

972 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

感知机与SVM

1. 超平面

在介绍感知机与SVM之前,我们有必要补充一下超平面的概念。 超平面是具有下面形式的点的集合:

{xaTx=b}(1)\{x|a^Tx=b\} \tag{1}

其中aRn,a0a\in R^n, a \neq 0bRb\in R解析意义:超平面是关于xx的非齐次线性方程组的解空间(是一个仿射集合)。 几何意义:超平面是与给定向量aa的内积为常数的点的集合;也可以看成法线方向aa的超平面,常数bRb\in R决定了这个平面相对原点的偏移,每个轴上偏移了bai\frac{b}{a_i}。 超平面外任意一点yy到超平面的距离计算过程: 在超平面上任取一点xx,则yy到超平面的距离可表示为:

d=aT(yx)a=aTyba(2)d=\frac{|a^T(y-x)|}{||a||}=\frac{|a^Ty-b|}{||a||} \tag{2}

在感知机与SVM的相关理论推导中,我们一般将超平面写成如下形式:

{xwTx+b=0}(3)\{x|w^Tx+b=0\} \tag{3}

2. 感知机(perception)

感知机 是二类分类问题的线性分类模型。其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机学习旨在求出将训练数据进行线性划分的分离超平面。 假设对所有y(i)=+1y^{(i)}=+1的点,有wTx(i)+b>0w^Tx^{(i)}+b>0;对所有y(i)=1y^{(i)}=-1的点,有wTxi+b<0w^Tx_i+b<0。则对于给定数据集

T=(x(1),y(1)),,(x(N),y(N))(4)T={(x^{(1)},y^{(1)}),\cdots,(x^{(N)},y^{(N)})}\tag{4}

线性可分的定义是:\exists某个超平面{xwTx+b=0}\{x|w^Tx+b=0\}使得(x(i),y(i))\forall(x^{(i)},y^{(i)})y(i)(wTx(i)+b)>0y^{(i)}(w^Tx^{(i)}+b)>0 也即对误分类的点有:

y(i)(wTx(i)+b)>0(5)-y^{(i)}(w^Tx^{(i)}+b)>0\tag{5}

我们假设感知机的训练数据都是线性可分的。 误分类点到超平面的总距离为:

1wx(i)My(i)(wTx+b)(6)-\frac{1}{\left \|w \right \|}\sum_{x^{(i)}\in M}y^{(i)}(w^Tx+b) \tag{6}

MM为误分类点的集合。可以将(6)(6)作为优化的损失函数。 我们可以 把1w\frac{1}{\left \|w \right \|}扔掉而不影响优化结果,因为我们假设数据集是线性可分的,因此最后损失函数必然为零,即无误分类点。去掉后,我们得到的loss function如下:

x(i)My(i)(wTx(i)+b)(7)-\sum_{x^{(i)}\in M}y^{(i)}(w^Tx^{(i)}+b) \tag{7}

(7)(7)是关于w,bw,b的连续可导线性函数,梯度为: \nabla_wL(w,b)=-\sum_{x^{(i)}\in M}y^{(i)}x^{(i)} \tag{8} \nabla_bL(w,b)=-\sum_{x^{(i)}\in M}y^{(i)} \tag{9} 可以利用随机梯度下降法轻松地进行优化: (1) 选取初值w0,b0w_0,b_0 (2) 在训练集中选取数据x(i),y(i)x^{(i)},y^{(i)} (3) ifif y(i)(wTx+b)0-y^{(i)}(w^Tx+b)\geq 0 w\leftarrow w+\eta y^{(i)}x^{(i)} \tag{10} b\leftarrow b+\eta y^{(i)} \tag{11} elseelse 算法停止 (4) 转至(2),直至训练集中没有误分类点。

3. 支持向量机(SVM)

感知机模型得到的分离超平面不是唯一的,会随着初值不同而不同。而SVM试图寻找一个最佳的超平面来划分数据。所谓“最优的超平面”,就是指“最中间的”的超平面,也即“与数据点间隔最大”的超平面。 定义样本点(xi,yi)(x^{i},y^{i})与超平面wTx+b=0w^Tx+b=0几何间隔为:

γ(i)=y(i)(wTx(i)+b)w(12)\gamma^{(i)}=\frac{y^{(i)}(w^Tx^{(i)}+b)}{\left \|w \right \|} \tag{12}

几何间隔其实就是(1)(1)中的距离。 定义超平面与整个数据集的几何间隔为:

γ=mini=1,,Nγ(i)(13)\gamma=\min \limits_{i=1,\cdots,N}\gamma^{(i)} \tag{13}

物理含义为离超平面最近的点到超平面的几何距离。

定义样本点(xi,yi)(x^{i},y^{i})与超平面wTx+b=0w^Tx+b=0函数间隔为:

γ^(i)=y(i)(wTx(i)+b)(14){\hat \gamma}^{(i)}={y^{(i)}(w^Tx^{(i)}+b)}\tag{14}

函数间隔可以相对地表示点xx与超平面wTx(i)+b)w^Tx^{(i)}+b)的远近程度(在超平面确定的情况下) 定义超平面与整个数据集的函数间隔为:

γ^=mini=1,,Nγ^(i)(15)\hat\gamma=\min \limits_{i=1,\cdots,N}\hat\gamma^{(i)} \tag{15}

注意,当wwbb同比例变化时,函数间隔也会同比例变化,但是超平面不变,这点性质对后面的推导很重要!!! 根据上面的铺垫,SVM模型可表示为:

maxw,bγs.t.γ(i)γ,i=1,,N(16)\begin{aligned} \max\limits_{w,b}\quad & \gamma \\ s.t.\quad & \gamma^{(i)}\geq \gamma,\quad i=1,\cdots,N \\ \tag{16} \end{aligned}

考虑到几何间隔与函数间隔的比例关系,(16)(16)可以写成:

maxw,bγ^ws.t.γ^(i)γ^,i=1,,N(17)\begin{aligned} \max\limits_{w,b}\quad & \frac{\hat\gamma}{\left \|w \right \|} \\ s.t.\quad & \hat\gamma^{(i)}\geq \hat\gamma,\quad i=1,\cdots,N \\ \tag{17} \end{aligned}

而根据前面的分析我们可以知道,我们总可以同比例缩放(w,b)(w,b)使得 γ^=1\hat\gamma=1,而超平面不变。因此(17)(17)可以进一步写成:

maxw,b1ws.t.γ^(i)1,i=1,,N(18)\begin{aligned} \max\limits_{w,b}\quad & \frac{1}{\left \|w \right \|} \\ s.t.\quad & \hat\gamma^{(i)}\geq 1,\quad i=1,\cdots,N \\ \tag{18} \end{aligned}

(18)(18)可以再进一步写成:

minw,b12w2s.t.y(i)(wTx(i)+b)1,i=1,,N(19)\begin{aligned} \min\limits_{w,b}\quad & \frac{1}{2}{\left \|w \right \|}^2 \\ s.t.\quad & {y^{(i)}(w^Tx^{(i)}+b)}\geq 1,\quad i=1,\cdots,N \\ \tag{19} \end{aligned}

这样SVM就转化为了一个凸二次规划问题,可以用一些软件包方便得求解。但是这种问题的直接求解比较低效,为此可以使用Lagrange乘子法得到其对偶问题,这样不仅能简化计算,还可以为后面引入kernel的概念做铺垫。

3. SVM的Lagrange对偶问题

(19)(19)的每一个不等式约束引进拉格朗日乘子(Lagrange multiplier)αi0,i=1,,N\alpha_i\geq0,i=1,\cdots,N,定义拉格朗日函数:

L(w,b,α)=12w2i=1Nαiy(i)(wTx(i)+b)+i=1Nαi(20)L(w,b,\alpha)=\frac{1}{2}{\left \|w \right \|}^2-\sum_{i=1}^{N}\alpha_iy^{(i)}(w^Tx^{(i)}+b)+\sum_{i=1}^{N}\alpha_i \tag{20}

(19)(19)的原问题(primer problem)是如下所示的极小极大问题:

minαmaxw,bL(w,b,α)(21)\min\limits_{\alpha}\max\limits_{w,b}L(w,b,\alpha) \tag{21}

(19)(19)的对偶问题(dual problem)是如下所示的极大极小问题:

maxαminw,bL(w,b,α)(22)\max\limits_{\alpha}\min\limits_{w,b}L(w,b,\alpha) \tag{22}

先求minw,bL(w,b,α)\min\limits_{w,b}L(w,b,\alpha)。将L(w,b,α)L(w,b,\alpha)分别对w,bw,b求导并令其等于0:

wL(w,b,α)=wi=1Nαiy(i)x(i)=0bL(w,b,α)=i=1Nαiy(i)=0(23)\begin{aligned} \nabla_wL(w,b,\alpha)&=w-\sum_{i=1}^N\alpha_iy^{(i)}x^{(i)}=0\\ \nabla_bL(w,b,\alpha)&=-\sum_{i=1}^N\alpha_iy^{(i)}=0\\ \tag{23} \end{aligned}

可得:

minw,bL(w,b,α)=12i=1Nj=1Nαiαjyiyjx(i)Tx(i)+i=1Nαi(24)\min\limits_{w,b}L(w,b,\alpha)=-\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j{x^{(i)}}^Tx^{(i)}+\sum_{i=1}^{N}\alpha_i \tag{24}

因此(22)(22)可转化为:

maxα12i=1Nj=1Nαiαjyiyjx(i)Tx(i)+i=1Nαis.t.αi0,i=1,,Ni=1Nαiy(i)=0(25)\begin{aligned} \max\limits_{\alpha}\quad & -\frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i\alpha_jy_iy_j{x^{(i)}}^Tx^{(i)}+\sum_{i=1}^{N}\alpha_i \\ s.t.\quad &\alpha_i\geq0,i=1,\cdots,N\\ & \sum_{i=1}^N\alpha_iy^{(i)}=0\\ \tag{25} \end{aligned}

易证强对偶性成立。(原问题是凸问题且Slater条件成立) 求解出最优的αi\alpha_i^*后,就可以根据(23)(23)进一步求出ww^*(也可以根据下面的KKT条件得到ww^*的公式)。那怎么求bb^*呢? 根据KKT条件:

y(i)(wTx(i)+b)1,i=1,,Nαi0,i=1,,Nα(y(i)(wTx(i)+b)1)=0,i=1,,NwL(w,b,α)=wi=1Nαiy(i)x(i)=0,i=1,,NbL(w,b,α)=i=1Nαiy(i)=0,i=1,,N(25)\begin{aligned} {y^{(i)}(w^Tx^{(i)}+b)} &\geq 1,\quad i=1,\cdots,N\\ \alpha_i &\geq 0,\quad i=1,\cdots,N\\ \alpha\Big({y^{(i)}(w^Tx^{(i)}+b)-1}\Big) &= 0,\quad i=1,\cdots,N\\ \nabla_wL(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy^{(i)}x^{(i)}&=0,\quad i=1,\cdots,N\\ \nabla_bL(w,b,\alpha)=-\sum_{i=1}^N\alpha_iy^{(i)}&=0,\quad i=1,\cdots,N\\ \tag{25} \end{aligned}

可以进一步求出bb。 我们可以断定,αj>0\exists \alpha_j^*>0(否则可推出w=0w=0,违背超平面的定义)。注意到,当αj>0\alpha_j^*>0时,意味着y(i)(wTx(i)+b)1=0{y^{(i)}(w^Tx^{(i)}+b)-1}=0,也即这时候样本点在最大间隔边界上(称为支持向量)。

这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。 ww^*的表达式为:

w=iSαiy(i)x(i)(26)w^*=\sum_{i\in S}\alpha_iy^{(i)}x^{(i)}\tag{26}

其中SS表示支持向量的下标集合。 bb^*的表达式为:

b=yjiSαiy(i)x(i)x(j)(27)b^*=y_j-\sum_{i\in S}\alpha_iy^{(i)}x^{(i)}x^{(j)}\tag{27}

于是,理论上可以选取任意支持向量求解bb^*。注意到对任意支持向量(x(s),y(s))(x^{(s)},y^{(s)}),都有:

y(s)(wTx(s)+b)1=0(28){y^{(s)}(w^Tx^{(s)}+b)-1}=0\tag{28}

通过(26)(26)即可求出bb^*。实际上可以采用一种更鲁棒的做法:使用所有支持向量求解的结果的平均值:

b=1SsS(y(s)wTx(s))(29)b^*=\frac{1}{\left \| S\right \|}\sum_{s\in S}({y^{(s)}-w^Tx^{(s)}})\tag{29}