这里的deepid我是指一代。真的想吐槽论文写得感觉逻辑有点混乱,可能也是我水平太差,前后总要跳着看。
我认为好的文章,应该是反复看反复修改,所以我会不定期的更新自己以前写过的文章,一是在复习自己过去的知识,二是进行升华。
本文需要对deepid原论文有一定的了解,我忽略了一些基础部分,直接给出自己的总结或者疑惑。
论文主要思想:
对一个训练样本来进行判断10000个类中的哪一个,训练一个softmax多元分类器,而不是一个二元分类器,提升了训练难度,利用神经网络的强学习能力,同时学习得到的特征具有一定的泛化能力,deepid层只有160维,远远小于其分类类别,这样会形成压缩之后的密集特征。
训练过程:
论文已经给出具体网络中各个层的参数,网上也有很多,这里我也没有仔细研究,默认他们都是对的。但是文中提到60个patch生成60个ConvNets。刚开始看的时候,60个patch知道如何而来,就是一个图片切出四个大小一样的方形区域这样一共得到5个全局区域,然后分别以五官为中心得到5个局部区域,这样一共得到10个patch。然后又按照三种尺度处理,则得到30种patch,然后对彩色图像和灰度图像分别进行如上操作,则得到60种face patches。但是提到训练60个模型,就不明白了。后来才知道是对60个patch分别进行训练,这里不妨就认为有60组样本,分别进行训练,得到60个模型。论文第四部分实验提到,对于每个训练周期,选择错误率最低的模型,这个不知道如何实现以及这里的意义是什么。因为论文已经提到了需要训练60个模型,然后用全部60个模型进行特征提取,得到19200维特征,然后再降维。按照这个逻辑,这里的筛选错误率最低的模型是什么作用?
提取特征过程:
一个人脸得到60个patch,然后利用训练好的60个参数,提取deepid那一层的特征得到特征之后再做水平翻转,这样特征总维数就是160*2*60。实现的时候,这也是个难点,容易忽略。之前都是训练好一个模型,然后对两张图片提取特征,然后计算余弦距离来进行判别。
识别阶段:识别阶段主要用的联合贝叶斯人脸识别方法和训练另外一个卷积网络。这里主