支持向量机Support Vector Machine(SVM)

二元SVM

SVM是一种有监督学习方法,因为它可以最大化几何边缘,所以又被称为最大间隔分类器

目标函数

f(x)=\sum{w_ix_i} +b

损失函数

L=C\sum_i^n {max(0,1-y_if(x_i))}+\sum _i^n{w_i^2}

即:当真实的label y_i 为1时, 损失函数变为

L=C\sum_i^n {max(0,1-f(x_i))}+\sum _i^n{w_i^2}

此时的函数图像如下

支持向量机Support Vector Machine(SVM)_第1张图片

此时,只要目标函数f(x_i)>1 时损失就为0。

当真实的label y_i 为-1时,损失函数为

L=C\sum_i^n {max(0,1+f(x_i))}+\sum _i^n{w_i^2}

此时的函数图像如下

支持向量机Support Vector Machine(SVM)_第2张图片

此时,只要目标函数f(x_i)<-1 时,损失就为0。

为什么SVM是最大间隔分类器

根据SVM的损失函数,我们需要计算f(x_i)=w_i^Tx(为方便计算,这里将偏置项b省略),为了使损失最小,需要根据不同的label值,尽可能使得f(x_i)>1 或者f(x_i) <-1

而在线性代数中,我们可以将w^Tx 转换成另外一种形式。举例来说,假设我们有向量A=\begin{bmatrix} x_1\\ x_2 \end{bmatrix},W=\begin{bmatrix} w_1\\ w_2 \end{bmatrix}

支持向量机Support Vector Machine(SVM)_第3张图片

 

则它们的内积W^TA=p||W||,其中p为A在W上的投影,当p与w方向相同时为正数,否则为负数,||W||为向量W的长度。

支持向量机Support Vector Machine(SVM)_第4张图片

所以f(x_i) = w_i^Tx=p_i||w||, 我们要让其大于1或小于-1,由于损失函数中有加入w的长度作为正则项,我们需要减小||w|| ,增大p_i 。假设W=\begin{bmatrix} 2\\ 1 \end{bmatrix},X=\begin{bmatrix} x_1\\ x_2 \end{bmatrix},为方便计算,省略偏置项b,则W^TX=0,我们画出SVM的超平面(注意横纵坐标),如图

支持向量机Support Vector Machine(SVM)_第5张图片

 

由于W^TX=0,所以W和超平面垂直,由图可以看出,每个点在参数向量W的投影p都等于该点到超平面的距离,而我们正需要增大p,所以SVM可以最大化数据与分类超平面的间隔。

参考文献:http://blog.csdn.net/han_xiaoyang/article/details/52679559

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(机器学习,机器学习,SVM)