吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换


本文属于笔记的第一个版本,只记录了核心思想。

人脸识别

人脸识别和人脸验证问题,人脸识别要比人脸验证难得多,因为人脸识别是一个一对多的问题。假如你的人脸识别准确率为99%,还可以,但是应用到100个人上犯错的额机会就是100倍了
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换

one-shot学习

人脸识别问题一个挑战就是我们需要解决一次学习问题,一种方法是将图片进行学习,输出分类是哪个人,这种方法显然不灵活,当新增人模型还需要增加分类重新学习。
我们构建一个similarity函数,similarity(img1,img2)=degreeofdifferencebetweenimagessimilarity(img1,img2) = degree of difference between images,输出两张照片的差异值。

siamese网络

将两个输入放入有相同参数的神经网络,得到两个128维的向量,然后定义编码之差的范数d(x(1),x(2))=f(x(1)f(x(2)))22d(x^{(1)},x^{(2)})=||f(x^{(1)}-f(x^{(2)}))||_2^2
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换我们要训练的目标就是当是同一个人时,使上述的范数越小越好,当训练的目标不是同一个人时,范数越大越好。

triplet损失

方法之一:定义三元组损失函数
我们需要比较Anchor和Positive的距离与Anchor和Negative的距离。
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换
我们希望有如下式子
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换
然后对表达式做一点修改,防止出现0<=0,增加的α\alpha称为间隔
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换
然后定义损失函数:
只要左式小于等于0,损失函数就为0,如果没有达到目标,即损失函数为正,就需要最小化损失函数来达到使损失函数为0的结果。
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换

三元组数据集的选择

关于A P N,N不要随机选择,应该选择与A相近的,这样神经网络才能竭尽全力使NA的距离变大。

人脸验证与二分类

我们还可以将人脸识别问题当成一个二分类问题。如下式,如果是相同的人输出为1,如果是不同的人输出为0。图下的绿色公式表示另外一种公式,叫做卡方公式
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换

神经网络风格迁移

CNN特征可视化

卷积网络每一层可以检测到的特征趋于复杂,即由浅层到深层,检测到的特征越来越具体。
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换

代价函数

假设G为生成图像,C是内容图像,S是风格图像。我们将代价函数分为两部分
内容代价Jcontent(C,G)J_content(C,G)和风格代价Jstyle(C,G)J_style(C,G)
J(G)=αJcontent(C,G)+βJstyle(C,G)J(G)=\alpha{J_content(C,G)}+\beta{J_style(C,G)}
算法运行:首先随机初始化生成图像G,然后使用梯度下降对代价函数最小化。吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换

内容代价函数

假如隐藏层很小,他会在像素上非常接近生成图片的像素;如果很深,假如图片有狗,他就会生成一只狗。所以实际中,代价层l不会太浅也不会太深。通常选择在网络的中间层。
我们要衡量一个内容图片和生成图片在内容上的相似度,我们令a[l][C]a[l][G]a^{[l][C]和a^{[l][G]}}表示图片C和G的l层的**函数值,如果这两个**值相似,则认为内容相似
Jcontent(C,G)=12a[l][C]a[l][G]2J_content(C,G)=\frac{1}{2}||a^{[l][C]-a^[l][G]}||^2

风格代价函数

风格代价通过衡量风格图像和生成图像的G(风格矩阵)的距离。
风格矩阵表现为l层各通道间的相关性,因而风格矩阵的维度ncnc,ncn_c*n_c,n_c为通道数。
风格矩阵计算的是两个通道的**项数值乘积,因为如果两个通道的**项都很大,那么Gkk[l]G_{kk^{&#x27;}}^{[l]}也会变得很大,如果他们不相关,那么Gkk[l]G_{kk^{&#x27;}}^{[l]}就会很小。
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换
然后将S和G带入风格代价函数中计算,得到两个矩阵间的误差,然后加一个F(Frobenius范数)。
最后我们获得对l层定义的代价函数,两个图像S和G之间的范数再乘一个归一化常数。我们也可以对多层使用风格代价函数,并配置不同的权重
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换

一维到三维卷积推广

1D

当应用于1D数据,与2D数据类似,这时我们只需要1x5维度的过滤器,一次做卷积,如下图,我们可以获取一个10x1的结果数据。
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换

3D

如下图,3D与2D并无太大区别,相当于增加一个维度,而过滤器可能为4维。CT医疗扫描是3D数据的一个实例
吴恩达深度学习 第四课 第四周 人脸识别和神经风格转换

参考第四周 特殊应用:人脸识别和神经风格转换