Inceptionism: Going Deeper into Neural Networks[译]

原文连接

  1. 人工神经网络在图片分类和语音识别两个任务上取得了显著的效果。虽然它们是基于大家熟知的数学模型,但是对于为什么这样的模型好用而其他模型不好用,这个问题并不清楚。现采取一些简单的方法,看看这些网络内部是什么样子。

  2. [叙述一遍我们在做什么] 我们用上百万条样本训练网络并用后向传播逐步调节网络参数,直到它给出我们要的分类结果。网络一般由10~30层组成。每张图片给到输入层,输入层把数据传到下一层,直到到达最后一层。网络的输出就是最后一层的输出。

  3. [我们目前对网络的理解] 神经网络的一大挑战是,如何理解每一层究竟在做什么。我们知道,网络训练之后,每一层抽取了更高层的图像特征,直到最后一层对图片的内容做出决策。例如,第一层也许在寻找边缘或者角点。中间层根据基础特征,寻找形状或者是组件,就像门或者树叶。最后几层把这些整合起来变成一种解释—它们只对复杂的事物有相应,比如整个建筑物,或者树木。

  4. [提出一种具体的做法] 一种可视化的方法是,把网络翻转过来,通过某种方式增强输入图片,来产生特定的输出。比方说(Say),哪种类型的图片会被神经网络认为是香蕉。首先从一张全是噪声的图片开始,然后朝着神经网络认为是香蕉的方向,逐步调整图片(相关工作[1][2][3][4])。如果它自己调整,这可能效果不太好。但是如果我们让图片具有某种类似自然图片一样的统计特性,例如邻域像素的关联性,效果就会好一些。

有一点令人惊讶:这些我们训练出来的神经网络,用来在不同类别间做决策的神经网络,竟然也可以产生图片。看看其他类别用相同方法产生的图片:

[这一发现的意义] 为什么这一点很重要?当我们训练网络时,我们给它看了很多我们想要它学习的图片,希望它能自己抽取里面的重要信息(比如,叉子有一个手柄和2-4个尖尖),同时学会忽略那些不重要的东西(叉子的形状,尺寸,颜色,方向)。但是你怎么确定,你的网络确实学到了正确的特征?上面的工作就可以帮助你表示神经网络是怎么理解一个叉子的。

[举了一个哑铃的例子] 的确有些时候,这也可以告诉我们,神经网络学得不好。例如,下图是我们设计的网络认为的哑铃的样子:

图中确实有很多哑铃,但是在没有人把它举起的图片训练下,图片都不够完整。在这种情况下,神经网络并没有抽取到一个哑铃的必要信息。也许,如果缺少一只手臂举起哑铃的图,它永远不会是哑铃。可视化可以帮助我们找到这些训练中的微小错误。

[网络自己选择要学习的特征] Instead of 准确指定我们想要网络学习到的特征,我们也可以让网络来自己来决定。在这种情况下,我们给网络提供一张任意的图片,并让网络分析它。然后从网络中选一层,并要求增强它检测到的任何东西。由于网络的不同层在不同层面抽取特征,所以特征的复杂度取决于我们选在哪一层来增强。例如,低层趋向于产生strkes或者像装饰物的模式,因为这些层对低级特征敏感,如边缘和边缘的方向。


[选择不同层带来的不同结果] 如果选择识别相对复杂特征的高层,那复杂的特征甚至整张图片都会融合进来。给网络一张现有的图片,并要求网络,“无论你看到什么特征,我都要这个特征尽可能的多”。这就是一个正反馈:如果一朵云看起来像小鸟,网络就会让它更像小鸟。这就会反过来使得网络在下一轮中更强烈地识别鸟,直到一个细节完整的鸟出现,似乎无处不在。

[网络解释的图片和它学习的样本有关] 这个结果很有趣—甚至一个相对简单的网络也能用来解释一张图片,就像我们让小孩观察云,他们会解释云就是任意的形状。这个网络是用动物的图片训练的,所以它更可能把形状解释成动物。但是由于数据是处于一个高的抽象层面,处理结果显示的就是这些特征的混合。

[更多例子] 当然,我们可以把这个方法用在更多的例子上,事实上可以是任何图片。处理结果会根据图片的类型,少许变化,因为输入的特征通过网络朝向某种特定的解释方式。例如,水平线会被填充塔,树木会变成建筑物,树叶会变成昆虫和鸟。

[给这个方法取个名字把] 这个方法使我们,对网络在各个层如何抽取特征,如何理解特征,有一个定性的感受。我们把这个方法叫做“Inceptionism”,这个词在这篇文章中用过。…

我们要更深才行:迭代

[算法迭代会怎样] 如果把算法的输出作为输入再处理一遍,并在每一次迭代后缩放一下,这就会得到一个无穷无尽的新图片,尽可能地表示网络所直到的全部。一般从一张随机噪声的图片开始,所以得到的结果就仅仅和这个网络本身相关,如下图。

[结论] 这篇博客提出的方法帮助我们理解并可视化神经网络是如何处理复杂的分类问题,有助于改善网络结构,并在训练过程中检查它学到了什么东西。这也启发我们,神经网络能否称为艺术家的工具—一种新的混合视觉概念的方法,或者为一般意义上的创造过程,提供一些线索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值