[ 人脸识别 ] 1. 研究现状丨

Loss研究现状

模型名称 Important Insight 笔记 资料
2021年
MegFace 投稿:CVPR2021.
动机
1. 直觉上,在同一类样本中,质量差的样本 理应比 质量好的样本 到类别中心的距离稍远。因为质量好的样本(比如没有任何遮挡的清晰正脸),特征更确定,所以用来表示该类别的特征更加准确。反之,质量差的样本(比如有遮挡的模糊侧脸)不确定性大,用来表示该类别的特征就有很大的不确定性。
2. 目前,confidence-aware的方法虽然考虑了样本不确定性,然而需要额外的参数量。
3. 基于angular-based方法虽然计算高效,但是它们没有对样本的质量作出区分。这样一来,类别中心很容易学习到 质量差的样本中 的一些 Instance-Specific 信息,从而使得模型的泛化能力弱,进而难以泛化到 open-world 场景中。
4. 对不同质量的样本进行区分,并且让同一类别中质量好的样本靠近类别中心而质量差的样本到类别中心距离稍远能够进一步提升模型的泛化能力。这是因为,越靠近类别中心,越能够代表该类的特征。让质量差的样本稍微远离类别中心是让其在代表该类上的话语权尽可能地低,这样可以减小 质量差样本中的噪声 影响,从而提升模型的泛化能力。

5. 为了实现上述目标,作者提出MegFace。它不仅扩大类间距离,同时让类内样本与类中心呈现一个锥形结构,质量差的样本离中心远,质量好的样本离中心近。同时MegFace不会给模型带来额外的计算量。
方法

1. 图2(a)是ArcFace的决策边界情况图,它用来代表目前angular-based的方法。这类方法不会对样本质量做区分,因此各种质量的样本在空间上的排布完全是随机的。而margin是固定的,它只要求所有样本都在决策边界之内就行了。
2. 这就很容易出现图2(a)这种样本排布情况,而在这种情况下,[小圈(质量好的样本)] 只要进入到决策边界内就不容易再向类中心靠拢了(因为已经完成目标了);而[大圈(质量差的样本)] 因为样本可能出现的范围大,为了保证所有可能出现的位置都进入 决策边界内,[大圈]的中心 就比 [小圈] 的中心 在角度空间上 更容易靠近 类中心向量 W W W。而这是不合理的。
3. 实际上,为了实现 动机中 说到的目标,我们更希望样本是图2(d)中的这种排列。即,质量越好的样本离类别中心向量 W W W 的角度越近。为了实现这种排列,作者通过 特征向量的幅度 a i a_{i} ai 建立了 [样本质量] 与 [到类别中心的角度距离] 之间的联系,进而让质量好的样本靠近类别中心,质量差的样本到类别中心角度稍远。
4. 实际上,通过观察图2(d)的排列可以发现一定的规律。
   质量越差的样本(圈越大,因为样本质量越差,不确定性越强,其可能出现在特征空间的区域就越大)
   (1) 到原点的距离越近,离原点的距离就是特征向量的幅值 a_{i}。
   (2) margin越小,也就是决策边界到类别中心向量 W W W 的角度越大。(图2(b)中,圈3的决策边界明显比圈1到类别中心向量的角度大)。
   这样,我们就可以通过 建立 [幅值a_{i}] 、[margin] 以及 [到类别中心的角度] 之间的关系,来约束不同质量的样本呈现图2(d)中的排列方式。    那么,如何建立三者的关系呢?
5. 作者在ArcFace Loss的基础上,进行了很巧妙地改进设计,就实现了上面的排布。这个公式长这样:
L i = − log ⁡ e s cos ⁡ ( θ y i + m ( a i ) ) e s cos ⁡ ( θ y i + m ( a i ) ) + ∑ j ≠ y i e s cos ⁡ θ j + λ g g ( a i ) L_{i}=-\log \frac{e^{s \cos \left(\theta_{y_{i}}+m\left(a_{i}\right)\right)}}{e^{s \cos \left(\theta_{y_{i}}+m\left(a_{i}\right)\right)}+\sum_{j \neq y_{i}} e^{s \cos \theta_{j}}}+\lambda_{g} g\left(a_{i}\right) Li=logescos(θyi+m(ai))+j=yiescosθjescos(θyi+m(ai))+λgg(ai)
其中, a i a_{i} ai 是第 i i i个特征向量的 2-范数(即 幅度)。 m ( a i ) m(a_{i}) m(ai) 是动态的角度margin,它是 m ( a i ) m(a_{i}) m(ai)的单调递增函数。它的作用是将不同质量的样本无限挤压到类中心,同时倒逼质量好的样本幅值增大,质量差的样本幅值减小 g ( a i ) g(a_{i}) g(ai) 是正则化项,它是单调递减函数。它的作用是不让幅值过大过小。 具体来说
6. 对于质量差的样本,它的不确定性大,所以体现在图2中的圈大。圈[大] --> 决策边界可优化到的极限margin就[小] --> 而margin m ( ⋅ ) m(\cdot) m()是单调递增的函数,这就倒逼 幅值 a i a_{i} ai 变[小]; 当然, a i a_{i} ai 也不能无限小,所以用一个单调递减的正则化项 g ( a i ) g(a_{i}) g(ai) 来约束它。
7. 对于质量好的样本,它的不确定性大,所以体现在图2中的圈小。 圈[小] --> 决策边界可优化到的极限margin[大] --> 而margin m ( ⋅ ) m(\cdot) m()是单调递增的函数,这就倒逼 幅值 a i a_{i} ai 变[大]。当然, a i a_{i} ai 也不能无限大,所以用一个单调递减的正则化项 g ( a i ) g(a_{i}) g(ai)来约束它。
8. 这样一来,通过上述的优化方式,质量好的样本 margin 大且幅值大(到原点远),质量差的样本margin小且幅值小(到原点近)。这样就形成了图2(d)的排列方式。
1. 论文地址
投稿:.
动机
1.
2.

1. 1.
2.
2020年
Circle Loss 投稿:CVPR2020.
动机
1. 作者发现一种统一看待分类和对比学习的视角。

2. 公式如下


1. 在circle loss的公式里,正样本对数量(i.e. 公式种的 K K K) 和 负样本对的数量(i.e. 公式种的 L L L) 是可以不同的,因为从公式可以看出它们俩是分开求和的。 1. 【极市】张宇涵-CVPR2020 Oral|Circle Loss,从统一视角提升深度特征学习能力.
2. Code: GithubTinyZeaMays/CircleLoss
投稿:.
动机
1.
2.

1. 1.
2.
2019年
ArcFace 投稿:CVPR2019.
动机
1.

方法
1. ArcFace就是把 margin m m m 从 CosFace 的
c o s ( θ 1 ) − m > c o s ( θ 2 ) cos (\theta_{1})-m>cos (\theta_{2}) cos(θ1)m>cos(θ2)
修改成了
c o s ( θ 1 + m ) > c o s ( θ 2 ) cos (\theta_{1}+m)>cos (\theta_{2}) cos(θ1+m)>cos(θ2)

2. 相比CosFace,ArcFace相当于直接对角度加 margin。而CosFace是对 C o s Cos Cos 空间加margin,是间接地对角度加margin。
3. ArcFace的公式:
1. 【极市】邓健康-CVPR2019 ArcFace构建高效人脸识别系统
2018年
CosFace 投稿:CVPR2018.
动机
1. (A/L)-Softmax 的决策边界 c o s ( m θ 1 ) = c o s ( θ 2 ) cos(m \theta_{1})=cos(\theta_{2}) cos(mθ1)=cos(θ2) 在训练中比较难优化。
2. CosFace将决策边界改成 c o s ( θ 1 ) − m = c o s ( θ 2 ) cos( \theta_{1}) -m=cos(\theta_{2}) cos(θ1)m=cos(θ2),保证增大类间角度差异的同时,让模型更容易优化。

方法
1. 我们从softmax loss开始。
L s = 1 N ∑ i = 1 N − log ⁡ e f y i ∑ j = 1 C e f j L_{s}=\frac{1}{N} \sum_{i=1}^{N}-\log \frac{e^{f_{y_{i}}}}{\sum_{j=1}^{C} e^{f_{j}}} Ls=N1i=1Nlogj=1Cefjefyi
其中,
   f j = W j T x = ∣ W j ∣ ∣ x ∣ cos ⁡ θ j f_{j}=W_{j}^{T} x=\left|W_{j}\right||x| \cos \theta_{j} fj=WjTx=Wjxcosθj 可以看成是 样本 x x x类别 j j j 的中心向量 W j W_{j} Wj 之间的余弦距离。
   f y i f_{y_{i}} fyi 就表示样本 x x x 与其对应的类别 y i y_{i} yi 的中心向量的距离。
2. 要实现正确地分类,就是要让 样本的 [属于其类别的 e f y i e^{f_{y_{i}}} efyi] 尽可能地大于 [不属于其类别的 e f j e^{f_{j}} efj]。
3. 我们将问题简化成二分类问题。假设 我们有一个样本 x x x 属于类别 j = 1 j=1 j=1 ,根据前面的定义, f j f_{j} fj 表示该样本与 类别中心 j j j的中心向量之间的余弦距离,这样优化的目标就变成让 f 1 f_{1} f1尽可能地大于 f 2 f_{2} f2 (余弦距离,距离越大越相似)
4. 由于 f j f_{j} fj 同时受到 ∣ W j ∣ \left|W_{j}\right| Wj ∣ x ∣ |x| x 以及 c o s θ j cos \theta_{j} cosθj 的影响,这样不太好优化。
5. 为此,作者令 ∣ W j ∣ = 1 \left|W_{j}\right|=1 Wj=1, ∣ x ∣ = s |x|=s x=s s s s是个定值)。
6. 这样,样本 x x x 与类别中心 j j j 的距离 f j f_{j} fj 就仅仅由 它们之间的角度 c o s θ j cos \theta_{j} cosθj 决定。
7. 这样一来, f 1 > f 2 f_{1}>f_{2} f1>f2 就等价于 c o s θ 1 > c o s θ 2 cos \theta_{1}>cos \theta_{2} cosθ1>cosθ2
8. 原本,softmax 的优化目标是让 f 1 > f 2 f_{1}>f_{2} f1>f2。CosFace将上述目标改进成 f 1 − m > f 2 f_{1}-m>f_{2} f1m>f2;( m m m>0) 。
9. 这么做就让类内距离更加聚拢。具体来说,原本只要让 [样本与其类别中心的余弦距离 f 1 f_{1} f1] 大于 [样本与其它类别中心的余弦距离 f 2 f_{2} f2] 即可,这比较好实现,因为类内余弦距离本来就容易比类间距离大。    现在要求 f 1 f_{1} f1 不仅要大于 f 2 f_{2} f2还 要大 m m m,小于 m m m都不行,这样就使得优化的条件变得更加苛刻
10. 这样的好处就是,类间的距离可以充分增大。

11. CosFace 的 Loss 如下。



1.
2.
2017年
L-Softmax 投稿:CVPR2017.
动机
1. Softmax loss无法确保类内的紧凑和类间的疏离。
2. Large Margin Softmax Loss(简称L-Softmax loss),其主要思想是在标准的Softmax loss中加入了一个角度约束,确保不同类别的样本分界更明显。

1. 知乎-L-Softmax loss和A-Softmax loss。这篇博文对决策边界讲的很好。 1.
2.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340