赞
踩
来源:Coursera吴恩达深度学习课程
人脸识别所面临的一个挑战就是需要解决一次学习问题(one-shot learning problem),这意味着在大多数人脸识别应用中,你需要通过单单一张图片或者单单一个人脸样例就能去识别这个人。而历史上,当深度学习只有一个训练样例时,它的表现并不好,让我们看一个直观的例子,并讨论如何去解决这个问题。
假设数据库里有4张员工照片(deeplearning.ai的员工),分别是Kian,Danielle,Younes和Tian。现在假设有个人来到办公室,并且她想通过带有人脸识别系统的栅门,现在系统需要做的就是,仅仅通过一张已有的Danielle照片,来识别前面这个人确实是她。相反,如果机器看到一个不在数据库里的人,机器应该能分辨出她不是数据库中四个人之一。所以在一次学习问题中,只能通过一个样本进行学习,以能够认出同一个人。
有一种办法是,将人的照片放进卷积神经网络中,使用softmax单元来输出4种,或者说5种标签,分别对应这4个人,或者4个都不是,所以softmax里我们会有5种输出。但实际上这样效果并不好,因为如此小的训练集不足以去训练一个稳健的神经网络。而且如果有新人加入,难道重新训练神经网络吗?
所以要让人脸识别能够做到一次学习,为了能有更好的效果,你现在要做的应该是学习Similarity函数。
详细地说,神经网络要学习这样一个用d表示的函数,
上述公式以两张图片作为输入,然后输出这两张图片的差异值。如果输入同一个人的两张照片,你希望输出一个很小的值;如果输入两个长相差别很大的人的照片,则希望输出一个很大的值。在识别过程中,一般设置阈值,它是一个超参数。如果d大于阈值,则预测是两个不同的人。这是解决人脸验证的一个可行方法。
要注意这个过程中是如何解决一次学习问题的,只要你能学习这个函数d,通过输入一对图片,它将会告诉你这两张图片是否是同一个人。如果之后有新人加入,只需将他的照片加入数据库,系统依然能照常工作。
现在我们已经知道函数d是如何工作的,通过输入两张照片,它将让你能够解决一次学习问题。那么,下个文章中,我们将会学习如何训练神经网络学会这个函数d。
说明:记录学习笔记,如果错误欢迎指正!转载请联系我。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。