支持向量机SVM
1 基本概念
支持向量机核心在于寻找分隔超平面,写为$\mathtt{w}^T\mathtt{x}+b$,任意一点到超平面的距离为$\frac{|\mathtt{w}^T\mathtt{A}+b|}{||\mathtt{w}||}$。
以平台上的直线为例,直线$Ax+By+C=0$,点$(x_0,y_0)$到直线的距离为$\frac{|Ax_0+By_0+C|}{\sqrt{A^2+B^2}}$ttt $ \frac {|Ax_0+By_0+C|} {\sqrt{A^2+B^2}} $。
为寻找最优超平面,设计函数$f(\mathtt{w}^T\mathtt{x}+b)$,其中当$\mu\lt 0$时$f(\mu)$为-1,反之为+1,这样的好处是,可以算所有点到超平面距离之和,间距为$label*(\mathtt{w}^T\mathtt{x}+b)$,现在的目标就是找到最优的w和b,使得所有点到超平面的距离是最小的,即$$\arg\max_{w,b}\{\min_n(label\cdot(\mathtt{w}^Tx+b))\cdot\frac{1}{\lVert\mathtt{w}\rVert}\}$$,其中除以$\lVert\mathtt{w}\rVert$的目的是保证距离超平面最近的点距离超平面的距离为1,其他距离大于1 ,约束条件即为$label*(\mathtt{w}^T\mathtt{x}+b)\ge 1$。
此优化问题最适合用拉格朗日乘子法求解。将上述问题写成数据点的形式:
$$\max_{\alpha}[\sum_{i=1}^m\alpha-\frac{1}{2}\sum_{i,j=1}^mlabel^{(i)}\cdot label^{(j)}\cdot\alpha_i\cdot\alpha_j\langle x^{(i)},x^{(j)}\rangle]$$
其中,$\langle x^{(i)},x^{(j)}\rangle$表示$x^{(i)}$和$x^{(j)}$两个向量的内积,其约束条件为$$\alpha\ge 0,和\sum_{i-1}^m\alpha_i\cdot label^{(i)})=0$$
这里,假设所有数据都是线性可分的。如果所有的数据不能被完美线性可分,这时引入松弛变量,允许数据点分在错误的一侧,此时的约束条件为:
$$C\ge\alpha\ge 0,和\sum_{i-1}^m\alpha_i\cdot label^{(i)})=0$$
这里的常数C用于控制“最大化间隔”和“保证大部分点的函数间隔小于1.0”这两个目标。
引用《机器学习实战》一书。

浙公网安备 33010602011771号