circle loss:统一softmax CrossEntropy loss 和 triplet loss / 2020

intro

刚看完《Circle Loss: A Unified Perspective of Pair Similarity Optimization》,随手写了一个overview。

一句话总结这篇paper干了什么事情---- "an unified perspective of learning with class-level labels and learning with pairwise-level labels".

如作者所陈述,这份研究主要有两个贡献:

  • 提供了一个统一的视角,通过数学分析统一了分类问题的损失函数和配对问题的损失函数。
  • 提出circle loss。

过去,针对class-level label,默认用softmax-CrossEntropy计算损失;针对pairswise-level label,默认用triplet loss计算损失。
现在,针对这两种情况,都可以用一种损失函数,即circle loss。实践表明,circle loss的效果比上面两者都秀。

circle loss API

变量说明

输入:

  K个类内相似度, L个类间相似度

输出:

  损失值

超参数:

  scale factor: $\gamma$ 建议值256
  relaxation factor: m 建议值0.25
  • within-class相似度:\(s^{i}_{p}\)

  • between-class相似度:\(s^{j}_{n}\)

  • 权重\(\alpha^{i}_{p}\) = relu(\(m+1-s^{i}_{p}\))

  • 权重\(\alpha^{j}_{n}\) = relu(\(m+s^{j}_{n}\))

  • \(margin_{p}\) = 1 - m

  • \(margin_{n}\) = m

circle loss正向计算公式

\(L_{circle} = log[ 1 + \sum_{i=1}^{K}exp(- \gamma * \alpha^{i}_{p} * (s^{i}_{p} - \Delta_{p})) * \sum_{j=1}^{L}exp(\gamma * \alpha^{j}_{n}) * (s^{j}_{n} - \Delta_{n}) ]\)

为何这样设计?

we expect \(s_{p}\) → 1 and \(s_{n}\) → 0.

circle loss对\(s^{i}_{p}\)\(s^{n}_{j}\)求导公式:

\(\frac{\partial L_{circle}}{\partial s^{i}_{p}}\) = Z * \(\frac{exp(\gamma * ((s^{i}_{p})^{2}-(m)^{2}))}{\sum_{k=1}^{K}exp(\gamma * ((s^{k}_{p})^{2}-(m)^{2}))}\) * \(\gamma * (s_{p}^{i}+m)\)

\(\frac{\partial L_{circle}}{\partial s^{j}_{n}}\) = Z * \(\frac{exp(\gamma * ((s^{j}_{n}-1)^{2}-(m)^{2}))}{\sum_{l=1}^{L}exp(\gamma * ((s^{l}_{n}-1)^{2}-(m)^{2}))}\) * \(\gamma * (s_{p}^{j}-1-m)\)

\(s^{i}_{p}\)\(s^{j}_{n}\)计算方法

class labeled

计算过程以单样本为单位

\(w_{i}\) 最后一层权重矩阵的第i个向量。
x 最后一层的输入。

类内相似度:
\(sim_{p}\) = cosine_similarity(x, \(w_{y}\))
\(sim_{n}\) = cosine_similarity(x, \(w_{i}\))

如果是n分类问题,那我们总共有n-1个\(sim_{n}\),1个\(sim_{p}\)

pair-wise labeled

计算过程以batch为单位
输入:
x 目标特征向量
y 与x同类别的特征向量 / 与x不同类别的特征向量

输出:
x的类内相似度,类外相似度

相似度有两种计算方法:

  • dot_similarity 即 sim(x,y) = \(x * y\)

  • cosine_similarity 即 sim(x,y) = \(\frac{x*y}{|x|*|y|}\)

posted @ 2020-11-24 19:28  dynmi  阅读(1318)  评论(0编辑  收藏  举报