URL: http://arxiv.org/abs/1612.02295

ICLR2016的一篇论文,出发点挺直接的一篇论文,主要在优化Softmax Loss,提出了Large-Margin Softmax Loss来促使网络学到更加有区分度的Feature.

首先来分解一下Softmax Loss的计算:

这里的f就是最后一层FC的输出: fyi = WyiT * xi, xi代表第i张图抽取出来的feature,Wyi就是最后一层FC连接到前一层feature的weights,其实可以理解为yi类在高维空间的类中心. 又因为向量的内积可以直接转化成cosine运算:

WyiT * xi = ||Wj|| ||xi|| cos(θj), θj当然就是这两个向量之间的夹角了. 所以Softmax Loss又可以转化成:

那么Large-Margin Softmax Loss提出了和SVM类似的分类平面的问题,它希望inter-class之间的margin可以大一些,所以在Softmax Loss的基础上引入一个变量m来控制分类平面的margin.

在原始的Softmax Loss中针对一个二分类问题,假设样本x属于类别1,那么我们希望||W1|| ||x|| cos(θ1) > ||W2|| ||x|| cos(θ2), (cosine在[0,π]区间内是一个单调递减的函数,同时指数函数还是一个单调递增的函数),那么在Large-Margin Softmax Loss上就转化成||W1|| ||x|| cos(mθ1) > ||W2|| ||x|| cos(θ2),所以Large-Margin Softmax Loss:

其中:

同时满足D(π/m) = cos(π/m). 论文里面取:

论文里给的一张示意图挺能说明Large-Margin Softmax Loss的insight的:

效果上面当然也挺好了: