吴恩达卷积神经网络——人脸识别和神经风格转换

1. 人脸识别

人脸验证(Face Verification)和人脸识别(Face Recognition)的区别:
  • 人脸验证:一般指一个一对一问题,只需要验证输入的人脸图像是否与某个已知的身份信息对应;
  • 人脸识别:一个更为复杂的一对多问题,需要验证输入的人脸图像是否与多个已知身份信息中的某一个匹配。
  • 一般来说,由于需要匹配的身份信息更多导致错误率增加,人脸识别比人脸验证更难一些。

One-Shot学习: 只用一个训练样本来获取准确的数据。要让人脸识别能够做到一次学习,需要学习 Similarity 函数,差异度函数。

  • 可以设置一个超参数ε 作为阈值,作为判断两幅图片是否为同一个人的依据
  • 对于人脸识别问题,只需计算测试图片与数据库中K个目标的相似函数,取其中d(img1,img2)最小的目标为匹配对象。若所有的d(img1,img2)都很大,则表示数据库没有这个人
  • 如果之后有新人加入了团队,只需将他的照片加入数据库,系统依然能照常工作

Siamese 网络:利用梯度下降算法不断调整网络参数,使得属于同一人的图片之间d(x(1),x(2))很小,而不同人的图片之间d(x(1),x(2))很大。即神经网络的参数定义了一个编码函数f(x(i)),如果给定输入图像x(i),这个网络会输出x(i)的128维的编码。然后要做的就是学习参数

  • 如果两个图片x(i)和x(j)是同一个人,那么得到的两个编码的距离就小
  • 如果x(i)和x(j)是不同的人,那么编码距离就大
  • 如果改变这个网络所有层的参数,会得到不同的编码结果,通过反向传播来改变这些所有的参数,以确保满足这些条件 
三元组损失函数:

 

间隔参数α也被称为边界margin,类似于支持向量机中的margin,拉大了AnchorPositive图片对和AnchorNegative图片对之间的差距。

2. 神经风格转移

神经风格迁移生成图片G的代价函数

 

  • αβ 是用于控制相似度比重的超参数。
  • 神经风格迁移的算法步骤如下:随机生成图片 G 的所有像素点;使用梯度下降算法使代价函数最小化,以不断修正 G 的所有像素点。

内容代价函数

 

  • 使用一个预训练好的 CNN(例如 VGG);选择一个隐藏层 l 来计算内容代价。
  • l 太小则内容图片和生成图片像素级别相似,l 太大则可能只有具体物体级别的相似。因此,l 一般选一个中间层;设 a(C)[l]a(G)[l]为 C 和 G 在 l层的激活
  • a(C)[l] 和 a(G)[l] 越相似,则 Jcontent(C,G)越小

风格代价函数

  用于计算这两个通道的相关性,相关性的大小,即表示原始图片同时包含两个通道图片的可能性大小。通过 CNN,“风格”被定义为同一个隐藏层不同通道之间激活值的相关系数,因其反映了原始图片特征间的相互关系。

  卷积神经网络也可以延伸到一维ihe三维数据,如EKG心电图和CT扫描

posted @ 2023-03-04 11:14  forever_fate  阅读(74)  评论(0)    收藏  举报