首先感谢原文作者: https://blog.youkuaiyun.com/u014380165/article/details/76946358
1. 总结
看过五种基本的损失函数改进之后,对损失函数的改进方向有了一个基本的认识。
这五个方向的改进大概分为两类,1,2,3,5一类,4一类
- 1.2.3.5 角度化改进与中心点改进
这一类改进方法的核心是尽可能使同一类分类结果集中,不同类分类结果分散。
1,2,5一脉相承,核心思路是关注向量之间的角度,通过限制角度范围提高训练难度,增强测试时候的准确度。
2则是为各个分类添加一个类核心,将元素与核心的距离加入到损失函数的考虑中来。 - 4给予不同分类结果不同的权重
简单的分类问题,其损失函数所占比重较低。比较困难的分类问题,损失函数所占比重较高。
现在觉得,在进一步深入探究损失函数的作用之前,必须着手尝试搭建一个简单的神经网络,直观地加深各个参数的变化对最终训练结果的影响。
2.各个损失函数的笔记
2.1 Large Margin SoftMax loss
其中公式φ的定义为:
D函数是一个单调递减函数,而且D(Π/m)=cos(Π/m)
2.2 Center Loss
2.3 Angular Softmax Loss
关于参数m的选择,作者说明了:
对于二分类,m需要满足mmin > 2+√3
对于多分类,m需要满足mmin > 3
2.4 Focal Loss
这是一个思路不同的Loss改进方法,目标是使错误分类的样例对最后结果造成更大影响。正确样例尽量忽略。
2.5 Additive Angular Margin Loss
在角度空间上为角度加上了m,而不是之前的*m
2.6 LCML
由腾讯人工智能实验室提出的损失函数,由上面的绿色曲线表示,可以看出其训练难度与5大致持平,而且在角度极大时难度不会下降。
其不同之处在于用于造成空白(margin)的参数m添加在了cos空间上
注意它与5的区别,实际操作时效果差别也不大