One-Shot学习/一次学习(One-shot learning)

来源: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。

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

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值