深度学习可以做哪些有趣的事儿?(1)--A Neural Algorithm of Artistic Style

总体结构:

深度学习可以做哪些有趣的事儿?(1)--A Neural Algorithm of Artistic Style_第1张图片

如果构建一个cnn,在浅层更多保留原图的细节(content),而在深层的时候(style),“看起来是梵高星空的样子”,那么一副照片就有了“星空”的风格。如图,内容重构随着层数变深而丢失了越来越多的细节(即滤波器响应F),而风格图随着层数加深越来越能体现出“风格”(即Gram矩阵(见下文))。

模型: vgg19+avg pooling+无全联接

F(lij) 是l层第i个滤波器在位置j的响应.

定义内容损失函数为filter输出与照片的平方误差:

深度学习可以做哪些有趣的事儿?(1)--A Neural Algorithm of Artistic Style_第2张图片

其中P是照片在该层中的内容表示,

定义同一层中不同滤波器之间响应的内积为Gram矩阵:

深度学习可以做哪些有趣的事儿?(1)--A Neural Algorithm of Artistic Style_第3张图片

于是第l层的损失为:

深度学习可以做哪些有趣的事儿?(1)--A Neural Algorithm of Artistic Style_第4张图片

其中Al为风格画在该层的风格表示,

则风格损失函数为各层损失之和:

深度学习可以做哪些有趣的事儿?(1)--A Neural Algorithm of Artistic Style_第5张图片

之后,从两幅白噪声图片开始,分别计算内容损失和风格损失并进行梯度下降迭代,

最终的联合损失函数为:

深度学习可以做哪些有趣的事儿?(1)--A Neural Algorithm of Artistic Style_第6张图片

由于内容和风格的损失函数相互独立,因而可以任意地改变它们之间的比重。

纵轴为不同层风格误差组合,横轴为不同的内容风格比重

paper 链接:https://arxiv.org/pdf/1508.06576.pdf

你可能感兴趣的:(深度学习可以做哪些有趣的事儿?(1)--A Neural Algorithm of Artistic Style)