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

简介:
本文来自AI新媒体量子位(QbitAI)

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

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

39c489894b498bbbdadd9e398251e7ab54c7a50d

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

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

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

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

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

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

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

d7145c307950e158ab38f19245daf94d7c83d41b

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

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

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

851a50ec5942f9bd2bd85feaa6a78fe7c4798f13

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

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

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

2a48644c8edefccd2db179588c5d8436d6cb7773

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

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

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

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

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

GoogLeNet所有通道的可视化:
https://distill.pub/2017/feature-visualization/appendix/

本文作者:夏乙 
原文发布时间:2017-11-08
相关文章
|
9天前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
28 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
11天前
|
机器学习/深度学习 数据可视化 Windows
深度学习笔记(七):如何用Mxnet来将神经网络可视化
这篇文章介绍了如何使用Mxnet框架来实现神经网络的可视化,包括环境依赖的安装、具体的代码实现以及运行结果的展示。
28 0
|
3月前
|
编解码 Go 文件存储
【YOLOv8改进 - 特征融合NECK】 DAMO-YOLO之RepGFPN :实时目标检测的创新型特征金字塔网络
【YOLOv8改进 - 特征融合NECK】 DAMO-YOLO之RepGFPN :实时目标检测的创新型特征金字塔网络
|
9天前
|
机器学习/深度学习 数据可视化 Linux
Seaborn可视化学习笔记(一):可视化神经网络权重分布情况
这篇文章是关于如何使用Seaborn库来可视化神经网络权重分布的教程,包括函数信息、测试代码和实际应用示例。
19 0
|
1月前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络深度剖析:Python带你潜入AI大脑,揭秘智能背后的秘密神经元
【9月更文挑战第12天】在当今科技飞速发展的时代,人工智能(AI)已深入我们的生活,从智能助手到自动驾驶,从医疗诊断到金融分析,其力量无处不在。这一切的核心是神经网络。本文将带领您搭乘Python的航船,深入AI的大脑,揭秘智能背后的秘密神经元。通过构建神经网络模型,我们可以模拟并学习复杂的数据模式。以下是一个使用Python和TensorFlow搭建的基本神经网络示例,用于解决简单的分类问题。
44 10
|
2月前
|
数据可视化 算法 C++
脑研究、脑网络分析、可视化的工具箱有哪些?
本文列举并简要介绍了用于脑研究、脑网络分析和可视化的多种工具箱,如Brain Connectivity Toolbox、bctpy、人类连接组项目等,为神经科学研究者提供了丰富的分析和可视化大脑网络的工具选择。
139 2
脑研究、脑网络分析、可视化的工具箱有哪些?
|
2月前
|
机器学习/深度学习
深度学习的奥秘:如何通过神经网络模拟人类大脑
【8月更文挑战第23天】在这篇文章中,我们将探索深度学习的奥秘,特别是神经网络如何模拟人类大脑的工作方式。我们将从基础的神经网络开始,逐步深入到深度学习的核心概念,包括反向传播和卷积神经网络。我们还将讨论深度学习在现实世界中的应用,以及它如何改变了我们的生活。最后,我们将探讨深度学习的未来发展方向,以及它可能带来的影响。
|
2月前
|
缓存
Flutter Image从网络加载图片刷新、强制重新渲染
Flutter Image从网络加载图片刷新、强制重新渲染
88 1
|
2月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
46 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
|
2月前
|
数据采集 存储 数据可视化
基于Python 网络爬虫和可视化的房源信息的设计与实现
本文介绍了一个基于Python Scrapy框架和echart库的房源信息采集与可视化系统,该系统通过自动化爬虫提高房地产数据采集效率,并通过Flask服务器实现数据的Web可视化展示,旨在帮助房地产从业人员和政策制定者高效、直观地了解房源信息。

热门文章

最新文章