深度学习之风格迁移

0.什么是风格迁移

深度学习之风格迁移_第1张图片

为了描述如何实现神经网络迁移,我将使用C来表示内容图像,S表示风格图像,G表示生成的图像。即生成的图像G在内容上(线条轮廓)继承C,在风格上(纹理、色彩等)继承S。

为了实现神经风格迁移,我们需要知道卷积网络在深层的、浅层的部分提取的对应特征。

1.可视化CNN特征

AlexNet不同layers的特征可视化图,每3*3代表一个feature channel:

深度学习之风格迁移_第2张图片

浅层:线条、角点

中层:几何组合、纹理组合

深层:成型特征(如脸、狗等)

例子来自于Matthew ZenerRob Fergus的这篇论文,题目是(Zeiler M D, Fergus R.Visualizing and Understanding Convolutional Networks[J]. 2013, 8689:818-833.)《可视化理解卷积神经网络》

2.风格迁移代价函数

代价函数包括风格代价与内容代价两部分

我们用两个超参数和来来确定内容代价和风格代价,两者之间的权重用两个超参数来确定。两个代价的权重似乎是多余的,这里我觉得一个超参数似乎就足够。

内容代价函数:内容选取中间层,即边缘轮廓的特征提取层。对生成图与内容图的中间层的激活函数进行距离计算。

风格代价函数:风格层可以选取全部层,以同一层中不同channels之间的相关系数决定其风格,如下图框3中的竖纹与框4中的橘色相关性多强(越强代表竖纹出现的同时橘色也出现):

深度学习之风格迁移_第3张图片

其相关性计算:

风格代价函数:对生成图与内容图的风格进行范数计算,l代表layer,k代表channel

深度学习之风格迁移_第4张图片

至此,风格迁移基础知识介绍完毕。

你可能感兴趣的:(深度学习)