SVM常用损失函数

Hinge Loss

表达式为:
Li=jyimax(0,sjsyi+1)L_{i}=\sum_{j\ne y_{i}}max(0, s_{j}-s_{y_{i}}+1)
实际上可以写成:
f(n)=jyi{0,if syi>sj+1sjsyi+1,otherwisef(n) =\sum_{j\ne y_{i}} \begin{cases} 0, & \text{if $s_{y_{i}}>s_{j}+1$} \\ s_{j}-s_{y_{i}}+1, & \text{otherwise} \end{cases}
其中syis_{y_{i}}是指第ii个样本的对应的其正确标签的得分,sjs_{j}是指这个样本对应的第jj个标签的得分。
即对于第ii个样本,有:
sj=f(xi;W)js_{j}=f(x_{i};W)_{j}
syi=f(xi;W)yis_{y_{i}}=f(x_{i};W)_{y_{i}}
比如下图中,对三张图片进行分类,一共有cat,car,frogcat, car, frog三类。每张图片对应的每个类别的得分如下:
SVM常用损失函数则对于第一张图片,它的hinge loss 为:
(5.13.2+1)+0=2.9(5.1-3.2+1)+0=2.9
对于第二张图片,它的hinge loss 为:
0+0=00+0=0
对于第三张图片,它的hinge loss 为:
(2.2(3.1)+1)+(2.5(3.1)+1)=12.9(2.2-(-3.1)+1)+(2.5-(-3.1)+1)=12.9
所以对于这个包含三张图片的数据集来说,其hinge loss为:
L=1Ni=1NLiL=\frac{1}{N}\sum_{i=1}^{N}L_{i}
=(2.9+0+12.9)/3=5.27=(2.9+0+12.9)/3=5.27
注:使L=0L=0的权重WW并不唯一,如2W2W同样可以使损失为0。
我们关心的是分类器在测试集而不是训练集中的效果,所以为了防止过拟合,我们使用正则化。
L=1Ni=1Njyimax(0,f(xi;W)jf(xi;W)yi+1)+λR(W)L=\frac{1}{N}\sum_{i=1}^{N}\sum_{j\ne y_{i}}max(0, f(x_{i};W)_{j}-f(x_{i};W)_{y_{i}}+1)+\lambda R(W)
L2L2正则化中,R(W)=klWk,l2R(W)=\sum_{k}\sum_{l}W_{k, l}^{2}
L1L1正则化中,R(W)=klWk,lR(W)=\sum_{k}\sum_{l}|W_{k, l}|
弹性网络(Elastic  netElastic\;net)正则化中,R(W)=klβWk,l2+Wk,lR(W)=\sum_{k}\sum_{l}\beta W_{k, l}^{2}+|W_{k, l}|。(其实就是L1+L2L1+L2)

Softmax loss

输入xix_{i}时,将一张图片定义为第kk个标签的概率为P(Y=kX=xi)=eskjesjP(Y=k|X=x_{i})=\frac{e^{s}k}{\sum_{j}e^{s}j},其中s=f(xi;W)s=f(x_{i}; W)
定义Li=logP(Y=yiX=xi)=log(eskjesj)L_{i}=-logP(Y=y_{i}|X=x_{i})=-log(\frac{e^{s}k}{\sum_{j}e^{s}j})
具体计算过程如下图:
SVM常用损失函数同样地,对于softmaxsoftmax,正则化同样适用解决过拟合问题。