神经网络是怎样理解图片的?谷歌大脑研究员详解特征可视化

夏乙 编译整理

量子位 出品 | 公众号 QbitAI

我们总是听说人工智能在图像识别上超越了人类,刷脸也逐渐成了生活中司空见惯的事儿。这些图像识别技术背后,通常是深度神经网络。

不过,神经网络究竟是怎样认识图像的?

神经网络是怎样理解图片的?谷歌大脑研究员详解特征可视化

 特征可视化能够告诉我们神经网络在图片中寻找的是什么

特征可视化这个强大的工具,就能帮我们理解神经网络内部的世界,知道它们的工作原理。

谷歌研究员Christopher Olah、Alexander Mordvintsev和Ludwig Schubert今天在distill博客上发文深度探索了特征可视化这个问题,并顺便介绍了一些新trick。

distill.pub是Olah等人今年3月推出的机器学习网站,会不定期发表文章,以可视化、可交互的方式来展示机器学习研究成果。

原文地址:https://distill.pub/2017/feature-visualization/。其中包含大量可交互的示例图片。

下面,量子位对这篇文章做个简要的介绍:

在2015年谷歌推出的DeepDream基础上,经过AI研究界后来的共同努力,现在,计算机视觉模型中每一层所检测的东西都可以可视化出来。经过在一层层神经网络中的传递,会逐渐对图片进行抽象:先探测边缘,然后用这些边缘来检测纹理,再用纹理检测模式,用模式检测物体的部分……

神经网络是怎样理解图片的?谷歌大脑研究员详解特征可视化

上面是ImageNet训练的GoogLeNet的特征可视化图,我们可以从中看出它的每一层是如何对图片进行抽象的。

在神经网络处理图像的过程中,单个的神经元是不能理解任何东西的,它们需要协作。所以,我们也需要理解它们彼此之间如何交互。

通过在神经元之间插值,我们可以更好地理解他们是如何彼此交互的。下图就展示了两个神经元是如何共同表示图像的。

神经网络是怎样理解图片的?谷歌大脑研究员详解特征可视化

Distill原文中的这个例子,能够动手探索不同神经元组合在一起会得到什么结果。

当然,这篇文章还介绍了一些特征可视化的trick。

在进行特征可视化时,得到的结果通常会布满噪点和无意义的高频图案。这些高频图案似乎和strided convolution或者池化关系密切。

神经网络是怎样理解图片的?谷歌大脑研究员详解特征可视化

 反向传播时,每次strided convolution或池化都会在梯度幅值上创建棋盘格图案

我们想更好地理解神经网络模型是如何工作的,就要避开这些高频图案。这时所用的方法是进行预先规则化,或者说约束。改变梯度也是一种方法,这种优化方法称为预处理(preconditioning)。

当然,了解神经网络内部的工作原理,也是增强人工智能可解释性的一种途径,而特征可视化正是其中一个很有潜力的研究方向,谷歌的几位研究员将其视为帮人类理解神经网络的一个基础模块,可以与其他工具结合使用。

推荐对此感兴趣的读者去阅读:

distill原文:

https://distill.pub/2017/feature-visualization/

GoogLeNet所有通道的可视化:

https://distill.pub/2017/feature-visualization/appendix/

— 完 —

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ’ᴗ’ ի 追踪AI技术和产品新动态

版权所有,未经授权不得以任何形式转载及使用,违者必究。