多类别SVM损失和交叉熵损失是机器学习中两种常用的损失函数,为了加深自己对它们的理解也便于以后回顾,下面以表格的形式从它们的主要思想、对应的分类器、损失计算公式以及对权重矩阵的梯度计算公式四个方面进行对比。
比较项目 | 多类别SVM损失(又称hinge loss) | 交叉熵损失(cross-entropy loss) |
---|---|---|
主要思想 | 正确的类别结果获得的得分比不正确的类别至少要高一个阈值 Δ Δ | 从信息论角度理解,最小化预测结果的概率分布与真实标签的概率分布的差异;从概率角度理解,最小化预测结果概率分布的负对数似然或对权重矩阵进行极大似然估计 |
对应的分类器 | 多类别SVM分类器 | Softmax分类器(上面对数符号里面的是softmax函数,它会将得分f映射为0~1之间的概率) |
损失计算公式(对于输入xi) | Li=Σj≠yimax(0,f(xi,W)j−f(xi,W)yi+Δ),f(xi,W)j L i = Σ j ≠ y i m a x ( 0 , f ( x i , W ) j − f ( x i , W ) y i + Δ ) , f ( x i , W ) j 是属于第j类的得分, yi y i 是真实类别 | Li=−logefyiΣjefj L i = − l o g e y i f Σ j e f j ,真实标签的概率分布是仅在类别 yi y i 处为1,其余类别为0的向量 |
梯度计算公式 |
∇wyiLi=∇wjLi=−(∑j≠yi1(wTjxi−wTyixi+Δ>0))xi1(wTjxi−wTyixi+Δ>0)xij=yij≠yi
∇
w
y
i
L
i
=
−
(
∑
j
≠
y
i
1
(
w
j
T
x
i
−
w
y
i
T
x
i
+
Δ
>
0
)
)
x
i
j
=
y
i
∇
w
j
L
i
=
1
(
w
j
T
x
i
−
w
y
i
T
x
i
+
Δ
>
0
)
x
i
j
≠
y
i
1表示示性函数,括号内的自变量大于0取1 |
∇wyiLi=∇wjLi=−xi+efyi∑jefjxiefj∑jefjxij=yij≠yi
∇
w
y
i
L
i
=
−
x
i
+
e
f
y
i
∑
j
e
f
j
x
i
j
=
y
i
∇
w
j
L
i
=
e
f
j
∑
j
e
f
j
x
i
j
≠
y
i
|
下面贴一张图进行便于直观理解
参考资料:
1.深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器
2. cs231n 课程作业 Assignment 1