吴恩达老师深度学习视频课笔记:神经风格迁移(neural style transfer)

        什么是神经风格迁移(neural style transfer):如下图,Content为原始拍摄的图像,Style为一种风格图像。如果用Style来重新创造Content照片,神经风格迁移可以帮你生成Generated图像。


        深度卷积网络在学什么:如下图,假如训练了一个Alex卷积神经网络,为了看到不同层之间隐藏单元的计算结果,可以这样做,从第一层的隐藏单元开始,将训练集经过神经网络,然后弄明白哪一张图像最大限度地激活特定的单元。注意:在第一层的隐藏单元只能看到小部分卷积网络。然后可以选一个第一层的另一个隐藏单元重复刚才的步骤,接着对其它隐藏单元也进行同样处理。第一层的隐藏单元通常会找一些简单的特征,比如说边缘或者颜色阴影(shade of color)。后面的层会找到更复杂的形状和模式。在深层部分一个隐藏单元会看到一张图像更大的部分。在极端的情况下,可以假设每一个像素都会影响到神经网络更深层的输出。



        代价函数(cost function):要构建一个神经风格迁移系统需要定义一个代价函数,如下图,通过最小化代价函数可以生成你想要的任何图像。给一个内容图像C,给定一个风格图像S,目标是生成一个新图像G。使用梯度下降法去最小化J(G),J(G)=α*Jcontent(C,G)+β*Jstyle(S,G),分别表示C和G的相似度,S和G的相似度,然后用两个超参数α和β来确定内容代价和风格代价两者之间的权重。对于代价函数J(G)为了生成一个新图像首先随机初始化生成图像G;然后使用定义的J(G),使用梯度下降的方法将其最小化。


        Content cost function:神经风格迁移算法的代价函数由一个内容代价部分和一个风格代价部分组成。内容代价部分,如下图,选择一个隐含层l来计算内容代价,这个隐含层一般会选择中间的层;然后用一个预训练的卷积模型,可以是VGG或者其它的网络也可以,令a[l][C]和a[l][G]代表l层的激活函数值,如果这两个激活值相似,那么就意味着两张图像有相似的内容。


        Style cost function:如下图,图像的风格定义为l层中各个通道之间激活项的相关系数,即计算风格矩阵(style matrix),G[l][S]和G[l][G]。如果你对每层都使用风格代价函数会让结果变得更好。


        1D and 3D generalizations of models:2D图像中的卷积同样适用于1D数列,如下图:


        2D图像中的卷积也同样适用于3D,如下图:


        GitHubhttps://github.com/fengbingchun/NN_Test 

猜你喜欢

转载自blog.csdn.net/fengbingchun/article/details/80933394
今日推荐