吴恩达深度学习之卷积神经网络(四)人脸识别和神经功能转换

本文详细介绍了人脸识别技术,包括验证问题与识别问题的区别,one-shot学习的概念,以及使用Siamese网络进行人脸识别的原理。文章还探讨了Triplet损失在训练网络中的应用,以及如何将人脸识别转换为二分类问题。此外,还介绍了神经风格转换,展示了深度卷积网络如何捕捉图像的内容和风格,以创造出艺术作品。
摘要由CSDN通过智能技术生成

1、什么是人脸识别

人脸识别就是识别人脸,比如手机人脸识别开机,人脸识别打卡等。

需要注意的是,人脸识别需要和活体检测(用来确认被识别的是一个活人)放在一起使用,这样才能避免用照片骗过手机或者打卡机,我们这里主要将人脸识别部分。

人脸识别相关术语:

验证问题:

输入:图片,名字/ID

输出:确认是否输入的信息与该人相符

识别问题:

假设有一个验证系统,其准确率为99%,假设在识别系统中有100个人需要识别,那么其很有可能会有一个人被识别错,如果需要识别的人很多,比如上班打卡,好几千人,那么如果 其准确率还是99%,那么其有可能会有几十个人被识别错,这种错误率相当大,所以,识别系统需要做到更高的准确度,百分之99.9%以上才说得过去。

所以,识别问题比验证问题难得多。验证问题是1对1,而识别问题是多对多。

2、one-shot学习

one-shot -学习就是在很少样本的情况下训练好系统,然后做到很高的识别率。

上图所示,如果数据库中的训练集只有上图右边四张图片,我们要识别这四个人,如果来一个测试集我们能识别出。这就是one-shot学习。

我们如果用传统的卷积神经网络去做模型很麻烦:
1、它需要很多训练集,这不符合one-shot学习的少量训练集。

2、就算用卷积神经网络,如果我们在公司首先识别四个人并且训练好了模型,当公司新来一个人,模型的softmax部分就要修改,这样需要重新训练模型,很麻烦。

引入one-shot学习:

similarity函数:d(imag1,imag2)=degree of difference between images

试想,如果数据库中有image1,新来一张imag2,如果他们直接的不同值很小,就可以认为他们很相似,如下图所示,我们设置一个阈值,我们两张图片小于阈值,就认为这两张图片一样,这样就识别出来了,这也是一个验证问题。

如果要将其引入到识别问题:

如上图所示,输入一张图片与数据库中图片做similarity函数计算,我们发现新图片与左边第二张图片的差别值最小,差不多就认为新的图片就是左边第二个人。

同理,又来一人又做该处理。

所以one-shot学习的精髓就是学习similarity函数,该函数学习好了,就能计算出新来图片和数据库中图片的差别值,若差别值小于某阈值,就任务两张图片一样,若大于则不同,这就做到了识别若把one-shot函数用到公司打卡里,我们也只需将新来员工放到数据库中,这样当新来员工打卡刷脸时,也能识别。

3、siamese网络(将图片编码,用于计算两张图片的差值)

我们要得到d函数,就要训练siamese网络。

该网络用于训练一个神经网络用于将图片编码,编码后的数据用来计算图片之间的差值d。

d函数的作用就是输入两张图片,计算他们之间的差值。

如上图所示,一般输入一张图片到卷积网络,最后是用softmax做分类。我们这里去除最后softmax部分,输入一张图片,最终得到一个128维的向量。如果我们把x(1)作为输入,那么这个向量用f(x(1))表示,也就是给x(1)编码了。

若我们用相同的神经网络并且权重相同,输入第二张图片x(2),最终得到f(x(2)),那么:

定义d(x(1),x(2))=f(x(1))与f(x(2))之间的范数。这也是两张图片之间的差别具体数值处理。

而这个网络结构也就是siamese网络,接下来的工作就是训练该网络学习参数。

总结:

两边各个图片经过siamese编码,然后用范数计算图片之间的差值,若小于某阈值,则识别同一人,反之亦然。

siamese网络中的权重不可能随随便便给出,这就要通过训练获得。

如上图所示,siamese网络的作用就是用于编码图片x(i),并且将该图片映射到一个128维度的向量。

要做的工作是训练该网络并且学习到参数,用来计算两张图片之间的差值,通过差值进行识别。

训练网络参数的目标:

输入数据集经行,使得输入两张图片,x(i),x(j)若两张图片是同一个人,则他们之间的范数很小,若两张图片不是同一个人,则他们之间的范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值