我们知道人脸识别一个常用方法是先提取人脸的128维特征点,然后根据不同的算法比较特征点进行人脸识别工作,那么这个128维特征点是怎么提取的呢?
方法一:
网络我们选择卷积神经网络,使得网络最后输出是128维的向量,损失函数选择三元组损失:
其中A为一个人的照片,P是此人的另一张照片,N是另一个人的照片,α是间隔(超参数),比如是0.2,意义是非自己的人脸距离至少比自己人脸距离远0.2个距离,具体训练过程是要把训练图片分为一组组的三元组,并且使得A与N尽量的近,如果太远网络学习的慢。最后根据这个损失函数,用反向传播算法优化参数。
方法二:
继续使用方法一的网络,不过是要使用2次:
这2个网络共享参数,最后通过一个逻辑回归单元,如果是同一个人,就输出1,不同人输出0.
训练数据被分为两两一组,而不是方法一的三个一组,人工指定1或者0.
最后通过损失函数(比如均方误差)来进行训练