论文提出了Circle loss,不只可以对类内优化和类间优化进行单独地处理,还能根据不一样的类似度值调整对应的梯度。整体而言,Circle loss更灵活,并且优化目标更明确,在多个实验上都有较好的表现,我的认为是一个很好的工做
来源:晓飞的算法工程笔记 公众号
论文: Circle Loss: A Unified Perspective of Pair Similarity Optimization算法
论文认为两类基础的深度特征学习方法classification learning(好比softmax)和pair-wise learning(好比triplet loss)均是为了最小化类内类似度$s_n$和类间类似度$s_p$,理想是$(s_n=0, s_p = 1)$。而大部分经常使用的损失函数都是将$s_n$和$s_p$embed成类似度对,而后用各自研究的策略最小化$(s_n-s_p)$的值。这种策略提高$s_p$等同于降低$s_n$,但其实这种对称的优化方法很容易存在如下问题:微信
基于上面的发现,论文认为不一样的类似分数应该有不一样的惩罚力度,首先将$(s_n - s_p)$转换为$(\alpha_n s_n - \alpha_p s_p)$,$\alpha_n$和$\alpha_p$是独立的权重因子,分别与$s_n$和$s_p$线性相关,这样不只使得$s_n$和$s_p$能以不一样的步伐进行学习,还能够更具类似分数调整幅值。这样的优化策略使得$\alpha_n s_n - \alpha_p s_p=m$在$(s_n, s_p)$空间内呈现圆形,故称为Circle loss。
Circle loss主要从如下3个方面入手改变深度特征学习的内在特性:ide
论文的主要贡献以下:函数
给予特征空间的单样本$x$,假设有$K$个类内类似分数和$L$个类间类似分数关联$x$,定义类似度分数为$\{s^i_p\}(i=1,2,\cdots,K)$和$\{s^i_n\}(i=1,2,\cdots,L)$。学习
为了最小化每一个$s^j_n$以及最大化每一个$s^i_p$,统一的损失函数如公式1,其中$\gamma$为缩放因子,$m$为边际(margin)。公式1迭代每一个类似度对来减少$(s^j_n-s^i_p)$,经过简单的修改就能变为triplet loss和classification loss。优化
在分类层计算样本$x$与各种的类似度以及权重向量$w_i (i=1,2,\cdots,N)$,获得$(N-1)$个类间类似度$s^j_n=w^T_j x/(||w_j||\ ||x||)$以及单个类内类似度$s_p = w^T_y x/(||w_y||\ ||x||)$。spa
结合公式1,获得公式2的softmax变种AM-Softmax,当$m=0$时,公式2可以进一步变化为Normface,当将cosine类似度替换为内积以及设置$\gamma=1$时,则为softmax loss。orm
计算mini-batch中样本$x$与其它样本的类似性,获得类间类似度$s^j_n=w^T_j x/(||x_j||\ ||x||)$以及单个类内类似度$s^i_p = w^T_y x/(||x_i||\ ||x||)$。blog
结合公式1,$K=|\mathcal{P}|$,$L=|\mathcal{N}|$,获得带hard mining的triplet loss,$\sum exp(\cdot)$用于调节mining的程度,当$\gamma \to + \infty$时,就是绝对的hard mining。图片
公式2和公式3展现了公式1的通用性,目标均是优化$(s_n-s_p)$。论文假设仅存在单个$s_p$和$s_n$,各类损失函数的梯度进行了可视化,如图2所示,观察到了主流损失函数的几点梯度表现:
为了让每一个类似度分数可以根据当前优化状态调整学习的幅度,先忽略公式1的$m$并调整为Circle loss,如公式4所示,$\alpha^j_n$和$\alpha^i_p$为非负权重因子。
假定$s^i_p$的最优值为$O_p$,$s^j_n$的最优值为$O_n(O_n < O_p)$,则$\alpha^j_n$和$\alpha^i_p$的计算如公式5,称为self-paced manner,$[\cdot]_+$为cut-off at zero操做来保证$\alpha^j_n$和$\alpha^i_p$非负。
加权是分类loss中的常见操做,全部的类似度分数共享同一个缩放因子$\gamma$,而Circle loss则根据每一个类似度分类的值再进行一次独立的加权,容许不一样的学习幅度,可以更加地灵活。
在以前的讨论中,主流损失函数的$(s_n-s_p)$的优化是对称的(减小$s_n$等同于增大$s_p$),仅需一个边际(margin)便可。而在Circle loss中,$(s_n-s_p)$的优化是非对称的,所以须要设置独立的边际,如公式6,其中$\Delta_n$和$\Delta_p$为类间边际和类内边际,目标是$s^i_p>\Delta_p$以及$s^j_n<\Delta_n$,下面探讨边际的设置问题。
考虑简单的二分类问题,决策边界为$\alpha_n(s_n - \Delta_n)-\alpha_p(s_p-\Delta_p)=0$,结合公式5和6,决策边界可转换为公式7,其中$C=((O_n-\Delta_n)^2+(O_p-\Delta_p)^2)/4$,即为Circle loss决策边界为圆的弧,如图1b所示,中心点为$(s_n=(O_n+\Delta_n)/2, s_p=(O_p+\Delta_p)/2)$,半径为$\sqrt{C}$。
Circle loss包含5个参数$(O_p, O_n, \gamma, \Delta_p, \Delta_n)$,论文经过设置$O_p=1+m$,$O_n=-m$,$\Delta_p=1-m$,$\Delta_n=m$来减小参数,最终将公式7转换为公式8。基于公式8的决策边界,能够看到其目标为$s_n \to 0$和$s_p \to 1$,参数$m$控制决策边界的半径能够看做是松弛因子,便可将Circle loss目标改成$s^i_p>1-m$和$s^i_n<m$。
Circle loss关于$s^j_n$和$s^i_p$的梯度分别为公式9和公式10,在简单的二分类问题上,梯度的可视化如图2c所示,能够观察到几点梯度表现:
经过观察图4发现:
论文可视化了收敛后的类似度分布,能够看到,Circle loss以更紧密地方式经过了决策边界,而AMSoftmax则较为稀疏地经过了,这代表Circle loss的优化目标较为明确的,特征空间可分离性更好,这种状况在图5c中更为明显。
论文将classification learning和pair-wise learning进行了统一的表达,并根据目前的损失函数实际存在问题进行了改进,提出了Circle loss,不只可以对类内优化和类间优化进行单独地处理,还能根据不一样的类似度值调整对应的梯度。整体而言,Circle loss更灵活,并且优化目标更明确,在多个实验上都有较好的表现。
若是本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】