Course 4-Convolutional Neural Networks--Week 4

本周的内容主要围绕人脸识别展开,主要包括face verification、face recognition、neural style transfer。

4.1 What is face recognition?

首先来看看人脸识别领域的一些术语。如下图所示,分别说明了人脸确认和人脸识别的概念。人脸确认是个1对1的问题,而人脸识别比人脸确认更难,是个1对K的问题。如果人脸确认系统的正确率是99%,当我有100个人的时候,正确率并不会很高;此时,我们需要进一步提高人脸系统的正确率,比如提升至99.9%。
这里写图片描述
接下来的几节中,我们将构建face verification系统,它是人脸识别问题的一个组成部分。如果人脸确认系统的准确率足够高,那么我们可以直接将其作为人脸识别系统的一部分。

4.2 One-shot learning

人脸识别的挑战之一就是要解决one-shot学习问题,这意味着,对于大多数人脸识别应用,我们需要仅用一张图片来识别人脸。但如果每个人只有一张训练照片的话,深度学习算法是不可能工作好的。我们先来通过一个例子说明下什么是one-shot,然后再来讨论如何定位这个问题。
假如我们有一个数据库,里面是四个雇员的人脸图像。系统所做的事情就是,尽管对每个人都只见过一张图片,但还是要识别出这个人在不在我的数据库中,如果在,指出是谁;如果不在,告诉我们。因此,one-shot学习问题指从一个样例中学习识别人脸。因此,可以尝试的一种方法是:将一张人脸图像输入到ConvNet中,最后使用softmax来输出 y^ ,但是这样网络的工作效果并不好,因为训练集太少了,对于深度学习网络来说,这是远远不够的。并且,一旦有新人加入团队,又要重新训练网络,这样的话,这个方法并不是一个好方法。
这里写图片描述
取而代之的是,我们学习一个similarity function(相似性方程),我们想神经网络可以学习一个函数 d ,输入是两张图像,输出是两张图像的差异度。如果两张图像是同一个人的,我们希望输出值较小;如果两张图像是不同的人,我们希望输出值较大。因此,我们可以设置一个超参数阈值 τ ,如果输出的差异度小于等于阈值,则认为是同一个人,否则认为是两个人。这就是我们定位的人脸确认问题。将其用在识别任务中时,我们所做的就是,新来一张图片,我们使用函数 d 进行图像间的两两计算,输出差异度,若小于阈值,则认为是同一个人,否则是两个人。即便有新成员加入,只需要将其照片加入数据库,该方法仍然能工作的很好。
这里写图片描述
下节将介绍如何训练神经网络来学习函数 d

4.3 Siamese network

函数 d 的工作是输入两张人脸图像,然后告诉我们它们的差异度。一个好的实现方法是使用Siamese network。
如下图所示。我们将图像 x(1) 输入ConvNet,经过卷积、池化、全连接的序列,最后得到一个特征向量。像我们之前,会将这个特征向量输入进softmax层,最后得到分类结果。但是现在,我们不需要分类结果,相反,我们只关心最后的特征向量,比如说是长度为128的特征向量,并称其为 f(x(1)) ,我们将 f(x(1)) 当做是输入图像 x(1) 的编码,因此,ConvNet将一幅二维图像重新表示成了一个一维特征向量。那么,构建人脸识别系统的方法就是将另一张人脸图像也输入具有相同参数的相同ConvNet中,并得到长度为128的特征向量。最后,如图中蓝色自己所写,通过计算两个特征向量之间的距离,得到输入 x(1) x(2) 之间的差异度,进而得出两张图像中的人脸是否是一个人。
这里写图片描述
那么,怎么训练这个Siamese network呢?神经网络的参数决定了输入 x 的编码 f(x) ,对于任意的输入 x ,神经网络会输出一个长度为128的编码 f(x) 。更具体的说,我们要学习一组参数,这组参数可以使得对于相同的人,其图像的编码距离很小;但对于不同的人,其图像的编码距离较大。我们就是要使用back propagation,求得使上述条件成立的参数。
这里写图片描述
那么,我们如何定义目标函数,最终得到我们想要的参数呢?

4.4 Triplet loss训练方法之一

一种学习上述神经网络参数的方法是,定义triplet loss,并利用梯度下降法更新参数。下面进行详述。
为了应用triplet loss,我们需要比较图像对。如下图所示,每次需要3张图片,分别是anchor、positive、negative。如下图中蓝色笔迹所示,当 f(A) f(P) f(N) 均为0,或 f(A) f(P) f(N) 均相等时,仍然满足下图中蓝色笔迹的不等式,为了防止这种情况的发生,我们加一个大于0的超参数 α ,如绿色笔迹所示,称其为margin,它的大小决定了 d(A,P) d(A,N)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值