DeepID1:Deep Learning Face Representation from Predicting 10,000 Classes
本文主要是做人脸比对时的特征提取
- 1.作者从图像中截取一个31*39的patch,label分1000类,最后的特征是160维
- 2.提取特征,用于人脸验证
作者训练了60个类似的网络,分为10个patch,3个尺度,RGB和gray
在截取patch的时候,还会有镜像,故总特征为160x2x60=19200
- 3.给两幅图像,做人脸比对
作者试验了联合Bayesian和DL的方法,如下图:
两个人的特征分为60group,每个group是640,最后label区分是不是同一个人
- 4.结论
联合Bayesian比DL方法好
训练提特征网络,分类越多越好
使用的patch,越多越好
DeepID2: Deep Learning Face Representation by Joint Identification-Verification
作者改进了softmax分类的缺陷:只负责拉大类间距离,不能够减小类内距离
作者结合了softmax Loss和contrastive Loss
1.提特征网络,摒弃了DeepID1的繁杂,没有使用patch,最后输出特征是160
2.监督信号
参数更新方法:
m是可训练参数,但不能使用sgd一直更新,因为会被优化到0,论文中每训练2000000pair更新一次
权重系数lamda,一般设为0.05较好
3.结论:
文中还对比了直接使用L2和联合baysian做对比
Center Loss:A Discriminative Feature Learning Approach for Deep Face Recognition
本文同样是针对softmax的改进
contrastive loss和triplet loss随着分类数的增加,pairs和triplets迅速膨胀,会导致收敛缓慢和不稳定
1.loss设计
m类,c是每个类的特征中心,可学习参数,按理来说,应该事先统计每个类的聚类中心,但实际不可行
更新:
训练算法:
2.结论
权重系数lamda取0.003,C的更新系数0.5较好
Triplet:A Unified Embedding for Face Recognition and Clustering
目标是解决softmax分类数过多的问题,不同于contrastive loss,其目的是让同类样本在特征空间映射为同一点,triplet loss是为了在正负样本之间保留一个margin
1.网络结构如下,注意在提特征之后,添加了一个L2 Normal层,将特征归一化到1
2.loss设计
我们的目标是:
我们的难点是选择triplet,选择那些比较难的triplet,分为offline和online
offline:每训练n step,使用最近的checkpoint,计算最大的postive和最小的negtive,作为triplet
online:在一个batch中挑选triplet,论文中使用的是这个
选择过于难的triplet,会过早陷入局部极值,实践中选择半难的样本