启发主义——深入神经网络(Inceptionism: Going Deeper into Neural Networks)
传统的深度学习方法常用于根据数据标签学习分类、识别物体,或是学习数据或隐层的分布从而生成新的数据。而2015年提出的启发神经网络合成它想合成的图像,则开启了一种新的研究角度。之后开源的Deepdream则更是掀起了新的浪潮。下面我们翻译一下这篇论文。 |
人工神经网络已经在图像分类和语音识别方面取得了巨大的进步。但是尽管这些神经网络是基于众所周知的数学方法的很有用的工具,实际上我们对于为什么特定的模型可以表现很好但其它模型不能的了解少之又少。那么就让我们来看看可以窥探这些网络的一些简单的技术吧。
我们用百万数量级的训练样本以及对网络参数的逐渐调整来训练神经网络直到它具备我们想要的分类能力。网络通常由10到30个层堆叠的人工神经元构成。每张图像输入到输入层,然后传递给下一层,直到最终到达输出层。网络的“答案”来自于这个最终的输出层。
神经网络面临的挑战之一是理解每一层都是如何精确运作的。每一层我们已经知道,在训练之后,随着层级加深,每一层提取图像越来越高级别的特征,直到最后一层基本上决定了图像显示的是什么。举个例子,第一层也许寻找边缘或角;中间层对基本特征进行解释以寻找整体的形状或部件,如一扇门或一片叶;最后几层将这些都组合起来得到一个完整的解释——这些神经元对非常复杂的事物如整个建筑物或整棵树有很大的响应。
一种对于神经网络运作可视化的方法是将网络颠倒过来,要求它通过诱发一种特定的解释的方式增强输入图像。比如说你想知道什么样的图像会产生“香蕉”的解释,那就从一张由随机噪声构成的图像开始,之后逐渐调整图像直到神经网络认为它是“香蕉”。只通过它本身,它的性能并不是很好,但如果我们加入一个先验的约束:图像应该与自然图像具有相似的统计特性如相邻的像素具有相关性,它的性能就会变好。
因此我们有了一个惊奇的发现:被训练用来区分不同种类图像的神经网络也具有大量可用来生成图像的信息。下面是不同类别的更多的例子:
为什么这很重要?因为我们仅仅是通过许多训练样本训练神经网络,希望它能提取出已有图像的本质(例如一个叉子具有一个手柄和2到4个尖头),并学习忽略不重要的内容(叉子可以是任意形状、尺寸、颜色或朝向)。但是你如何检验网络已经正确地学到了正确的特征?可以采用可视化网络对于一个叉子的表达来进行检验。
事实上,在一些情况下,下面的例子说明了神经网络并没有在寻找我们认为它在寻找的东西。举例来说,下面是我们设计的一个神经网络认为哑铃的样子:
虽然这里确实有哑铃,但似乎没有一张照片是排除了举起它们的举重运动员的完整的哑铃照片。此时,网络未能完全提取出哑铃的本质。也许训练样本中就没有不带手臂的哑铃图像。可视化可以帮助我们纠正这种训练失误。
我们也可以让网络自己做决定放大哪个特征,而不用明确规定我们希望它选择的特征。此时,我们只需要输入网络任意的图像或照片,让网络自己分析。之后我们选择一层让网络增强它所检测到的任何东西。网络的每一层处理不同层级的抽象特征,因此我们生成的特征的复杂度取决于我们选择哪一层去增强。举个例子,较低的层倾向于产生笔画或简单的类似装饰的图案,因为这些层对基本的特征如边缘、朝向敏感。
如果我们选择更高的层,它们用来识别图像中更复杂的特征,那么复杂特征甚至整个物体都会呈现在生成图像中。再一次地,我们仅仅从一张已有的图像开始,将它输入网络,我们要求网络“无论你看到什么,我想要关于它的更多!”这会产生一个反馈循环:如果一朵云看起来有一点像鸟,那么神经网络将会使它看起来更加像鸟。反过来,这将会使网络在下次甚至以后的循环中,对鸟的识别能力越来越强,直至到处都是高度逼真的鸟。
结果很有趣——即使是一个相对简单的神经网络也可以用来过度解释图像,就像孩子一样喜欢观察云朵并把云朵解释成随机的形状一样。这个网络主要用动物的图像进行训练,因此它自然就倾向于将形状解释成动物。但是由于数据在神经网络中以一种高度抽象的方式储存,因此结果是这些学到的特征的有趣的组合。
当然,我们可以用这个技术不仅仅做看云的实验,我们可以将它应用于任意的图像。结果随着不同的图像也有很大不同,因为输入网络的特征使网络特定的解释。例如,地平线倾向于填充宝塔与浮屠;岩石与树木变成了建筑;鸟类和昆虫出现在叶子的图像中。
这种技术让我们能够定性地理解特定层在理解图像时所达到的抽象级别。我们参考采用的神经网络结构,称这种技术为“启发主义”。
我们必须加深“梦境”:迭代。
如果我们在神经网络的输出上迭代地应用这种算法,并在每次迭代后的应用一些缩放,我们会得到无穷的新的图像流,由此探索神经网络所学到的一系列事物。我们甚至可以从一张随机噪声图像开始这个过程,那么结果纯粹是神经网络的结果,如下图所示:
这里展示的技术能帮助我们理解并可视化神经网络是如何能够处理困难的分类任务,并能帮助我们改善网络的结构、查看网络训练时已经学到的内容。它也让我们好奇神经网络是否可以成为艺术家的工具——一种混合视觉概念的新方法——或者甚至可能对生成的创造过程的根源有一点启发。