神经风格迁移损失函数

数据挖掘 神经风格迁移
2022-02-18 20:33:18

在生成图像和内容图像之间的损失函数中,我们只计算相应通道的激活值的误差,但是为了计算风格和生成图像之间的损失函数,我们计算了 gram 矩阵。但是我们应该对内容和生成图像之间的损失函数做同样的事情,以找到不同通道之间的相关性。

那么为什么我们在内容和生成之间的损失函数计算中不使用 gram 矩阵呢? 计算效率不是一种选择:)

2个回答

格拉姆矩阵只是理论上表示风格的一种方式。在 NST 论文中,作者将 style 定义为某一层的不同特征之间的相关性,其中层的位置(即较深的层或较浅的层)

确定样式匹配的本地比例。

在此处输入图像描述

他们提到(他们发现)

将样式匹配到网络中的更高层可以保留局部图像结构……从而带来更流畅和更连续的视觉体验。

所以这里的想法是从风格图像中获取不同比例的风格,并将其与生成的(最初是白噪声)图像混合。

内容图像用于约束样式转换,以免与原始图像偏离太多。这里不需要 Gram 矩阵。只需一个简单的平方距离即可。

随着您在网络中的深入,重建内容正在退化。即从第 x 层的给定激活重建原始输入图像对于前几层几乎是完美的,但在最后几层变得不那么精确/详细。

因此,我们的想法是选择一个足够远的层以允许有效的风格转移(即允许在使用反向传播的图像重建中进行有意义和深度的变化),同时又不会太远以丢失图像的太多细节.

他们尝试了不同的层,最终采用了 Conv4 层。他们还尝试从 Conv2 中获取内容层——但结果如图 5 所示,

当匹配网络较低层的内容时,该算法会匹配[过多]照片中的详细像素信息,并且生成的图像看起来好像艺术品的纹理只是混合在照片上

在此处输入图像描述

那么为什么我们在内容和生成之间的损失函数计算中不使用 gram 矩阵呢?

  • “相同内容”是指图像中相同位置的相同对象。如果原始内容在顶部显示一张脸,我们希望在顶部看到一张风格化的脸。

  • “相同样式”是指图像中任何位置的纹理和线条样式的相同组合。gram 矩阵是一个很好的代理度量,因为它对于样式相关性发生的位置是不变的,并且相似的线条形状和纹理将倾向于触发低级特征图通道的相同组合。

如果您将 gram 矩阵用于高阶内容通道,您可能会发现较大的对象会被视为一种样式,并且会在最终输出中移动、复制和扭曲。根据经过训练的网络、您选择哪些层来表示内容等,效果可能仍然很有趣或具有艺术性。但这将不再是风格转移,而可能是风格转移和深沉梦想的某种混合。