SVM的损失函数(Hinge Loss)

损失函数

是用来衡量一个预测器在对输入数据进行分类预测时的质量好坏。损失值越小,分类器的效果越好,越能反映输入数据与输出类别标签的关系(虽然我们的模型有时候会过拟合——这是由于训练数据被过度拟合,导致我们的模型失去了泛化能力)。
相反,损失值越大,我们需要花更多的精力来提升模型的准确率。就参数化学习而言,这涉及到调整参数,比如需要调节权重矩阵W或偏置向量B,以提高分类的精度。

Hinge Loss

多分类svm:

损失函数的计算方法为:L_i={sum_{}^{j
eq{y_i}}}max(0,s_j -s_y_i + Delta ),其中i代表第i个样品,j代表第j个种类,那么y_i代表第i个

样品的真实种类。

其中,常用的数学表达式为:s_j=w_{T}^{j}x_i,但为了与代码中的统一,从而稍微变动以下s_j=x_iw_j,对于y_i来说同理。

计算正确类的预测值,和其他类的预测值之间的差距,如果正确类的预测值大于所有不正确的预测值则损失函数为0,证明当前的W和b所计算得到的效果很好。
当把损失值推广到整个训练数据集,则应为:
在这里插入图片描述

两分类SVM:

在二分类情况下,铰链函数公式如下:

L(y) = max(0 , 1 – t⋅y)

其中,y是预测值(-1到1之间),t为目标值(1或 -1)。其含义为:y的值在 -1到1之间即可,并不鼓励 |y|>1,即让某个样本能够正确分类就可以了,不鼓励分类器过度自信,当样本与分割线的距离超过1时并不会有任何奖励。目的在于使分类器更专注于整体的分类误差。

计算案例

 三个图片的损失和整体损失:

原文地址:https://www.cnblogs.com/wqbin/p/12175046.html