人脸验证与二分类(Face verification and binary classification)

来源:Coursera吴恩达深度学习课程

听着五月天的《仓颉》,五月的每一天都是五月天。

三元组损失(Triplet loss)是一个学习人脸识别卷积网络参数的好方法,还有其他学习参数的方法,让我们看看如何将人脸识别当成一个二分类问题(binary classification problem)

另一个训练神经网络的方法是选取一对神经网络,选取Siamese网络,使其同时计算这些嵌入(embedding),比如说128维的嵌入,或者更高维,然后将其输入到逻辑回归单元,然后进行预测,如果是相同的人,那么输出是1,若是不同的人,输出是0。这就把人脸识别问题转换为一个二分类问题,训练这种系统时可以替换Triplet loss的方法。

最后的逻辑回归单元是怎么处理的?比如说sigmoid函数应用到某些特征上,关注编码之间的差异,即:

其中,下标k表示选择这个向量中的第k个元素。有一种做法,把这128个元素当作特征(features),然后把他们放入逻辑回归中,最后的逻辑回归可以增加参数w_i和b,就像普通逻辑回归一样。你将在这128个单元上训练合适的权重,用来预测两张图片是否是一个人,这是一个很合理的方法来学习预测0或者1,即是否是同一个人。

当然,上图中绿色标记(这两个编码取元素差的绝对值)也可以用卡方公式来代替(卡方平方相似度):

这些公式及其变形在这篇DeepFace论文中有讨论,之前也引用过。

如上图的红色标记,输入是一对图片(a pair of images),这是你的训练输入x,输出y是0或者1,取决于你的输入是相似图片还是非相似图片。和之前类似,上面这个神经网络拥有的参数和下面神经网络的相同,两组参数是绑定的,这样的系统效果很好。

这里有一个计算技巧(computational trick)可以帮助显著提高部署效果,如果是数据库中的图片,不需要每次都计算这个嵌入,可以提前计算好(pre-compute),这个预先计算的思想,可以节省大量的计算(save a significant computation),这个预训练的工作可以用在Siamese网路结构中,将人脸识别当作一个二分类问题,也可以用在学习和使用Triplet loss函数上。

如上图,总结一下,人脸验证(face verification)当作一个监督学习(supervised learning),创建一个只有成对图片的训练集,输入不是三个一组,而是成对的图片(pairs of images),目标标签(target label)是1表示一对图片是一个人,目标标签是0表示图片中是不同的人。利用不同的成对图片,使用反向传播算法去训练神经网络,训练Siamese神经网络。处理人脸验证和人脸识别扩展为二分类问题,这样的效果也很好

说明:记录学习笔记,如果错误欢迎指正!转载请联系我。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值