支持向量机推导过程
支持向量机是机器学习中最复杂的内容之一,以下就展示支持向量机具体推导过程。
推导分为以下几个部分:
- 数据线性可分
- 拉格朗日乘子以及对偶问题
- 数据部分线性可分
-
当数据线性可分时原始优化问题推导
支持向量机的核心在于在空间中找到一个超平面(决策平面):
w T x + b = 0 {w^T}x + b = 0 wTx+b=0使得两类样本点分布在超平面的两侧,对于正样本y=+1,满足:
w T x + b > 0 {w^T}x + b > 0 wTx+b>0对于负样本y=-1,满足:
w T x + b < 0 {w^T}x + b < 0 wTx+b<0假设正负样本中都有一些点离这个超平面最近,那么这些样本点所在的平面为:
w T x + b = ± A {w^T}x + b = \pm A wTx+b=±A这里A的大小没有意义,可以用1来代替,原因是A只是表示两个平面之间的相对距离的远近而已,我们想求的是绝对距离。
绝对距离为:
2 ∥ w ∥ \frac{ {2}}{ {\left\| w \right\|}} ∥w∥2
样本点满足的约束为:
w T x i + b ≥ 1 , f o r    y i = 1 w T x i + b ≤ − 1 , f o r    y i = − 1 \begin{array}{l} {w^T}{x_i} + b \ge 1,for\;{y_i} = 1\\ {w^T}{x_i} + b \le -1,for\;{y_i} = - 1 \end{array} wTxi+b≥1,foryi=1wTxi+b≤−1,foryi=−1即:
y i ( w T x i + b ) ≥ 1 {y_i}({w^T}{x_i} + b) \ge 1 yi(wTxi+b)≥1支持向量机的分类方法就是让离超平面最近的正负样本所在的平面之间的距离尽可能大,因此问题转化成一个最优化问题:
{ min w , b        1 2 ∥ w ∥ 2 s . t .            y i ( w T x i + b ) ≥ 1 ,            i = 1 , 2 , . . . , n \left\{ \begin{array}{l} \mathop {\min }\limits_{w,b} \;\;\;\frac{1}{2}{\left\| w \right\|^2}\\ s.t.\;\;\;\;\;{y_i}\left( { {w^T}{x_i} + b} \right) \ge 1,\;\;\;\;\;i = 1,2,...,n \end{array} \right. { w,bmin21∥w∥2s.t.yi(wTxi+b)≥1,i=1,2,...,n -
原始问题转化成对偶问题
由于原始问题存在约束条件,为了简化问题,我们想到将目标函数和约束融入一个新的函数,也就是拉格朗日函数,通过这个函数来寻找最值。
原始问题的拉格朗日函数为:
L = 1 2 ∥ w ∥ 2 + ∑ i = 1 n α i ( 1 − y i ( w T x i + b ) ) ,            i = 1 , 2 , . . . n L = \frac{1}{2}{\left\| w \right\|^2} + \sum\limits_{i = 1}^n { {\alpha _i}\left( {1 - {y_i}\left( { {w^T}{x_i} + b} \right)} \right)} ,\;\;\;\;\;i = 1,2,...n L=21∥w∥2+i=1∑n