一.Center loss的缺点
-
类别较多时,对硬件要求较高。
-
L2范数的离群点对loss的影响较大。
详情见博客:『损失函数』Center Loss
二.补充:
-
Softmax loss:扩大类间距( L S L_S LS);
-
Center loss缩小类内距( L C L_C LC)。
-
Softmax loss与Center loss联合使用: L 2 = L S + L C L_2=L_S+L_C L2=LS+LC
-
存在的问题:Center loss不能将类内距缩小的非常小。当特征较多时,即,类较多时,就会很多类在一个平面(二维)挤在一起(MNSIT数据集和人脸识别对比)。
-
Softmax loss与Center loss联合使用的基础在于Softmax loss。
-
不考虑Center loss,在Softmax loss的基础上扩大类间距。
-
引入Arc-softmaxLoss。
三.Arc-SoftmaxLoss
1.理论:
看这篇博客: https://blog.csdn.net/u012505617/article/details/89355690
(1)向量相关性的表示方法
- 欧氏距离:
https://blog.csdn.net/huangfei711/article/details/78469614
- 余弦相似度
更加注重两个向量在方向上的差异。
https://blog.csdn.net/huangfei711/article/details/78469614
- 余弦距离
https://blog.csdn.net/lucky_kai/article/details/89514868
-
公式:1-余弦相似度
-
余弦距离越小,向量相关性越大。反之,依然。
-
更加
(2)如何将两个向量之间角度变大,变得不相关?
- 方法1:在原始角度上+新的角度。如:cos(θ+m)。
- 方法2:余弦值上减去一定数值。如:(cosθ)-m。
(3)实际应用中余弦相似度取值范围?
(0,1)。类似于 ReLU函数 。负值归为0。
(4)余弦相似度与欧氏距离的区别
距离:衡量空间两个点之间的绝对距离,与所在坐标相关。
余弦相似度:衡量空间向量的夹角,更加体现方向上的差异。
-
距离大(欧氏距离),相似度越小(余弦相似度)。
-
距离越小,相似度越大(欧氏距离和余弦距离)----这句话是真理。反过来不一定成立。
(5)将余弦相似度和欧氏距离变的等价性。
标准化:取均值,做归一化。
- 首先,取均值;如:a(1,2),b(4,5),其中范围为(1,5),则,均值为3------>a(-2,-1),b(1,2);
- 然后,归一化;a(-1,-0.5),b(0.5,1)。
- 最后,计算。计算欧氏距离:较大(就不计算了);计算余弦相似度:-0.8。
标准化后的两个向量,他们的欧氏距离的平方与余弦距离成正比。
(6)回顾Softmax loss
(7)带入 a j a_j aj的完整式子
(8)余弦相似度代替 a j a_j aj的完整式
偏置为0。函数为W和X求内积的公式。使用余弦相似度代替。
(9)归一化
Softmax loss函数的目标是最大化的正确分类,如果直接使用Softmax loss,可能会忽略到难分的特征(如:低质量图片),优先拟合高质量图片。
所以,强行将特征(w和b)做归一化。与余弦相似度做标准化一样,让图片变在一个范围内,提高效果,获得网络的注意力,不会照顾特别好学的样本。
对W归一化,没办法人为改变;角度可认为改变。
(10)A-SoftmaxLoss
将权重W归一化 ,b = 0。这使得模型的预测仅取决于 W 和 X 之间的角度。 (其实,也没x,只与w和x之间的夹角有关系)
角度加了值m(1<m)。A-Softmaxloss是一种增加角度乘积系数的方式来增大角度分类的。
(11)AM-SoftmaxLoss
用减小相似度系数的方式来增大向量之间的距离。
根据Normface,对f进行归一化,乘上缩放系数s,最终的损失函数变为:
m的取值范围:0-1。因为相似度系数的取值范围为0-1(负数归为0)。
(12)对比
-
A-SoftmaxLoss是用m乘以θ,而AM-SoftmaxLoss是用cosθ减去m,这是两者的最大不同之处:一个是角度距离,一个是余弦相似度距离。
-
在反向计算中,求乘法没有求减法简单。
(13)Arc-SoftmaxLoss
角度和距离(余弦值)哪个对分类更好?
- 增大角度比减小相似度距离对分类的影响更加直接,所以,可以改为直接增加角度的方式。
- 余弦距离比较密集。
- 角度+m:避免乘法计算导数不方便,又避免距离没有角度好的现象。
式中,分母上右边去掉变化的角度,左边又加上。