卷积神经网络(四)- 特殊应用:人脸识别和神经风格转换

本次学习笔记主要记录学习深度学习时的各种记录,包括吴恩达老师视频学习、花书。作者能力有限,如有错误等,望联系修改,非常感谢!


第一版       2022-07-18        初稿

一、什么是人脸识别(What is face recognition)

在这里插入图片描述
人脸验证 vs 人脸识别:
验证(1对1):
1.输入图片,名字/ID
2.验证输入图片是否是此人

识别(1对多)犯错率更高:
1.k人的数据库
2.给一张输入图片
3.识别输出ID

二、One-Shot学习(One-shot learning)

在这里插入图片描述
一次学习,就是只需要一张照片就可识别此人。
假设数据库有4张照片,系统仅通过一张照片识别此人,若此人不再数据库中,系统可分辨出。

1.将图片输入到CNN,通过softmax输出5类,4人或都不是,实际效果不好;
2.若加入新成员,则变为(6),此时需重新训练网络。
在这里插入图片描述
学习Similarity函数:d输出两张图的差异值。若差异值小于某个阈值T,它是个超参数,预测这两张图是同一人。

三、Siamese网络(Siamese network)

在这里插入图片描述
如图经过一系列操作得到f(x(1))的特征向量,此次不送进softmax函数,f(x(1))看作是输入图像x(1)的编码。
若两张图片比较,给第二张图片喂同样参数的同样的神经网络,得f(x(2))。
定义d(x(1),x(2))=||f(x(1)-f(x(2)))||22

两个网络有相同的参数,只需要训练一个网络,计算得到的编码可以用于函数d。

四、Triplet损失(Triplet Loss)

在这里插入图片描述
定义三元组损失函数然后应用梯度下降。
成对比较,第一对同一个人想要编码相似。需要同时看三张照片,Anchor图片、Postive图片、Negative图片。公式如图。

现在把所有东西都学成0,如果f总是输出0。为了防止此情况发生,不能是0,而比0还要小,加入-a。

我们希望d(A,N)比d(A,P)大很多,大一点是没用的,想让d(A,N)至少是0.7或更高。或者使间隔至少达到0.2。
在这里插入图片描述
如图给定3个样本,定义损失函数为L(A,P,N)。max函数就是只要前者小于等于0,损失函数就为0。

取10000个图片,生成三元组,训练学习算法,对这种代价函数用梯度下降。训练集需要1000个不同人的10000个图片,每人平均10张照片。
在这里插入图片描述
随机选择A、P、N,约束条件很容易达成。若随机选择不同的人,左边可能比右边大得多,差距远大于a,网络并不能从中学到什么。
因此尽可能选择难训练的三元组。即d(A,P)接近d(A,N),算法会竭尽全力使得右边式子变大,左右两边至少一个a的间隔。
在这里插入图片描述
如图训练需要多个三元组,

五、人脸验证与二分类(Face verification and binary classification)

在这里插入图片描述
选取一对神经网络,选取Siamese网络,最后输出到逻辑回归单元。转换成一个二分类问题。可以利用编码之间的不同,yhat,f(x(i))代表图片x(i)的编码,下标k代表选择这个向量中的第k个元素。除绝对值形式,还可以是下方绿色形式,称为χ平方相似度。
在这里插入图片描述
把人脸验证作为监督学习。

六、什么是神经风格迁移(What is neural style transfer)

在这里插入图片描述
内容图像使用风格图像的风格。

七、深度卷积网络学习什么(What are deep ConvNets learning)

在这里插入图片描述
假如训练一个AlexNet网络,希望看到不同层之间隐藏单元的计算结果。
从第一层的隐藏单元开始,假设你遍历了训练集,然后找到那些使得单元激活最大化的一些图片,或者使图片块。
然后选另一个第一层的隐藏单元,重复刚才的步骤。
依次类推,9个图片块最后组成81个块,每一个不同的图片块都最大化激活了。
在这里插入图片描述
已经在第一层的9个隐藏单元重复过程好几遍,在深层的隐藏单元计算:
第一层是之前第一层得到的;第二层可视化最大程度激活9个隐藏单元。在更深的层可重复此过程。

八、代价函数(Cost Function)

在这里插入图片描述
定义关于新生成图片G的代价函数J来评判某个生成图像的好坏,使用梯度下降法最小化J(G),以便生成图像。
J_content称为内容代价,其用来度量生成图片G的内容与内容图片C的内容有多相似;
J_style称为风格代价,其用来度量生成图片G的内容与风格图片S的内容有多相似。
在这里插入图片描述
1.随机初始化生成图像G,可能100x100x3;
2.使用梯度下降方法将其最小化。

九、内容代价函数(Content Cost Function)

在这里插入图片描述
1.用隐藏层l来计算内容代价,l很小,结汇使生成图片像素上非常接近你的内容图片。若很深的层,会问内容图片是否有狗,确保生成图片有一个狗;
2.用一个预训练的卷积模型(例如VGG网络);
3.a[l]©和a[l](g)代表两个图片C和G的l层的激活函数值0;
4.相似则两个图片内容相似。

十、风格代价函数(Style Cost Function)

在这里插入图片描述
如图,能算出是否含有不同隐藏层,可选择某层(如图框起来的)为图片的风格定义一个深度测量,现在要做的是将图片的风格定义为l层中各个通道之间激活项的相关系数。

取出l层的激活块,把不同通道渲染成不同的颜色。为方便理解选取5个通道,先看前两个通道,它俩包含某个激活项,组成了很多对数字。
相关系数使得特征测量它们在图片中的各个位置同时出现或不同时出现的频率,能够测量生成的图像的风格与输入的风格图像的相似程度。
在这里插入图片描述
在这里插入图片描述
用l层来测量风格,a为l层中(i,j,k)位置的激活项。

k和k’被用来描述k通道和k’通道之间的相关系数。

之所以用G表示,是因为这种矩阵也叫Gram矩阵,但这里只把它叫做风格矩阵。
若两者不相关,G会很小。
在这里插入图片描述
如图代价函数使用了归一化常数。还要对每个层定义权重λ[l]。最后得到J(G),然后梯度下降或更复杂的优化算法找到合适的图像G,并计算J(G)的最小值。

十一、一维到三维推广(1D and 3D generalizations of models)

在这里插入图片描述
首先看到二维卷积,可看到14x14图像和5x5的过滤器进行卷积,得到10x10的输出。使用多通道则如图所示(右上)。
同样可应用于一维数据,左KEG信号(由时间序列对应的每个瞬间的电压组成),只是14的尺寸,使用一维过滤进行卷积,将产生十维的数据。
在这里插入图片描述
如图的CT扫描,图示为人体躯干中不同层的切片。
在这里插入图片描述
同样可以使用5x5x5的三维过滤器,
1


  1. 深度学习-吴恩达 ↩︎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值