来自韩国Kakao公司的研究人员,在论文 GroupFace: Learning Latent Groups and Constructing Group-based Representations for Face Recognition 提出一种新的概念:人脸的组感知表示,通过在网络中学习人脸的隐藏组表示,并与实例级人脸表示结合,实现了更高精度的人脸识别。
在人脸识别常用的 9 大数据集(LFW, YTF, CALFW, CPLFW,CFP, AgeDB-30, MegaFace, IJB-B, IJB-C)上,该算法表现出了一致性的精度提高,虽然代码没开源,结果非常吸引人。
什么是组(Group)?组表示?
作者文中所指的组,可以认为就是一类含有特定可见或非可见特征的人脸,也可认为就是聚类的类别,比如有胡须的人组成的组,有眼镜的人组成的组。
组表示,意指一张特定图片在经过各个组的网络后都有对应的特征向量,根据此图片归属于某一组的概率,将所有特征向量加权生成的特征向量。
作者认为如果在训练的时候能够给出每张图片所属组(或者说类别)的标签,训练得到的特征天然的具有缩小人脸搜索范围的性质,使人脸识别更精准。
但现实情况是并不会有足够的人脸分组标签,所以作者希望在训练中自发式聚类,以实现自动化的提取组表示。
下图为 GroupFace 示例:
直接从Robert Downey人脸提取的特征,作者称之为实例级特征。而相应的网络自动将其分到“棕胡子”人脸组,实例级和组表示特征共同构建最终的特征。
网络架构
如果使用组表示能够改进人脸识别这样的假设有道理,那问题的难点就是如何实现样本自动分组?
请看 GroupFace 的网络结构(点击查看大图):
人脸图像经过骨干网生成4096维特征向量,其继续经过多个全连接层形成实例级表示(Instance-based Representation)和多个组感知的表示(Group-aware Representations)。
从实例级表示后引出组决策网络(Group Decision Network),其内部通过多层感知机 全连接层 Softmax生成样本属于某个组的概率(Group Probability ),不同组的表示和相应的概率加权即形成了加权组表示(这一步也可以使用最大概率的组感知表示来直接替代,但作者发现组表示加权更好),其再与实例级表示结合生成最终的人脸表示。
流程如此,但关键是训练时组决策网络(Group Decision Network)如何自发的对样本生成不同组的概率。这个过程其实是网络在聚类(把样本归到某一类),作者基于一种简单的假设,即认为当有大量样本时,样本应该总体呈均匀分布,所以每个类的样本个数应该尽量平衡。
所以作者使用期望归一化(Expectation-Normalized Probability)技术对softmax后得到的大量样本的组概率进一步处理,使得各个类别尽量样本平衡。
期望归一化示例如下:
事实上,作者使用了 8 卡同步训练,每卡mini-batch大小为128,而概率期望归一化时不仅考虑当前的8x128个样本,还考虑前32到128个batch的样本,所以每次归一化最小样本数8x128x32 = 32768个样本,这的确够大了。
其实透过上面的分析可知,使用作者的方法很难学到作者假设的那种语义分组,但在实验中发现,网络自动分组对人脸识别来说仍然有好处的。
实验结果
除了使用GroupFace网络结构,作者还使用arcface loss损失函数,在 9 个常用的1:1人脸验证和1:N人脸识别数据集中的实验,均得到了显著的精度提升。
可见,组感知特征表示的确是有效的。
比较有意思的是,作者把网络自动分组的部分结果可视化了,请看下图:
可见,很难总结出每一组对应的人脸属于一个特定的语义,Group 1 看起来大部分是右侧脸,Group 29 则看起来是笑的人脸。Group 5 可能代表男性组,因为作者随机选择其100个样本中95个是男性,Group 20 可能代表秃头男性,因为作者随机选择100个样本中94个是秃头男性。(没想到秃头男性在机器眼中也如此显眼)
结论
作者提出使用组感知表示的概念是不错的方向,实验证明了其设计的算法也的确有效,但其中最重要的问题是如何自发给样本分组,还有没有更好的给样本分组的方法?这就是非常值得进一步研究的了。
虽然作者称GroupFace是一种人脸识别专用算法,但其实这种思想在所有表示学习、度量学习领域都值得尝试,比如ReID。