吴恩达《深度学习-卷积神经网络》4--特殊应用人脸识别和神经风格转换

本文详细介绍了人脸识别的原理,包括活体检测、人脸验证和人脸识别的区别,重点探讨了One Shot Learning、Siamese Network和Triplet Loss在人脸识别中的应用。此外,还讲解了神经风格转换的概念,通过内容损失函数和风格损失函数实现图像艺术化的过程。
摘要由CSDN通过智能技术生成

1. What is face recognition什么是人脸识别

  • 活体检测(liveness detection):确认是否为一个活人,区别于照片。
  • 人脸验证(face verification):提供一个人的照片以及名字或ID,验证这个人的照片和名字是否对应。为1:1问题;
  • 人脸识别(face recognition):有一个含有k个人信息的数据库,输入一个人的照片,确认他是不是数据库中的一个。为1:k问题。

一般在人脸验证的基础上进行人脸识别,所以人脸验证的准确率对人脸识别至关重要,后面就重点讲人脸验证。

2. One Shot Learning

在人脸识别中,要求只输入一张图片就能识别出这个人是谁,而在深度学习在只有一个样例的时候表现并不好,也就是你只有所有员工的单张照片,而期望训练模型,能够很好的识别任何一个人,如果来了新员工怎么办?重新训练模型么?
答案就是one shot learning!

相似函数(similarity function)

相似函数表示两张图片的相似程度,用d(img1,img2)来表示。若d(img1,img2)较小,则表示两张图片相似;若d(img1,img2)较大,则表示两张图片不是同一个人。
这里写图片描述
如图,若要判断一个人是不是数据库里的,那么就用这个人的照片和数据库里面的照片一一计算相似函数,若相似函数都比较大则表示不是数据库里的人。如果新来一个员工,那么往数据路里面添加一张照片就可以了。

3. Siamese Network

用于实现相似函数计算的网络
主要思想是用卷积神经网络CNN计算图片的特征,利用特征计算相似函数,具体做法如下:
这里写图片描述
即CNN计算到全连接层之后不进行softmax分类,而是利用全连接层的数据作为该图像的编码(encoding),用于计算和其他图像的相似函数。

4. Triplet Loss三元损失函数

如何获得质量较好的图片的编码呢?
方法之一就是定义一个三元损失函数,然后应用梯度下降。
Triplet Loss需要每个样本包含三张图片:目标(Anchor)、正例(Positive)、反例(Negative),这就是triplet名称的由来,后面简称为A、P,N。
这里写图片描述
如图A和P是同一个目标,其相差应该较小,A和N相差应该较大,即:

||f(A)f(P)||2<=||f(A)f(N)||2 | | f ( A ) − f ( P ) | | 2 <= | | f ( A ) − f ( N ) | | 2

||f(A)f(P)||2||f(A)f(N)||2<=0 | | f ( A ) − f ( P ) | | 2 − | | f ( A ) − f ( N ) | | 2 <= 0

但是若所有输出都是0,也满足上式,而这对我们来说确实一个不能接受的结果,所以为了避免这一情况,添加一个margin间隔 α α ,它的含义类似于SVM里面的间隔,也就是说目标和正样本之差要比目标和负样本之差至少小 α α ,通常 α=
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值