在上一篇学习SVM中 从最大间隔角度出发,详细学习了如何用拉格朗日乘数法求解约束问题,一步步构建SVM的目标函数,这次尝试从另一个角度学习SVM。
回顾监督学习要素
-
数据:((x_i,y_i))
-
模型 (hat{y_i} = f(x_i))
-
目标函数(损失函数+正则项) (l(y_i,hat{y}_i))
-
用优化算法求解
SVM之Hinge Loss
-
模型
svm要寻找一个最优分离超平面,将正样本和负样本划分到超平面两侧
[f(x) = old w^ op cdot old x +b
]
-
目标函数
[underset{w,b}{min}sum^N_{i=1}max(0,1-y_i(old w^ op cdot x_i+b))+lambda ||old w||^2 ]损失函数+正则化
-
优化算法
梯度下降(求导时需要分段求导,见[1])
为什么是Hinge Loss
- 保持了支持向量机解的稀疏性
上图横轴 (yf(x)>0) 表示预测和真实标签一样,纵轴表示损失。可以看处Hinge Loss 和其他loss的区别在于,当 (y_if(x_i) geq 1) 时,损失函数值为 0,意味着对应的样本点对loss没有贡献,就没有参与权重参数的更新,也就是说不参与最终超平面的决定,这才是支持向量机最大的优势所在,对训练样本数目的依赖大大减少,而且提高了训练效率。
[1] https://blog.csdn.net/oldmao_2001/article/details/95719629
[2] https://www.cnblogs.com/guoyaohua/p/9436237.html
[3] https://blog.csdn.net/qq_32742009/article/details/81432640