神经风格迁移(吴恩达深度学习笔记)

目录

1.神经风格迁移

(1)解释

2.深层卷积网络的特征检测

3.成本函数

(1)成本函数

(2)内容代价函数

(3)风格代价函数


1.神经风格迁移
(1)解释
  • 首先要知道三个图像,C来表示内容图像 ,S表示风格图像 ,G表示生成图像
  • 如上图,神经风格迁移就是将风格迁移到内容图像上。
2.深层卷积网络的特征检测
  • 卷积网络一般是从浅到深检测到越来越复杂的特征

  • 如上图,一个AlexNet,假设一个隐藏单云有9个图片块最大化激活。

  • 如上图,是Layer1-Layer5得到的图片块。在Layer1中,隐藏单元通常会找一些简单的特征,比如说边缘或者颜色阴影。

  • 第二层似乎检测到更复杂的形状和模式,比如说这个隐藏单元(编号1),找到有很多垂线的垂直图案,隐藏单元(编号2)似乎在左侧有圆形图案(roundish shape)时会被高度激活。

  • 第三层,正中间的隐藏单元似乎对图像左下角的圆形很敏感,所以检测到很多车。右下角的隐藏单元似乎开始检测到人类。总的来看第三层明显检测到更复杂的模式

  • 依次递进,越深层越能检测到复杂的特征

3.成本函数
(1)成本函数
  • 要构建一个神经风格迁移系统,需要为生成的图像定义一个成本函数,通过最小化成本函数,可以生成你想要的任何图像。
  • 内容图像C,风格图片S,生成新图片G。为了实现神经风格迁移,定义一个关于G的成本函数J(G)来评判生成图像的好坏,然后使用梯度下降法最小化J(G)来生成新的图像G。定义成本函数的公式如下:J(G)=αJ(C, G) +βJ(S, G)
  • 这个成本函数分为两部分,第一部分是内容代价函数,第二部分是风格代价函数
(2)内容代价函数
  • 用隐含层l来计算内容代价函数,如果l是个很小的数,这个代价函数就会使生成图片像素上非常接近内容图片。如果用很深的层,那么如果问内容图片里是否有狗,然后它就会确保生成图片里有一个狗。所以在实际中,这个层l通常会选择在网络的中间层。

  • 然后用一个预训练的卷积模型,衡量一个内容图片和一个生成图片他们在内容上的相似度,a[l](C)a[l](G) 分别代表这两个图片C和G的l层的激活函数值,如果这两个激活值相似,那么就意味着两个图片的内容相似。

  • 衡量两个激活值不同或相似的程度用如下公式:J(C, G) =1/2 ‖ a[l](C) - a[l](G) ‖²

(3)风格代价函数
  • 和内容代价函数一样,也是选取某一层l,将图片的风格定义为l层中各个通道之间激活项的相关系数
  • 如上图,这个相关系数可以看成不同通道激活值之间的组合,比如两个通道的激活值组合成一对数字,来表示两种特征间的相关性。(因为有多个通道,多种组合,所以有多个数字对)
  • 比如:这个红色的通道对应的第2个神经元,它能找出图片中的某些位置是否含有这些垂直的纹理,而第二个通道(黄色通道),对应第4个神经元,它可以粗略地找出橙色的区域,这两个通道的组合成的相关系数,代表了那么这幅图片中出现垂直纹理又是橙色地方的概率。如果说它们是不相关的,这意味着图片中有垂直纹理的地方很大概率不是橙色的。因此,相关系数提供了一种去测量这些不同的特征的方法。
  • 如上图,对于S,G这两个图像,需要通过各自相关系数计算一个风格矩阵,最后通过两个矩阵计算风格代价函数(这里用的Frobenius范数)。
  • 其中ali,j,k 表示隐藏层l中(i,j,k)位置的激活值,i,j,k分别表示该位置的高度、宽度以及对应的通道数。计算关于l层和风格图像的一个矩阵,即G[l][S],这是一个n_c * n_c的矩阵,高度和宽度都是l层的通道数。矩阵中的k和k'被用来描述k通道和
相关推荐
猎头南楼18 分钟前
大模型后训练与 Agent 自迭代:两类工程能力的观察
人工智能·深度学习·机器学习
Zzj_tju1 小时前
CLIP 图文对齐:先核对正样本,再相信检索分数
人工智能·深度学习·语言模型·自然语言处理
千里码aicood1 小时前
基于深度学习的驾驶员分心驾驶行为识别研究
人工智能·深度学习
Zzj_tju3 小时前
VLM 读图评测:先审计评分器,再判断读错还是算错
人工智能·深度学习·机器学习·语言模型
差不多的周周3 小时前
《HuMoCon:人类运动理解的概念发现》论文核心部分详解
人工智能·深度学习·计算机视觉·自然语言处理
Evand J4 小时前
【MATLAB例程,图像滤波降噪12】加权中值滑动窗口滤波(WMF)图像降噪,包含滤波质量评价。附代码下载链接
开发语言·图像处理·人工智能·计算机视觉·matlab·滑动窗口·滤波
tyler_download4 小时前
揉扁搓圆transformer架构:NAG优化器算法详解
深度学习·算法·transformer
七灵微4 小时前
【AI】代码实战- 基于时间序列的轴承检测1
人工智能·机器学习·ai·pandas·matplotlib
Jared_devin5 小时前
单头、多头 Self-Attention可视化
人工智能·pytorch·深度学习·算法·机器学习·pycharm
天国梦5 小时前
同步课本单词APP怎么选?实测3款才知道真实差距
人工智能·机器学习