Prior-work
- PFE-2020-CVPR[人脸Uncertainty Learning的开山之作,非常有启发意义]
Motivation
- 理想的embeding-feature应该是最能够代表、编码identity的信息的,同时它应当不受与identity无关的信息[亮度、拍摄角度等因素]的干扰,但是实际场景中,采集到的同一个identity的不同的face-images往往不可避免地携带了与identity无关的信息!传统的FR-model【eg:sphereface、cosface、arcface、mv-face、cur-face等】都是直接学习f(x)的点估计,容易被noisy-samples所蕴含的noise带偏;而data uncertainty learning则通过将人脸嵌入特征建模为多元高斯分布,同时学习其均值和方差,通过特征的方差来刻画样本的noise大小,从而获得更加鲁棒的人脸嵌入特征!
- PFE将人脸识别的研究方法从确定性的点估计拓展到了密度估计,但是存在一个显著的问题:继承sota模型的embedding-feature作为特征空间的高斯分布的均值,只通过Uncertainty Module来学习高斯分布的variance !!!
- 针对PFE只能学习高斯分布的variance的缺点,DUL提出了Classification-based、Regression-based两种模型来同时学习高斯分布的均值、方差!!!
Code
- DUL[pytorch-version | 非官方实现!]
Details
Classification-based
- 模型假设:embedding-feat服从高斯分布,分布的均值表示input-image最可能被编码的feat,方差表示feat的uncertainty;
- 潜在问题:输入图片的embedding-feat的均值、方差依赖于input-image,为了估计均值、方差,需要从上述分布中采样,但是采样操作不可微[意味着不能BP!!!,为什么 ?]。为了解决这个bug,文章采用re-parameterization trick,化腐朽为神奇;
如果直接采用softmax-based方法来训练模型,将会出现方差“退化”的现象。[即各类的var非常小,如若不然模型难以收敛!]
- KL-正则:KL-divergence用于度量两个分布的差异,其值越大意味着两个分布的差异越大!这里作者用KL-divergence来约束N(s|μ,σ^2)[σ ~ (0,1)]和N(ε|0,1),不难发现L_kl是关于σ^2的单调递减函数[var~[0,1]],如果仅优化KL-正则,则L_kl趋向于获得取值较大的方差,因此可以将KL-正则理解为模型方差的正则项。与此同时,L_kl也是μ^2的单调递增函数,优化KL-正则项将导致L_kl趋向于获得取值较小的均值[论文没有点出这一bug]。关于这里吐槽一下:坦白来讲,尽管从数学层面我理解它的内涵,但是还是感觉这里有点突兀,应该有其它更好的思路来处理。
- 损失函数:需要指出的是,如果仅仅优化L_softmax,模型趋向于学习到取值较小的variance【如若不然,则意味着学习到的嵌入特征被严重污染,会使得L_softmax的取值变大】;如果仅仅优化L_kl,模型趋向于学习到取值较大的variance【由公式4(即上式)可知,L_kl是关于sigma^2的单调递减函数】。因此,将二者通过 λ 组成最终的优化函数,通过优化它,则可以学习到较为合理的variance!
Regression-based
- Mapping Space:首先pre-train一个classification-based的模型, 截取它的分类层weights[W ~ R^(D x C)],W的第i列可以理解为第i个identity在embedding-feat 空间中的类中心,因此{X,W}可以看作原始映射空间{X,Y}的等价映射[这个确实有道理,而且这么做的根本目的是为了同时学习分布的均值和方差!!!]。映射空间{X, W}的噪声来源于identity-input-image:
- Distributional Representation:有了Mapping-space的铺垫,我们的学习目标变为:
进一步取负对数似然并化简可得如下的目标函数,其中 r = ln(σ^2):
跟PFE类似,因为可以学习variance,因此L_rgs便有了attention机制。具体地:对于小方差的样本,赋予大的权重,同时惩罚也小;对于大方差的样本,赋予小的权重,同时施加大的惩罚!
- Comment :DUL_rgs模型通过data uncertainty learning 来进一步提升现有FR-model【点估计模型】!
Experiment
- MS-Celeb-1M | ResNet-18
- Benchmark-ResNet64
- Analysis | baseline-model = {ResNet64 + AM-Softmax + MS-Celeb-1M}
- 左图:由DUL_rgs模型的结果给出,结论跟我们对这三个数据集的印象基本吻合;
- 右图:使用DUL_cls模型对MS-Celeb-1M数据集的样本进行分类,在easy、semi-hard样本中,DUL_cls的表现要优于baseline;在hard样本中,DUL_cls要比baseline差,差的原因是DUL_cls惩罚模型刻意去学习难样本所蕴含的噪声,从而使得模型将更多的注意力放在easy、semi-hard样本上!【这种现象在实际场景中也可能会出现,至于怎么部署模型,就得看具体的侧重点,不能一概而论】
- 进一步量化分析了DUL_rgs,模型在easy、semi-hard样本上表现得更加好【体现在样本更加紧致地靠拢在类中心】,同时把难样本推到距离类中心更远的地方[大方差!!!].
- 在一定程度上缓解了PFE提出的人脸识别的三类挑战: Blur | Occlusion | Noise
- DUL_cls-lambda选择[baseline-model = {ResNet64 + AM-Softmax + MS-Celeb-1M}]
- DUL vs Deterministic-learning | [baseline-model = {ResNet64 + AM-Softmax + MS-Celeb-1M}]
Reference
[1].Data Uncertainty Learning in Face Recognition[CVPR-2020]