谷歌的开源人工智能项目 Tensor Flow 最近创造了一个神经网络游乐场,其目的是通过让用户与隐藏层互动和实验的方式除去这个隐藏层的神秘面纱。
【编者按】本文作者:Moritz Helmstaedter,由机器之心编译,参与:吴攀、盛威、亚洲
引言:为计算机构建一个复杂的神经网络是人工智能的关键,但人脑的这一活动却被「隐藏层」笼罩在神秘的面纱中。谷歌的开源人工智能项目 Tensor Flow 最近创造了一个神经网络游乐场,其目的是通过让用户与隐藏层互动和实验的方式除去这个隐藏层的神秘面纱。
交互式神经网络「游乐场」可视化提供了理解机器学习的方式的途径
在《科学美国人》杂志最近一篇题为「Springtime for AI: TheRise of Deep Learning」(机器之心已有译文《深度学习崛起带来人工智能的春天》)的文章中,计算机科学家 Yoshua Bengio 解释了为什么复杂神经网络是人们长久以来一直追求的真正人工智能的关键。要让计算机像人类一样聪明,就应该依照人脑的工作方式给计算机编程——这看起来是合乎逻辑的。但是,鉴于我们对大脑功能的了解太少,这个任务看起来就不仅仅是有点困难了。所以深度学习到底是如何工作的呢?
Jen Christiansen通过可视化的方法解释了神经网络的基本结构和功能。
制图/Jen Christiansen(汉化/原野)
显然,为了在整体上解码图像,所谓的「隐藏层(hidden layers)」在分解视觉成分(visual component)上发挥了关键性的作用。而且我们知道这些层是按次序采取行动的:从输入到输出,每一层所处理的信息越来越复杂。但除此之外,隐藏层——顾名思义——是被笼罩在神秘的面纱中的。
作为最近的参与的项目 Tensor Flow 的一部分,Daniel Smilkov 和 Shan Carter 创造了一个神经网络游乐场(neural network playground,请在http://playground.tensorflow.org/ 体验),其目的是通过让用户与隐藏层互动和实验的方式除去这个隐藏层的神秘面纱。
Daniel Smilkov 和Shan Carter 的隐藏层可视化
最近发生了很多关于这个可视化系统的事情,而我最近非常有幸在 OpenVisConf. 大会上听到 Fernanda Viégas 和 Martin Wattenberg 在他们的主题演讲中对此进行了一些讲解。(Fernanda 和 Martin 属于 Tensor Flow 背后的团队,而 Tensor Flow 则是一个为在真实世界中使用神经网络的复杂得多的开源工具。)
这个神经网络游乐场并未使用复杂如面部的数据,而是使用了分散在一片区域中的蓝色和橙色的点来「教」机器学习如何寻找和响应模式。用户可以选择具有不同复杂度的不同方式的点分布,并且还可以通过增添新的隐藏层来操作该学习系统以及每一层中的新神经元。然后,每次用户点击「play(播放)」按钮,他就能看到背景颜色的梯度向接近蓝点和橙点的分布方式变化。随着模式变得越来越复杂,新增的神经元和层可以帮助机器更成功地完成这一任务。
机器仅使用了一个带有两个神经元的隐藏层就轻松处理了这种直接的点分布
解码这种更复杂的螺旋模式,机器就更辛苦一点
动图演示(机器之心制图)
除了神经元层,机器还有其它有意义的特征,比如神经元之间的连接。这些连接以蓝线或橙线的形式表示:蓝线表示正(positive)——即每一个神经元的输出与其内容相同;橙线表示负( negative)——即输出与每一个神经元的值相反。此外,连接线的厚度和不透明度表示的是每一个神经元所作的预测的置信度,这就像我们通过一个学习过程取得进展时我们大脑中连接的强化。
有趣的是,随着我们在为机器构建神经元上越做越好,我们可能最终能揭秘关于我们自己大脑的工作方式的新信息。对隐藏层的可视化和操作看起来是促进这一进程的绝佳方式,同时还能让深度学习的概念接触到更广泛的受众。