前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[DeeplearningAI笔记]卷积神经网络4.6-4.10神经网络风格迁移

[DeeplearningAI笔记]卷积神经网络4.6-4.10神经网络风格迁移

作者头像
演化计算与人工智能
发布2020-08-14 14:50:38
8480
发布2020-08-14 14:50:38
举报

4.6 什么是神经网络风格转换 neural style transfer

  • 将原图片作为内容图片 Content,风格图片 Style,生成的图片用 Generated image 表示。

4.7 深度卷积神经网络在学什么 What are deep ConvNets learning

“Zeiler, Matthew D., and Rob Fergus. "Visualizing and understanding convolutional networks." European conference on computer vision. Springer, Cham, 2014.

  • 假设你在学习的神经网络结构如图:
  • 将训练集中的所有图片都经过神经网络,然后弄明白哪一张图片最大限度的激活了神经网络中的特定单元。
    • 对于第一层卷积层,将数据集中的所有图片都通过第一层卷积层。输出其通过第一层卷积层后的数值,挑选出最大的九个数值对应的九张图片块(个人理解为是一张图片经过感受野所得到的子图片)。将这个算法运用到第一个卷积层上的所有神经元上,输出一个缩略特征图。
    • Pick a unit in layer 1.Find the nine image patches that maximize the unit's activation.
    • Repeat for other units.
    • 原文如下:
    • 个人理解:
  • 其中更深层次的神经元可以看见数据集原始图像中更大的区域,可以假设,每一个神经元都会影响神经网络更深层的输出
Layer1
Layer2
Layer3
Layer4
Layer5

4.8 神经风格迁移系统 Cost function

“Gatys L A, Ecker A S, Bethge M. A Neural Algorithm of Artistic Style[J]. Computer Science, 2015.

  • 对于神经网络风格迁移系统,判断所生成的图片 G 的好坏很重要,需要有一个函数 J 作为损失函数(cost function)用来评价风格迁移的好坏。
    • 首先将 J(G)风格迁移损失函数切分为两个部分一个是内容图片部分(Content),另一个是生成图片的部分(Generated image G).然后会把结果加上一个风格代价函数,一个关于(Style)S 和(Generated image)G 图片的函数--用来描述风格图片 S 和生成图片 G 的相似度。
    • 然后使用
    \alpha

    \beta

    两个参数来权衡内容代价和风格代价之间的权重。

    J(G)=\alpha J_{Content}(C,G)+\beta J_{style}(S,G)
算法流程
  1. 初始化生成图像 G:
    • 尺寸为
    100*100*3

    ,或者是

    500*500*3

    或者是任何你想要的尺寸。

  2. 使用梯度下降最小化损失函数 J(G)
    G=G-\frac{\alpha}{2G}J(G)
示例
  • 如果原始图像为如下左图,风格图片为如下右图:
  • 图片迭代改变过程如下图所示:

4.9 神经网络风格迁移内容代价函数 Content cost function

图像内容代价函数

“Gatys L A, Ecker A S, Bethge M. A Neural Algorithm of Artistic Style[J]. Computer Science, 2015.

J(G)=\alpha J_{Content}(C,G)+\beta J_{style}(S,G)
  • 使用第 l 个隐藏层上的值来计算内容代价函数
    • 如果 l 值很小,那么生成的图像在像素上很像内容图像
    • 如果使用的 l 很大,那么生成的图像会偏风格化,而模糊原始图像的内容
    • 所以一般 l 不会选的太深也不会太浅,会选择在网络中层数的中间位置
  • 使用
a^{[l](C "l")}和a^{[l](G "l")}

表示层数 l 的激活值。

  • 如果这两个值相似,则表示这两张图片上的内容相似
J_{content}(C,G)=(a^{[l](C "l")}-a^{[l](G "l")})^{2}


4.9 神经网络风格迁移风格代价函数 Content cost function

“Gatys L A, Ecker A S, Bethge M. A Neural Algorithm of Artistic Style[J]. Computer Science, 2015.

  • 假设使用神经网络模型中的深度 l 作为风格的深度测量
    • 则把第 l 层不同通道之间激活值的相关系数作为风格--Define style as correlation between activations across channels.
  • 对于一个具有 5 个通道的激活值特征图而言,不同通道对应位置可以组成激活函数值对。通过不同通道上下对应位置的激活函数值对可以计算不同通道之间的相关系数。
  • 不同的通道对应不同的特征子图,对应不同卷积核上神经元识别的特征结果
  • 两个通道的激活值具有很大的相关性,意思是:而。当两个神经元的激活值具有很大的
图像风格诠释
  • 红色框中的神经元识别的是具有竖直条纹的特征
  • 黄色框中的神经元识别的是具有橙色纹理的特征
  • 假如红色和黄色框中的激活值具有很大的相关性,表明具有竖直条纹的子图很可能是橙色纹理的
  • 如果相关性不大,表明竖直条纹的子图很大概率不是橙色的
  • 相关性即是表明两个特征同时出现的概率
图像风格矩阵
  • 为了研究风格图像或者生成图像的风格,使用第 l 层神经元的激活值来测量图片的风格。
  • i,j,k 分别表示该位置的高度和宽度以及对应的通道数,则第 l 层,(i,j,k)位置处的激活函数值可被表示为:
a^{[l]}_{(i,j,k)}
G^{[L](S "L")}_{K,K'}

表示 S 代表风格图片风格计算,L 表示在第 L 层上计算图像风格,K 和 K'是用来计算相关性的 L 层的两个通道。风格图片的风格计算公式可如下表示:

G^{[L](S "L")}_{K,K'}=\sum^{n^{[l]}_{H}}_{i=1}\sum^{n^{[l]}_{W}}_{j=1}a^{[l](S "l]}_{H}}_{i=1}\sum^{n^{[l]}_{W}}_{j=1}a^{[l")}_{i,j,k}a^{[l](S "l")}_{i,j,k'}

生成图像的风格计算公式可如下表示:

G^{[L](G "L")}_{K,K'}=\sum^{n^{[l]}_{H}}_{i=1}\sum^{n^{[l]}_{W}}_{j=1}a^{[l](G "l]}_{H}}_{i=1}\sum^{n^{[l]}_{W}}_{j=1}a^{[l")}_{i,j,k}a^{[l](G "l")}_{i,j,k'}
  • 在线性代数中,图像风格矩阵(Style matrix)也被称为“Gram matrix”,
G^{[l]}

是最终计算出的图像风格,其大小为

n^{[l]}_{c} * n^{[l]}_{c}

正方形的矩阵,其中

n^{[l]}_{c}

表示第 l 层特征图的通道数。即

G^{[l]}

会由

G^{[L](S "l]}

是最终计算出的图像风格,其大小为

n^{[l]}_{c} * n^{[l]}_{c}

正方形的矩阵,其中

n^{[l]}_{c}

表示第 l 层特征图的通道数。即

G^{[l]}

会由

G^{[L")}_{K,K'}

生成,其中参数 k 和 k'会遍历

n^{[l]}_{c}

,即 L 层上特征图中的所有通道。

图像风格代价函数
  • 当然如果对每一层都是用风格代价函数会让结果变得更好,此时表达式可表示为:
J_{style}(S,G)=\sum_{l}\lambda^{[l]}J_{style}^{[l]}(S,G)
  • 其中,S 表示风格图像,G 表示生成图像,l 表示遍历所有层,
\lambda

表示一些额外的超参数,这样能够在考虑风格切换的代价函数时同时考虑浅层的低级和更深层的高级特征。

风格迁移总体代价函数
  • 如果在所有层上都计算风格迁移的内容和风格代价函数,则其可表示为:
J(G)=\alpha J_{content}(C,G)+\beta J_{style}(S,G)

参考资料

[1]

吴恩达老师课程原地址: https://mooc.study.163.com/smartSpec/detail/1001319001.htm

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DrawSky 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.6 什么是神经网络风格转换 neural style transfer
  • 4.7 深度卷积神经网络在学什么 What are deep ConvNets learning
    • Layer1
      • Layer2
        • Layer3
          • Layer4
            • Layer5
            • 4.8 神经风格迁移系统 Cost function
              • 算法流程
                • 示例
                • 4.9 神经网络风格迁移内容代价函数 Content cost function
                  • 图像内容代价函数
                  • 4.9 神经网络风格迁移风格代价函数 Content cost function
                    • 图像风格诠释
                      • 图像风格矩阵
                        • 图像风格代价函数
                          • 风格迁移总体代价函数
                          • 参考资料
                          相关产品与服务
                          对象存储
                          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档