2018.1.16
给定训练集(T={(x_1,y_1),(x_2,y_2),cdots,(x_N,y_N)}),一共有N个样本点。
一、线性可分的支持向量机
假定训练集是线性可分的。学习的目标是在特征空间找到一个分离超平面(wx+b=0),能够将所有的样本正确划分为两类。学习的策略是间隔最大化。
1 目标函数
样本点((x_i,y_i))到超平面(wx+b=0)的距离是
正例样本的(y_i=+1),负例样本的(y_i=-1),这样表示距离可以把绝对值符号去掉:
(y_i(wx_i+b))称为点((x_i,y_i))到超平面(wx+b=0)的函数间隔。
所有样本点中离分离超平面最近的那个样本点的距离是:
在所有超平面中能让这个最小距离最大的那个w,b就是我们要的结果:
为了方便求解,做如下变换:
对于(min limits_{i} {frac{y_i(wx_i+b)}{|w|}})这部分,假设点((x_m,y_m))取得最小距离为(d_0),也就是(d_0 = {frac{y_m(wx_m+b)}{|w|}}),对分子分母同时乘以或除以一个数,使得分子=1,也就是函数间隔=1,这时分母也发生了相应变化,因为(w)表示超平面wx+b=0的法向量方向,按比例缩放后方向没有变化,我们将变化后的分母还记作(|w|)。通过令最小函数间隔=1,目标函数变为:
约束条件保证了所有点都能分类正确。
为方便求解,进一步变化为:
2 拉格朗日乘子法求解
2.1 构造拉格朗日函数:
其中(alpha = (alpha_1,alpha_2,cdots,alpha_N)^T)是拉格朗日乘子,(alpha_i geq 0)
2.2 把w,b看作常数,构造一个函数 ( heta)定义为 (L(w,b,alpha)) 关于 (alpha) 求最大值
因为 (alpha_i geq 0) 且 ({y_i(wx_i+b)} geq 1),所以
2.3 原始问题 (min limits_{w,b} frac{1}{2}|w|^2)等价于 $ min limits_{w,b} max limits_{alpha} L(w,b,alpha) quad$。
根据拉格朗日对偶性,问题可变为 (max limits_{alpha} min limits_{w,b} L(w,b,alpha))
(1) 求(min limits_{w,b} L(w,b,alpha))
(qquad)对w,b分别求偏导数:
(qquad)令偏导数=0得到:
(qquad)将这两个式子带回拉格朗日函数(L(w,b,alpha))得到:
(2) 求 (min limits_{w,b} L(w,b,alpha)) 对(alpha)的极大,$max limits_{alpha} { {-frac{1}{2} sum_{i=1}{N}sum_{j=1}{N} alpha_ialpha_j y_i y_j (x_i x_j) + sum_{i=1}^{N} alpha_i} } $ ,加负号得到:
(3) 假设求出了(2)中 $alpha $ 的最优解 (alpha^* =(alpha_1^*,alpha_2^*,cdots,alpha_N^*)^T)
(w)的解为(w^*=sum_{i=1}^{N} alpha_i^* y_i x_i)
选择(alpha_i^*)的一个正分量(alpha_i^*>0),b的解为 (b*=y_j -w^*x_j=y_j - sum alpha_i^* y_i (x_i x_j))
3 支持向量物理意义
在线性可分情况下,训练集的样本点中与分离超平面距离最近的样本点称为支持向量,即使得等式成立的样本点:(y_i(wx_i+b)-1=0).对正例点,支持向量在超平面(H1:wx_i+b=1);对负例点,支持向量在超平面(H2:wx_i+b=-1).支持向量就是落在超平面H1和H2上的点。H1和H2称为间隔边界。间隔带的宽度是(frac{2}{|w|})。联系目标函数最小化(|w|)也就是要间隔最宽。 支持向量决定了模型,移动支持向量以外的样本点不影响结果,所以SVM实际上只用到了少数的样本点。但距离超平面最近的点刚好是噪声点,那么模型就会有问题。
二、线性不可分的支持向量机
1 为什么加入松弛变量
不一定完全分类正确的超平面就是最好的,如下图。用第一部分的硬间隔最大化找出的分界面很可能如实线所示,实线可以将训练数据分为两类,但其泛化能力不如虚线。
少数特异点outlier造成训练数据不是线性可分的,如下图。用第一部分的硬间隔最大化不能找出一个分界面。如果能忽视outlier,就能较好分类。
上面两张图反映了硬间隔最大化存在一些问题,所以为每个样本点引入一个松弛变量,硬间隔修改为软间隔,这就是线性不可分的支持向量机。
2 目标函数和约束
约束条件:为每个样本点引入一个松弛变量(xi_i geq 0)使得函数间隔加上松弛(xi_i)不小于1。如果样本点的函数间隔本身大于1,那么(xi_i=0); 如果样本点的函数间隔<1,那么(xi_i=1-y_i(wx_i+b)>0)。
目标函数:(sum_{i=1}^{N} xi_i)代表误差,误差越小越好;(|w|)和间隔有关,(|w|)越小,间隔越宽。C是超参数,用来调节两者关系;C取得越大,对误分类的惩罚越大,当C趋于无穷大,目标函数就退化为第一部分的硬间隔最大化的目标函数;一般C取得小一些,允许训练集的少数点被分类错,从而可以达到比较好的泛化能力。
3 拉格朗日乘子法求解
3.1 构造拉格朗日函数:
其中(alpha = (alpha_1,alpha_2,cdots,alpha_N)^T)是拉格朗日乘子,(alpha_i geq 0); (mu = (mu_1, mu_2, cdots, mu_N)^T)也是拉格朗日乘子,(mu_i geq 0)。
3.2 把w,b,(xi)看作常数,构造一个函数 ( heta) 定义为(L(w,b,xi,alpha,mu))关于(alpha, mu)求最大值
3.3 原始问题 $ quad min limits_{w,b} frac{1}{2}|w|^2 +C sum_{i=1}^{N}xi_i quad$等价于 $ quad min limits_{w,b,xi} max limits_{alpha,mu} L(w,b,xi,alpha,mu) quad$。
根据拉格朗日对偶性,问题可变为 $ quad max limits_{alpha,mu} min limits_{w,b,xi} L(w,b,xi,alpha,mu) quad$
(1) 求(min limits_{w,b,xi} L(w,b,xi,alpha,mu) quad)
对w,b,(xi_i)分别求偏导数:
(qquad)令偏导数=0得到:
(qquad)将这三个式子带回拉格朗日函数(L(w,b,xi,alpha,mu))得到:
(2) 求 (min limits_{w,b,xi} L(w,b,xi,alpha,mu)) 对 (alpha,mu) 的极大,(max limits_{alpha,mu} {-frac{1}{2} sum_{i=1}^{N}sum_{j=1}^{N} alpha_ialpha_j y_i y_j (x_i x_j) + sum_{i=1}^{N} alpha_i}) ,加负号得到:
消去(mu_i),从而只剩下 (alpha_i),得到:
(3) 假设求出了(2)中 (alpha) 的最优解 (alpha^* =(alpha_1^*,alpha_2^*,cdots,alpha_N^*)^T)
(w) 的解为 (w^*=sum_{i=1}^{N} alpha_i^* y_i x_i)
选择 $ alpha_i^* $ 的一个正分量 $ 0<alpha_i^*<C $ , b的解为 (b*=y_j -w^*x_j=y_j - sum alpha_i^* y_i (x_i x_j))
4 支持向量物理意义
支持向量物理意义:
在线性不可分的情况下,支持向量不仅包括落在间隔边界上的样本点,还包括落在间隔带内的样本点以及误分类的点。落在间隔边界的点,(xi_i=0,alpha_i<C) .落在间隔带内的点或者误分类的点,(xi_i>0,alpha_i=C).
参数C和(gamma)的影响直观理解:
http://blog.csdn.net/robin_xu_shuai/article/details/77051258
C越大,对错误分类的惩罚越大,容忍越小。
三、非线性的支持向量机
常用核函数:
多项式核函数
高斯核函数