distill

选自《蒸馏》,作者:亚历山大·莫德温采夫等。,由机器之心编译。

最近,platform Distill杂志发表了一篇谷歌研究人员的文章,介绍了一种用于神经网络可视化和风格转移的强大工具:可微分图像参数化。本文从多个方面介绍了该工具,机器之心选择了一些内容进行编译和介绍。

distill

图像分类神经网络具有出色的图像生成能力。deep dream【1】、Style Migration【2】和Feature Visualization【3】等技术将这种能力作为探索神经网络内部原理的有力工具,并在基于神经网络的艺术创作方面向前迈出了一小步。

所有这些技术的工作方式基本相同。用于计算机视觉领域的神经网络具有丰富的图像内部表示。我们可以使用这种表示来描述我们希望图像具有的特征(例如风格),然后优化图像以具有这些特征。这种优化是可能的,因为网络对输入是可微分的:我们可以稍微调整图像以更好地适应所需的特征,然后在梯度下降中迭代地应用这种微调。

通常,我们将输入图像参数化为每个像素的RGB值,但这不是唯一的方法。因为从参数到图像的映射是可微分的,所以我们仍然可以使用梯度下降来优化可选的参数设置。

图1:当图像在参数上可微时,我们可以使用反向传播(橙色箭头)来优化它。

为什么参数化很重要?

这可能令人惊讶,也就是说,改变优化问题的参数设置可以如此显著地改变结果,尽管实际优化的目标函数仍然是相同的形式。为什么参数设置的选择有如此显著的效果?原因如下:

(1)改进优化:转换输入使优化问题变得更容易,这是一种称为“预处理”的技术,也是优化过程的重要部分。我们发现参数设置的简单更改可以使图像优化变得更容易。

(2)引力盆:当我们优化神经网络的输入时,通常会有许多不同的解对应不同的局部极小值。优化过程落入局部最小值是由其引力池(即在最小值影响下的优化表面积)控制的。改变优化问题的参数设置可以改变不同重力盆地的大小并影响可能的结果。

(3)附加约束:一些参数设置仅覆盖可能输入的子集,而不是整个空区间。在该参数设置下的优化器仍然寻找最小化或最大化目标函数的解决方案,但是它们需要服从参数设置的约束。通过选择正确的约束集,我们可以施加各种约束,从简单的约束(例如,图像边界必须是黑色的)到复杂而精细的约束。

(4)隐式优化其他目标函数:参数化可能固有地使用不同于输出的目标函数并对其进行优化。例如,当视觉网络的输入是RGB图像时,我们可以将该图像参数化为3D对象渲染,并在渲染过程中使用反向传播进行优化。由于3D对象比图像具有更多的自由度,因此我们通常使用随机参数化,这可以生成从不同视角渲染的图像。

在文章的下一部分,我们将给出几个例子来证明使用上述方法的有效性,这些方法带来了令人惊讶和有趣的视觉效果。

线形特征的目视解释

相关colab页面:https://colab . research . Google . com/github/tensor flow/lucid/blob/master/notebooks/differential-parameters/aligned _ interpolation . ipynb

特征可视化最常用于可视化单个神经元,但也可以用于可视化神经元组合以研究它们如何相互作用【3】。此时,不是优化一个图像来激活单个神经元,而是优化它来激活多个神经元。

当我们想要真正了解两个神经元之间的相互作用时,我们可以进一步创建多个可视化效果,并逐渐将目标函数从优化一个神经元转移到给另一个激活的神经元更多的权重。这在某种程度上类似于生成模型(如GAN)的势空插值。

尽管如此,仍然存在一些小问题:特征可视化是随机的。即使优化同一个对象,它的可视化效果每次都不一样。一般来说,这不是问题,但它确实阻碍了插值的可视化。如果这样做了,得到的可视化将是不对齐的:视觉关键点(如眼睛)将出现在每个图像的不同位置。在略有不同的对象中,缺乏对齐将使识别差异更加困难,因为差异被更明显的模式差异所掩盖。

如果我们观察插值帧的动画演示,我们可以看到独立优化的问题:

图2:(1,3行)非对齐插值:视觉关键点(如眼睛)的位置将从一帧到下一帧发生变化。(第2行和第4行)不同的帧更容易比较,因为视觉关键点在相同的位置。

图3:(顶行)从独立参数化的帧开始;(中国银行)然后每个框架与单个共享参数设置相结合;(底线)创建视觉对齐的神经元插值。

通过在帧之间部分共享参数设置,我们促进了可视化结果的自然对齐。直观地说,共享参数设置为视觉关键点的位移提供了一个共同的参考,但单独的参数设置根据插值权重为每个帧提供了自己的视觉效果。此参数设置不会更改目标函数,但会放大引力池(可视化在其中对齐)。

这是可微性作为视觉神经网络中有用的辅助工具的第一个例子。

通过3D渲染进行纹理风格迁移

相关colab页面:https://colab . research . Google . com/github/tensor flow/lucid/blob/master/notebooks/differential-parameters/style _ transfer _ 3d . ipynb

现在,我们已经构建了一个有效的反向传播到UV映射纹理的框架,该框架可用于调整现有的样式转移技术以适应3D对象。与2D类似,我们的目标是用用户提供的图像样式重新绘制原始对象的纹理。下图是这种方法的概述:

该算法从随机初始化纹理开始。在每次迭代中,我们对指向对象边界框中心的随机视点进行采样,并渲染它的两个图像:一个是具有原始纹理的内容图像,另一个是具有当前优化纹理的学习图像。

在渲染内容图像和学习图像后,我们优化了Gatys等人【2】的风格传递目标函数,并将参数化映射回UV映射纹理。重复这个过程,直到在目标纹理中实现所需的内容和风格融合。

图17:各种3D模型的风格迁移。注意:内容纹理中的视觉关键点(如眼睛)在生成的纹理中显示正确。

因为每个视图都是独立优化的,所以风格的所有元素都应该在每次迭代中集成。例如,如果选择梵高的《星夜》作为风格图像,则会在每个单一视图中添加星星。我们发现引入先前视图样式的“记忆”将获得更好的结果,如上图所示。因此,从最近采样的角度来看,我们保持表示样式的Gram矩阵的移动平均值不变。在每次优化迭代中,我们根据平均矩阵计算样式损失,而不是基于特定视图。

最终的纹理结合了所需风格的元素,同时保持了原始纹理的特征。例如,梵高的《星夜》被作为风格图像的模型,其最终纹理包含了梵高作品中轻盈而有力的笔触风格。然而,尽管风格图像很酷,但最终照片中的皮毛仍然保持了原始纹理的暖橙色调。更有趣的是风格转换时兔子眼睛的处理方式。例如,当风格来自梵高的画作时,兔子的眼睛会像星星一样旋转,而如果是康定斯基的作品,兔子的眼睛会变成抽象的图案,但它们仍然与原始的眼睛相似。

图18:立体派画家费尔南德·莱格的画作《大家伙在红底游行》(费尔南德和莱格,1953)的风格被转移到斯坦福邦尼(格雷格·特克&;马克·莱沃伊)。

结论

对于创意艺术家或研究人员来说,优化参数图像还有很长的路要走。这不仅会产生完全不同的图像结果,而且还可以生成动画和3D图像。我们认为本文中讨论的可能性只是皮毛。例如,您可以将3D对象纹理的优化扩展到材质或反射率的优化,甚至可以沿着Kato等人的方向继续优化网格顶点位置。

本文主要讨论可微图像的参数化,因为它们易于优化并涵盖大多数应用。当然,也可以通过强化学习或进化策略来优化不可微或部分可微的图像参数化【17,18】。还期望使用不可微参数化来生成图像或场景。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论