Deep Dream 实验背后的机理实际上是很简单的。基本上我们只要修改一下图像,以增强网络中选定的某层的激活情况。具体地,我们需要:
(1) 从神经网络中选择某一层; (2) 向其中传入某些输入图像,以确定给定层的特征; (3) 设定那一层的的梯度值为激活值自身; (4) 对该图像进行反向传播。 X. 神经风格实验
考虑如下的情景:我们有两个图像,一个为内容图像 Ic, 一个为风格图像 Is,我们想生成第三个图像,使之能够具有 Ic 的内容及 Is 的风格。也就是说,我们要做的是从 Ic 中解析出内容,从 Is 中解析出风格。 为了解析出内容,我们将 Ic 传入我们的神经网络并储存每一层的激活值。但解析风格的过程却有所不同。我们将 Is 传入神经网络,并计算每一层激活值的 Garmian 矩阵(G=VTV)。从代数的观点来看,Garmian 矩阵 G 仅仅是 V 的列内积值。例如,CONV1 层由 244×244×64 个激活值构成,我们则计算得一 64×64 的 Gram 矩阵,它是由每个区域内配对激活值的协方差求和而成。从图像的角度来说,我们是将一层由三维(244×244×64)矩阵构成的激活值转换到一个二维矩阵((244×244)×64),并对其取外积以得到该 64×64 的矩阵。对矩阵中的每个项 gi,j,我们都是将输出通道 i 及 j 在那一层上的激活值乘在一起。如果通道 i 及 j 的神经元交结在一起,那么它们会加在一起,我们也会得到一个更大的 gi,j。所以 Gram 矩阵 G 含有在对整个空间位置平均后哪些神经元交结在一起的数据。我们对神经网络中的每一层都计算一个 Gram 矩阵。
最终,我们有了这些信息之后,就能够对整个图像进行最优化以得到: Ic 的内容及 Is 的风格(详见 Leon A. Gatys 等人,《A Neural Algorithm of Artistic Style》,2015)。
最后,Andrej 还推荐了一个快速神经风格迁移项目,可以实时通过网络摄像头实现风格迁移:https://github.com/jcjohnson/fast-neural-style,参见机器之心文章《》。
XI. 结语 在这篇回顾中,我们回顾了一些能够用于理解及可视化神经网络的技术。这些技术是从各种资源中搜集来的,其呈现的顺序与重要性无关。 我们探讨了如何可视化那些能最大化激活神经元的区块,检查了其权重值及其对激活值的影响(第三节);我们亦讨论了使用如 t-SNE 这样的技术来可视化全局表达(第四节);在所讨论的遮盖实验中,我们修改了输入并观察了输出改变情况(第五节);然后,我们谈到了几种去卷积方法(第六节),接着对图像进行最优化(第七节)以最大化一个类、神经元之间的激活率(firing rates)或是匹配一个特定的编码。此外,我们还基于简化的线性解释,讨论了卷积网络中的对抗输入。最后,我们涉及到了一些关于最优化图像的一些应用(在最后关于 Deep Dream、神经风格的两节中)。这些技术表明,神经网络中的「层」或特性并非仅仅是随机模式,有着能够直觉被理解的特性。我们能够使用这些可视化技巧来发现模型的中的问题,以获得更好的结果。 最后,我们想提及一个也许更具价值的观点:如今神经网络给出的解决方案,在神经网络不断增长的情况下的被证明是经验最优的——也就是说,在所谓「好」与「差」的答案之间的鸿沟消失了。所以,困在一个局部最优点,atv,也许不再是一个问题。 ©本文为机器之心原创,转载请联系本公众号获得授权。 ?------------------------------------------------ 加入机器之心(全职记者/实习生):[email protected] 投稿或寻求报道:[email protected] 广告&商务合作:[email protected] (责任编辑:本港台直播) |