之间已经介绍过几个比较经典的 loss function 啦,这里再补充三个最近看到的 loss function。
Large Margin Cosine Loss
这个 loss function 的提出,基本思想是将损失函数的计算从距离空间转换到角度空间。
欧几里得空间 (距离空间) → 余弦空间 (角度空间)
首先复习一下 softmax loss:
Ls=N1i=1∑N−logpi=N1i=1∑N−log∑j=1Cefjefyi
- N:训练样本数;
-
pi 是 xi 被正确分类的后验概率;
-
C 是类别数目;
-
fj 表示全连接层的**公式,有 fj=WjTx=∥Wj∥∥x∥cosθj 。(令偏重 Bj=0)
为了消除径向方向的影响,令 ∥Wj∥=1 ,∥x∥=s 。
为了充分提高损失函数的分类能力,引入余弦余量 m,得到 Large Margin Cosine Loss (LMCL) 定义如下:
Llmc=N1i∑−loges(cos(θyi,i)−m)+∑j̸=yiescos(θj,i)es(cos(θyi,i)−m)
其中,
Wxcos(θj,i)=∥W∗∥W∗=∥x∗∥x∗=WjTxi
以二分类问题为例,比较 Softmax loss,Normalized softmax loss (NSL),A-Softmax loss,LMCL四种损失函数的决策边界:
- Softmax:∥W1∥cos(θ1)=∥W2∥cos(θ2)
- NSL:cos(θ1)=cos(θ2)
- A-Softmax:C1C2:cos(mθ1)≥cos(θ2):cos(mθ2)≥cos(θ1)
- LMCL:C1:cos(θ1)≥cos(θ2)+mC2:cos(θ2)≥cos(θ1)+m
![各种 loss 学习笔记 各种 loss 学习笔记](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzI5Mi8zNDU2M2ZkZGJlMmI0NmJmZTNkM2FkY2M5NzU1NjNjNC5wbmc%3D.png?w=700&webp=1)
参考论文链接:https://arxiv.org/abs/1801.09414
Additive Angular Margin Loss
ArcFace 和 CosFace 的基本思想差不多,只不过在添加余弦余量 m 的方式上略有不同,ArcFace 的loss function 为:
LArc=−N1i=1∑Nloges(cos(θyi+m))+∑j=1,j̸=yinescosθjes(cos(θyi+m))
通过一个联合的式子来概括SphereFace(m1),ArcFace(m2),CosFace(m3):
Luni=−N1i=1∑Nloges(cos(m1θyi+m2)−m3)+∑j=1,j̸=yinescosθjes(cos(m1θyi+m2)−m3)
几何上的差异可以直观地表示为:
![各种 loss 学习笔记 各种 loss 学习笔记](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkxOS83MzViMDI1MzJlOGI0OTJmMWM5ODI2NjRjNDQ3MGVlZi5wbmc%3D.png?w=700&webp=1)
参考论文链接:https://arxiv.org/abs/1801.07698v1
Adaptive Cosine-based Loss
之前讲的 LMCL 有两个关键的超参数 s 和 m ,是需要手动进行调参的,而 Adaptive Cosine-based Loss 则是增加了自适应调整这两个参数的部分。
分析:s 要大一点好,但不能太大;同样,m 也是大点好,但不能太大。与尺度参数 s 相比,余弦余量 m 仅使曲线同相移动,因此 AdaCos 将 m 从损失函数中消除,只自动调整 s。
最后得到的固定尺度参数 s~f 和动态自适应尺度参数 s~d(t) 为:
s~f=cos4πlogBi=cos4πlog∑k̸=yies⋅cosθi,k≈2⋅log(C−1)
s~d(t)=⎩⎨⎧2⋅log(C−1)cos(min(4π,θ med (t)))logB avg (t)t=0t≥1
其中,Bavg(t)=N1∑i∈N(t)Bi(t)=N1∑i∈N(t)∑k̸=yies~d(t−1)⋅cosθi,k
每次一迭代中,动态自适应尺度参数 s~d(t) 对分类概率 Pi,j(t) 的影响都不相同,并且有效地影响了更新网络参数的梯度信息 (∂xi∂L(xi),∂Wj∂L(Wj)) :
Pi,j(t)=∑k=1Ces~d(t)⋅cosθi,kes~d(t)⋅cosθi,j
∂xi∂L(xi)=∑j=1C(Pi,j(t)−1(yi=j))⋅s~d(t)∂xi∂cosθi,j∂Wj∂L(Wj)=(Pi,j(t)−1(yi=j))⋅s~d(t)∂Wj∂cosθi,j
参考论文链接:https://arxiv.org/abs/1905.00292