目录
人脸验证:输入一张人脸图片,验证输出是否和模板是一个人,属于一对一问题
人脸识别:输入一张人脸图片,验证输出是否是K个模板中的一个,属于一对多问题
人脸识别由于分别与K个模板比较,其错误率会相应增加,模板越多,错误率越高。
1 One Shot学习
One-sho学习就是说训练集中每个人的训练样本只包含一张照片,然后训练一个CNN模型来进行人脸识别。若标签里有K个人,则CNN模型输出softmax就是K维的。
但是One-shot学习存在着一些缺点,首先是由于每个人只有一张图片,这会导致构建的CNN网络不够健壮;另外一旦增加人脸,会导致输出层softmax的维度发生变化,这会导致必须重建CNN网络,进行大量重复运算,不够灵活。
为了解决这个问题,我们引入描述两张图片相似程度的相似函数,记作d(img1,img2),函数值小表示图片近似,反之则表示两张图片不是同一个人,用表达式表达为
: 一样
:不一样(这里的
是一个阈值)
2 Siamese网络
1 Siamese网络模型
一张图片经过了一般CNN网络最后到达FC层的向量可以被视为原始图片的编码,它表征了原始图片的特征,整个网络结构被称为Siamese网络。
建立 Siamese网络后,两张图片的相似度函数可以由两者FC的范数来表示,由于不同图片的CNN网络结构参数相同,因此我们可以通过训练使得属于同一人的相似度函数值很小,不同者的值很大。