Circle Loss: A Unified Perspective of Pair Similarity Optimization

Circle Loss: A Unified Perspective of Pair Similarity Optimization

本文从一个统一的角度来看待 成对的 相似度 优化问题 (Pair Similarity Optimization),这个问题的目的是让不同类别之间的相似度 S_n 尽可能小,让同一类别的相似度 S_p 尽可能大;

统一两类损失函数

  • 目前大部分的损失函数,以经典的粗分类损失函数 Softmax Cross Entrophy 和 细分类损失函数 Triplet Loss 为例子,其优化方法是可以统一起来用 S_nS_p 表示,然后去减小 (S_n - S_p), S_n越小,S_p越大,上式也就越小

1. 粗分类代表:Softmax 交叉熵损失函数

\operatorname{softmax}\left(\mathrm{y}_{i}\right)=\mathrm{y}_{i}^{\prime}=\frac{e^{\mathrm{y}_{i}}}{\sum_{j=1}^{n} e^{\mathrm{y}_{i}}}
--------------------------------------------------------------------------------
H(p, q)=-\sum_{x} p(x) \log q(x)
---------------------------------------------------------------------------------

L_{ce}= -\sum_{i} \mathrm{y_i} \log \frac{e^{\mathrm{y}_{i}}}{\sum_{j=1}^{n} e^{\mathrm{y}_{i}}}
---------------------------------------------------------------------------------

softmax 交叉熵损失的特点:

  • 对于目标分数的梯度为 p_y-1,为负数,
    • 梯度回传使得目标分数逐渐增加,与onehot中的 1 的差距越来越小
  • 对于非目标分数的梯度为 p_i,为正数,
    • 梯度回传使得非目标目标分数逐渐减小,与onehot中的 0 的 差距越来越小
  • p_y-1 =- \sum_{i\neq y}{p_i},正样本的梯度与所有其他负样本的梯度之和是等值反向的
  • 所有的梯度之和为0,可以看到,回传的正负梯度是平衡的

2. 细分类代表:Triplet Loss

  • 细分类相对于粗分类来说,其类别急剧增加;比如说人脸识别,就存在着好几十亿个类别,这样类别数就远大于特征的数目;这样子如果再使用softmax交叉熵来处理的话,对算力的需求就急剧增大了;而且softmax交叉熵在处理这类细微差别的效果也不好,因此就需要新的损失函数;
  • FaceNet提出了 triplet loss,其目的是构造了一个三元组,使得同一类别的差距尽可能小,然后不同类别的差距尽可能大
    L_{triple} = max[d(x^a, x^+) - d(x^a, x^-) + margin, 0]
    当 L 趋向于0时,d(x^a, x^+) < d(x^a, x^-),也就是说,同一类样本的距离是小于其与不同样本的距离的,即,使得同一类别的相似度尽可能大,不同类别的相似度尽可能小;
  • max(x, 0)函数又可以通过 \log(1+e^x)来拟合
    L_{triple} = \log (1+e^{d_p - d_n +m})

2.1 triple loss流程:

image.png

image.png

image.png

image.png

3.两类损失的统一

粗分类和细分类的损失是可以统一起来的,其统一的损失公式如下

\begin{aligned} \mathcal{L}_{u n i} &=\log \left[1+\sum_{i=1}^{K} \sum_{j=1}^{L} \exp \left(\gamma\left(s_{n}^{j}-s_{p}^{i}+m\right)\right)\right] \\ &=\log \left[1+\sum_{j=1}^{L} \exp \left(\gamma\left(s_{n}^{j}+m\right)\right) \sum_{i=1}^{K} \exp \left(\gamma\left(-s_{p}^{i}\right)\right)\right] \end{aligned}

对于粗分类来说,softmax可以分解为:类内(onehot 为1的,只有一个) + 类外(某一类和其他类组成,N-1 个)

再来看松弛变量 \gamma(有的论文里面叫 温度 T),为什么需要 \gamma,举例说明:
------------------------------------------------------------------
x = [1 2 3 4]
softmax(x) = [0.0321 0.0871 0.2369 0.6439]

从这个例子来看,本来1和4只差4倍,通过指数函数的放大作用,Softmax后的结果相差大约20倍。这样看,Softmax起到了近似 one-hot max 的作用,但 0.6439 其实也不算靠近1,近似效果不佳。
-----------------------------------------------------------------
x放大十倍
x = [10 20 30 40]
softmax(x) = [9.36e-14 2.06e-9 4.54e-5 1.00]
------------------------------------------------------------------
x = [0.1 0.2 0.3 0.4]
softmax(x) = [0.2138 0.2363 0.2612 0.2887]
------------------------------------------------------------------

  • 温度项控制着 Softmax 的 smooth 程度, \gamma 越大,则 Softmax 越接近one-hot max, \gamma 越小,则近似效果越差。那么只要我们引入这一项,并将 \gamma 设置得足够大,是不是就能解决问题了呢?

  • 其实没那么容易,注意到这个 \gamma 是施加在所有的分数 z 上的,所以这是对分数的一个线性变换,由于 z 本身就是通过一个内积层(全连接层)得到的,线性-线性还是线性,所以这个 \gamma 在优化过程中会被融合进前边的内积层,只要进行充分的训练,是不会产生什么实际的影响的。

  • 于是就可以动态的设置 \gamma,根据当前分数 z 的大小动态地设置 \gamma ,就像炼丹一样,随时把控火炉的温度,

相似度加权,优化更加灵活

1. 相似度加权

  • 当前的损失函数的优化是不灵活的,对于上面一点指出的 (S_n - S_p),损失进行梯度回传的时候对于 S_nS_p 的梯度是等值反向的;这就存在一个问题,S_nS_p 的优化不是完全同步的,也就说S_nS_p 分别与其各自的最优点的距离是不一样的
  • 因此,不能以完全相同的梯度对二者进行更新,离最优点近的应该要小火慢熬,离最优点远的应该大火猛煮
  • 于是,本文提出对 S_nS_p 进行加权,而其权重的大小是应该与他们和最优点的距离是成正相关的,也就是说,越接近最优点,其权重应该越小,对应回传的梯度也因为乘以了这个梯度变得更小;反之,其权重就应该越大,使得回传的梯度也越大;

于是给每个相似度增加了一个权重 \alpha_n, \alpha_p

\begin{aligned} \mathcal{L}_{\text {circle}} &=\log \left[1+\sum_{i=1}^{K} \sum_{j=1}^{L} \exp \left(\gamma\left(\alpha_{n}^{j} s_{n}^{j}-\alpha_{p}^{i} s_{p}^{i}\right)\right)\right] \\ &=\log \left[1+\sum_{j=1}^{L} \exp \left(\gamma \alpha_{n}^{j} s_{n}^{j}\right) \sum_{i=1}^{K} \exp \left(-\gamma \alpha_{p}^{i} s_{p}^{i}\right)\right. \end{aligned}

其中
\left\{\begin{aligned} \alpha_{p}^{i} &=\left[O_{p}-s_{p}^{i}\right]_{+} \\ \alpha_{n}^{j} &=\left[s_{n}^{j}-O_{n}\right]_{+} \end{aligned}\right.

与最优点的距离越近,这个权重就越小,与最优点的距离越远,这个权重就越大

2. Margin

  • 对于没有权重的损失函数,S_nS_p是对称的,在S_n上附加一个正的margin 相当于 对 S_p 施加一个负的 margin,因此最后面就只需要一个margin就够了
    \begin{aligned} \mathcal{L}_{u n i} &=\log \left[1+\sum_{i=1}^{K} \sum_{j=1}^{L} \exp \left(\gamma\left(s_{n}^{j}-s_{p}^{i}+m\right)\right)\right] \end{aligned}

  • 而现在增加了权重后,S_nS_p就不是对称的了,因此这里需要2个margin
    \mathcal{L}_{c i r c l e}=\log \left[1+\sum_{j=1}^{L} \exp \left(\gamma \alpha_{n}^{j}\left(s_{n}^{j}-\Delta_{n}\right)\right) \sum_{i=1}^{K} \exp \left(-\gamma \alpha_{p}^{i}\left(s_{p}^{i}-\Delta_{p}\right)\right)\right]

    这个地方说 期望 s_p^i > \Delta_ps_n^i < \Delta_n 不明白;??????
    -------------------------------------------------------------

  • 以二分类为例,将权重代入统一的损失函数,可以得到:
    \left(s_{n}-\frac{O_{n}+\Delta_{n}}{2}\right)^{2}+\left(s_{p}-\frac{O_{p}+\Delta_{p}}{2}\right)^{2}=C
    C=\left(\left(O_{n}-\Delta_{n}\right)^{2}+\left(O_{p}-\Delta_{p}\right)^{2}\right) / 4
    是一个关于 S_n,S_p的圆,这也就是为什么这篇文章叫做 circle loss的原因
    ---------------------------------------------------------

  • 可以看到,这样子 circle loss就存在5个超参数,太麻烦,于是作者进行了简化:
    O_p = 1+m, O_n = -m, \Delta_p = 1-m, \Delta_n = m
    于是,决策边界可以改为:
    \left(s_{n}-0\right)^{2}+\left(s_{p}-1\right)^{2}=2 m^{2}


Cicle Loss的优点:

image.png
    1. Balanced optimization on S_n, S_p
    • 如上图 A(S_n=0.8, S_p = 0.8),其中 S_p离最优点1已经很接近了,但是S_n离最优点0还有很远,
    • 而如图(a)所示,triplet loss 无论对S_n还是S_p的梯度都还很大,这是不应该的
    • 但circle loss,如图 (c) 所示,可以看到,c_左,S_n离最优点很远,其梯度很大;同时,c_右,S_p离最优点已经很近了,所以其梯度比较小,这是符合逻辑的
      --------------------------------------------------------
    1. Gradually-attenuated gradients
    • 一般的梯度在收敛前都基本保持不变,直到收敛时其梯度陡降,可以看到,图(a),triplet loss的决策面是几乎垂直的;而且B点相比与A点来说更加接近决策边界,但是他们优化时的惩罚力度是相同的,这也是不应该的
    • 而从图(c)来看,在初始远离最优点时其梯度比较大,然后慢慢接近最优点时其梯度是逐渐减低的
      ------------------------------------------------------
    1. A (more) definite convergence target
    • triple loss的决策边界是平行 S_n - S_p=m的,这样边界线上的任意一个点都可能被看作是最优点
    • 而circle loss 是圆形的分界面,其最优点就只有一个


      image.png

消融实验

  1. 权重的加入,对不同的 \gamma,性能比较稳定

    image.png

  2. S_p, S_n 的变化

    image.png

可以看到,circle loss的 S_p增加得比SM-softmax更快,最后的拟合效果也更好。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容