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

目录

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范数)。
  • 其中a[l]i,j,k 表示隐藏层l中(i,j,k)位置的激活值,i,j,k分别表示该位置的高度、宽度以及对应的通道数。计算关于l层和风格图像的一个矩阵,即G[l][S],这是一个n_c * n_c的矩阵,高度和宽度都是l层的通道数。矩阵中的k和k'被用来描述k通道和
相关推荐
Pelb6 小时前
求导 z = (x + y)^2
人工智能·深度学习·数学建模
小高求学之路7 小时前
本地MP4视频文件转为视频流
yolo·计算机视觉
技术小黑7 小时前
TensorFlow学习系列10 | 数据增强
python·深度学习·tensorflow2
AC赳赳老秦7 小时前
OpenClaw image-processing技能实操:批量抠图、图片尺寸调整,适配办公需求
开发语言·前端·人工智能·python·深度学习·机器学习·openclaw
hqyjzsb7 小时前
深度洞察人性需求!拆解传统心理咨询升级AI智慧辅导师数智工作流
人工智能·深度学习·学习·数据挖掘·aigc·学习方法·业界资讯
Project_Observer7 小时前
为您的项目选择最合适的Zoho Projects自动化巧能
大数据·运维·人工智能·深度学习·机器学习·自动化·编辑器
好运的阿财7 小时前
“锟斤拷”问题——程序中用powershell执行命令出现中文乱码的解决办法
linux·前端·人工智能·机器学习·架构·编辑器·vim
大囚长8 小时前
大语言模型作为语种民族文明压缩镜像的映射特性分析
人工智能·深度学习·语言模型
沅_Yuan8 小时前
基于LSSVM-ABKDE的多输入单输出回归预测模型【MATLAB】
人工智能·神经网络·机器学习·matlab·回归预测·lssvm·kde
小陈工8 小时前
Python Web开发入门(十八):跨域问题解决方案——从“为什么我的请求被拦了“到“我让浏览器乖乖听话“
开发语言·python·机器学习·架构·数据挖掘·回归·状态模式