目前AutoML技术非常火,尤其是NAS领域,之前有一篇文章已经对现有的AutoML技术做了总结,可阅读【AutoML:Survey of the State-of-the-Art】。 论文:AM-LFS:AutoML for Loss Function Search
不过这篇文章将介绍一下如何使用AutoML技术来搜索损失函数。一般来说,损失函数都是需要我们手动设计的,以分类任务而言,我们通常会使用交叉熵。碰到数据集imbalanced的情况,可能会给每个类别加上一个权重。在RetinaNet论文里为目标检测任务提出了FocalLoss。上述都是对交叉熵函数根据特定任务做了修改,可是这样的修改通常需要我们能够洞察到问题的本质,换句话说这需要专业的知识。那我们这种蔡文姬还有设计loss函数的机会吗?商汤科技在这方面做了探索,下面将介绍论论文细节。
论文有两大贡献:
除了在概率上做变化外,Focal Loss对softmax loss做了如下变化:
3.2 margin-based softmax loss
其中
同理相对于原始的softmax loss(公式1)的重要性比率是:
进一步可以求得:
4. 搜索空间
基于第3节的分析,我们可以知道可以在公式(3)作如下两处的变换:
5. 优化
双层(Bilevel)优化定义如下:
原论文给出了在多个不同类型的数据集的结果:
本小节是我自己在读完这篇论文后的一些存疑或者觉得需要讨论的点:
本篇文章是基于自己的理解写的,所以可能会有不正确的地方,欢迎指正!