6.什么是神经网络风格转换
把下图content的内容转换成Style风格的图像,结果如下Generate图像所示。
7.什么是深度卷积网络
这部分通过一些可视化例子来理解,深度卷积网络在学习一些什么东西。
假如训练了一个Alex卷积网络,我们来详细看网络隐藏单元
从第一层的隐藏单元开始,假设遍历了训练集,然后发现最大化**运算单元的图片或图片是什么,换句话说,将你的训练集经过神经网络然后弄明白哪一张图片最大限度地**特定的单元,在第一层隐藏单元只能看到小部分卷积神经。从第一个隐藏层选择一个单元,并选择出这个单元被最大**的9个图片块,其它的隐藏层单元重复这个操作。
从下图可以看出第一层的隐藏单元通常会找出一些简单的特征,比如边缘或者颜色阴影,在深层的隐藏单元会看到一个图像更大的部分,在极端的情况下可以假设每个像素都会影响到神经网络更深层的输出
在这一层检测到了更复杂的形状和模式,比如第二个隐藏单元找到了很多的垂直图案。
在第3、4、5隐藏层,我们看到提取的特征越来越复杂,也越来越高阶。
8.代价函数
为了实现神经风格变化,需要定义一个损失函数,后续看到的就是怎么去最小化这个损失函数。损失函数的定义如下。
其中G为生成图像,C为内容图像,S为风格图像,
如何得到生成图像G呢?你需要随机初始化生成图像G,然后通过梯度下降算法最小化损失函数
下图还给出了一个逐步得到生成图像的示例。
9.内容损失函数
在上一部分已经阐述了神经风格转换的损失函数包含内容损失函数和风格损失函数两个部分,这部分讲述内容代价函数。
1)假如你要用隐藏层
2)用预训练的卷积网络,可以是VGG网络或者其它的网络,现在你需要衡量,加入有一个内容图片和一个生成图片,他们在内容上的相似度
3)令
4)如果
所以内容损失函数为取
10.风格损失函数
图片的风格具体是什么意思呢?加入我们选择隐藏层
图像风格的直观认识,我们以下图红色和黄色圈中的区域为例,如果两个图像所标识的区域相关性高话,那么图像中有垂直纹理的地方有很大可能是橘色的,如果不相关的话那么有垂直纹理的地方很大可能不是橘色的,所以相关系数给出了一种度量,告诉我们不同纹理共同出现的可能性有多大。
风格矩阵的计算:
令
其实就是两个通道的**值对应位置相乘并相加,如果k和
风格损失函数可以写成:
前面的为归一化系数
参考文献
[1] Visualizing and understanding convolutional networks.Zeiler et.al 2013.