人脸识别——margin来龙去脉

一 L-Softmax(ICML2016)

1. 前置工作:softmax, contrasive loss, tripliet loss,

2.?Preliminaries

L_S=-\frac{1}{M} \sum_{i=1}^Mlog\frac{e^{W_{y_i}^Tf(x_i)+b_{y_i}}}{\sum_{j=1}^Ce^{W_j^Tf(x_i)+b_j} } =-\frac{1}{M} \sum_{i=1}^Mlog\frac{e^{\left\|W_{y_i}^T\right\| \left\|f(x_i)\right\|cos(\theta _{y_i,i}) +b_{y_i}}}{\sum_{j=1}^Ce^{\left\|W_j^T\right\|\left\|f(x_i)\right\|cos(\theta _{j,i})+b_j} }

其中\theta _{j,i}是向量W_jx_i之间的夹角,去除偏置项之后,精度几乎保持不变,所以一般可将偏置项去除。

3. Intuition

考虑二分类问题,为了将样本x_1正确分类到类别1,原始的softmax是让\left\|W_1^T\right\| \left\|f(x_1)\right\|cos(\theta _{1,1}) >\left\|W_2^T\right\| \left\|f(x_1)\right\|cos(\theta _{2,1})

为了让分类更严格,在\theta _{1,1}上乘以一个margin,由于cos函数在0到\pi 上单调递减,所以:

\left\|W_1^T\right\| \left\|f(x_1)\right\|cos(\theta _{1,1}) >=\left\|W_1^T\right\| \left\|f(x_1)\right\|cos(m\theta _{1,1}) >\left\|W_2^T\right\| \left\|f(x_1)\right\|cos(\theta _{2,1})

新的分类准则在训练过程会更强烈的要求将x_1分类到类别1,于是会产生更加严格的分类边界。

4. Definition

L_l=-\frac{1}{M} \sum_{i=1}^Mlog\frac{e^{\left\|W_{y_i}^T\right\| \left\|f(x_i)\right\|\psi (\theta _{y_i,i}) }}{e^{\left\|W_{y_i}^T\right\| \left\|f(x_i)\right\|\psi (\theta _{y_i,i}) }+\sum_{j!=y_i}e^{\left\|W_j^T\right\|\left\|f(x_i)\right\|\psi (\theta _{j,i})} }

\psi (\theta ) =\left\{ \begin{array}{**lr**}cos(m\theta ) ,0\leq \theta\leq \frac{\pi}{m}   &  \\D(\theta ),\frac{\pi}{m} <\theta <\pi & \end{array}  \right.

m是个整数,表示margin,越大分类边界越分离,学习目标也越困难。paper中m=4时取得最好结果。

二 A-Softmax(?CVPR2017 :SphereFace)

1. 前置工作:softmax, contrasive loss, tripliet loss, center loss, L-softmax(直观上看在其基础上归一化权重).

2. 从softmax loss到modified softmax loss(从优化inner product到优化angles):

L_S=-\frac{1}{M} \sum_{i=1}^Mlog\frac{e^{W_{y_i}^Tf(x_i)+b_{y_i}}}{\sum_{j=1}^Ce^{W_j^Tf(x_i)+b_j} } =-\frac{1}{M} \sum_{i=1}^Mlog\frac{e^{\left\|W_{y_i}^T\right\| \left\|f(x_i)\right\|cos(\theta _{y_i,i}) +b_{y_i}}}{\sum_{j=1}^Ce^{\left\|W_j^T\right\|\left\|f(x_i)\right\|cos(\theta _{j,i})+b_j} }

其中\theta _{j,i}是向量W_jx_i之间的夹脚。归一化权重,并且将偏置置0,便可得到modified softmax loss:

L_{modified}=-\frac{1}{M}\sum_{i=1}^Mlog\frac{e^{\left\|f(x_i)\right\|cos(\theta _{y_i,i}) }}{\sum_{j=1}^Ce^{\left\|f(x_i)\right\|cos(\theta _{j,i})} }

该损失函数可以优化角度边界进而学习特征,但学习得到的特征依然没有很好的辨别性--->angular margin,强化特征的可辨别性。

3. 从modified softmax loss到A-Softmax soll (使分类边界更强,更可分)

L_{ang}=-\frac{1}{M} \sum_{i=1}^Mlog\frac{e^{ \left\|f(x_i)\right\|\psi (\theta _{y_i,i}) }}{e^{ \left\|f(x_i)\right\|\psi (\theta _{y_i,i}) }+\sum_{j!=y_i}e^{\left\|f(x_i)\right\|\psi (\theta _{j,i})} }

\psi (\theta _{y_i,i})=(-1)^kcos(m\theta _{y_i,i})-2k,paper中取m=4。

三 L2-Softmax(2017)

1. 前置工作:softmax,?contrasive loss, tripliet loss,?center loss。

2. Softmax的主要问题:(1)训练和测试过程相互解耦,用该损失函数不能保证在归一化的空间中正例对更接近,负例对更远离;(2)处理难样本和极限样本的能力弱,在一个质量不平衡的训练batch内,该函数通过增加简单样例特征的L2范数来小化。

3. 解决办法:迫使每个图片特征的L2范数为相同值,让特征分布在一个固定半径的球面。优点1:在球面上最小化softmax loss等价于最大化正样本对的cosine 相似度以及最小化负样本对的cosine相似度;优点2:由于所有人脸特征都有相同的L2范数,softmax loss能更好的处理难样本和极限样本。

4. L2-softmax定义:\left\{ \begin{array}{**lr**}-\frac{1}{M}\sum_{i=1}^Mlog\frac{e^{W_{y_i}^Tf(x_i)+b_{y_i}}}{\sum_{j=1}^C e^{W_j^Tf(x_i)+b_j}}   , &  \\ \vert \vert f(x_i)\vert \vert_2=\alpha,\forall i=1,2,...,M & \end{array}  \right.

5. 新参数\alpha :让该参数可学习的话,优化过程中会不断变大,导致失去了该参数的意义,更好的选择是将它设定为一个较小的固定值(实验验证了可学习的方法精度会略微降低)。但是如果该值太小,训练将很难收敛,因为一个半径很小的超球面表面积有限,以至不能很好的分开不同类的特征以及聚拢同一个类别的特征。——>类别数越多,该值应该越大。对于5w以下id,取32,5w以上实验32,40,64。

四 NormFace(2017)

1. 前置工作:softmax, contrasive loss, triplet loss, center loss。

1. 当损失函数是softmax loss时,为什么进行特征比对时要归一化特征?由于softmax loss倾向于产生一个放射状的特征分布,如果不对特征进行归一化,同一个类中两个样本的Euclidean距离往往会大于不同类中两个样本的距离。通过归一化,便可采用两个特征向量的cosine距离衡量相似度。注意,当全联接层存在偏置b时,一些类别的特征会分布在原点附近,归一化后,将会拉伸这些特征,以至于出现这些类别特征分布重叠的现象,所以在该工作中,去除了全联接层的偏置b。

2. 如果直接优化cosine相似度(归一化softmax loss前面的特征和权重w),为什么不会收敛?由于cosine相似度的取值为[-1,1],这样小的range会阻止正确类别的预测概率接近1。对于不同的类别数目和归一化值,softmax loss会对应一个下限,如果把权重和特征归一化到1,该下限会比较大,如果将二者归一化到一个更大的值,该下限会持续降低?!?gt; 在consine layer后添加scale layer:

L_{S}=-\frac{1}{M}\sum_{i=1}^Mlog\frac{e^{s\tilde{W} _{y_i}^T \tilde{f_i} }}{\sum_{j=1}^Ce^{s\check{W}_j^T \tilde{f}_i } }

3. 由于归一化后采用softmax loss会难以收敛,有没有其他的损失函数适合于归一化后的特征?agent strategy:

L_{C} = \left\{ \begin{array}{**lr**}\vert\vert\tilde{f_i} -\tilde{w_j} \vert\vert_2^2 , c_i=j&  \\ max(0,m-\vert \vert \tilde{f_i} -\tilde{w_j} \vert \vert_2^2) ,c_i!=j& \end{array}  \right.  ,C-contrasive,建议margin:1。

L_T=max(0,m+\vert\vert\tilde{f_i} -\tilde{W_j}\vert\vert_2^2 -\vert\vert\tilde{f_i} -\tilde{W_k} \vert\vert_2^2), C-triplet,建议margin:0.8。

W_j是第j个类别的summarizer。

4. 实验结论:有pretrain模型的前提下,归一化后采用softmax loss也能得到reasonably的结果,如果随机初始化,归一化权重会造成训练collapse,归一化特征will lead to a worse?accuracy。当FAR较低的时候归一化技术会表现得更好。

5. 一个trick:采用加法融合图片的特征和mirror后的图片的特征,而不是concat。

五 AM-Softmax(2018)

1. 前置工作:softmax, L-softmax, A-softmax, contrasive loss,triplet loss。

2. 定义

\psi (\theta )=cos\theta -m,可得:

L_{AMS}=-\frac{1}{M}\sum_{i=1}^Mlog\frac{e^{s(cos\theta_{y_i,i} -m)}}{e^{s(cos\theta_{y_i,i} -m)}+\sum_{j=1,j!=y_i}^Ce^{scos\theta _{j,i}} }

让s可学习会收敛比较慢,所以固定s=30。

3. Angular Margin 还是 Cos Margin

Sphere face --- Angular Margin; AM-Softmax -- Cos Margin。Angular Margin在概念上更好,但是Cos Margin对于计算更友好,它能以较小的开销达到和Angular Margin相同的目的。

4. CosFace(CVPR2018)方法基本一致。

六 ArcFace(CVPR2019)

1. 定义

L_{Arc}=-\frac{1}{M}\sum_{i=1}^Mlog\frac{e^{s(cos(\theta_{y_i,i} +m))}}{e^{s(cos(\theta_{y_i,i} +m))}+\sum_{j=1,j!=y_i}^Ce^{scos\theta _{j,i}} }

2. 在ArcFace中加入Inter-loss,Intra-loss,Triplet-loss,并没有提升。

3. 训练得到的全联接层W没有通过模型计算出来的特征中心有代表性。

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