怎样让机器学会推理?伯克利AI研究所一文详解神经模块网络

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

最近,加州大学伯克利分校人工智能研究所(BAIR)的博士生Jacob Andreas在博客上发文,介绍了如何用神经模块网络(NMN)模型来完成推理任务。

这个博客是BAIR刚刚建立的,他们打算分享、讨论计算机视觉、深度学习、机器人、NLP等领域的研究成果。

这篇关于神经模块网络研究的梳理,是BAIR技术博客的第二篇文章(第一篇是博客的介绍),量子位翻译出来,和大家分享:

假设我们想要开发出一种家用机器人,能够回答关于周围环境的一些问题。

我们可能会向机器人提出这样的问题:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 这是什么?
和蓝色圆柱一样大小的物体是什么颜色的?

我们该怎样训练机器人来正确回答这些问题?

在深度学习领域,一种经典方法是通过收集大量问题、图像和对应的答案,构成数据集,来训练一个能直接从问题和图像映射到答案的神经网络。

对于“这是什么”一类的问题,其实我们需要解决的是一个经典的图像识别任务,这类整体方法非常有效:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 问:这是什么?答:猫。

但对于图1右侧的问题,这种方法效果不佳。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 问:和蓝色圆柱一样大小的物体是什么颜色的?
答:蓝色。

这回,我们训练的神经网络似乎没理解这个问题,直接用这张图中出现最多的颜色猜了个答案。

这个问题难在哪?

即使是一张更简洁的图片,回答这样的问题仍需要多步推理。模型不能简单地识别图像中的主要物体,而是先要找到蓝色圆柱体,然后找到具有相同大小的另一个物体,再确定其颜色。

这是一个复杂的分析过程,需要对具体问题进行具体计算,不同的问题还可能有不同的解决步骤。

深度学习中大多使用了“一刀切”的方法:对于要解决的任何问题,通过设计一个固定的模型结构,希望能够从已标记的训练数据中学习到相关模型参数,捕获关于输入和输出间的一切关系。

但在现实世界中,并不能以这种方法来实现推理。我们遇到的每个新问题都涉及多种可能性,以不同的方式结合在一起。

解决这类问题所需要的模型,要能根据面对的问题来决定推理方式,建立一个能灵活地自行选择内部结构的神经网络。

在这篇文章中,我们要讨论一种名叫神经模块网络(neural module networks,NMNs)的模型。这种方法保留了深度学习有效的表现力,也为解决问题提供了更灵活的方法。

回到上文说的那个问题:

和蓝色圆柱一样大小的物体是什么颜色的?

要回答这个问题,分三步:1. 找到一个蓝色圆柱,2. 找到和它尺寸相同的另一个物体,3. 确定其颜色。

流程如下图所示:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

换个问题,步骤也会不一样。当问题为“有多少与球尺寸相同的物体?”,流程图会变成这样:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

像“比较尺寸”这种基本运算,在很多问题上都能共用,不过是用在不一样的地方。

NMN的核心思想是让这种“共用”更加明确:回答上面两个问题,我们用了不同结构的网络,但是在设计相同的基本运算时,两个网络相关部分共用了同样的权重。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 “比较尺寸”部分是共用的

该如何学习得到这样的模型?

我们不是训练一个神经网络,让它能完成多对输入输出,而是同时训练大量不同的网络,然后在合适的地方将它们的参数匹配起来。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 网络部分节点共享示意图

一些新的深度学习框架,例如DyNet和TensorFlow Fold等,在设计的时候就考虑到了这种动态计算。

训练完成后,我们得到的也不是一个单独的深度网络,而是一组神经模块,每个模块包含推理之中的一个环节。当我们想用训练好的模型来处理一类新问题时,可以动态组合这些模块,以生成针对该问题的新网络结构。

这种方法有一个显著的优点,就是单个模块不需要低级别的监督学习:

我们不会用“蓝色对象”或者“在左边”这种关系来逐个训练神经模块,而是让它们在组合结构中,通过问题-答案这种成对数据来进行有监督学习。但是,这个神经网络能够在训练中自动推断出各个模块负责的运算,以及模块间的关系。如下图所示:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

 神经网络在处理“蓝色圆柱和红色金属物体右侧的大积木材料一样吗?”这个问题时,自动推断出各个模块负责的运算。

在根据更真实的图片、甚至数据库等信息来源回答问题时,这个模型也同样可行:

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

这整个过程的关键在与一组像上面那样的高级别“推理蓝图”,根据这些蓝图,我们可以确定每个问题的分析网络应如何布局,以及如何将不同的问题联系起来。

我们应该怎么构建这些蓝图?

在对这类模型的早期研究中(相关文献1、2),我们发现,设计特定问题的神经网络与分析语法结构这两者之间,具有极大的相似性。长期以来,语言学家认为,问题的语法与回答时需要的计算过程顺序密切相关。根据自然语言处理方面的最新进展,我们可以使用现成的语法分析工具来自动提取出这些蓝图的近似版本。

但是,构建从语言结构到网络结构的准确映射,仍是一个具有挑战性的问题,转换过程中容易出错。

在后来的工作中,我们不再依靠这种语言分析方法,改用由人类专家直接标注了理想化推理蓝图的一系列问题(相关文献3)。模型通过学习模仿这些专家,大大提高了预测质量。最令人惊讶的是,当允许这些模仿训练好的模型来修改专家的预测数据时,这些模型能找到比专家更好的解决方案。

尽管近年来深度学习方法取得了显著成果,但是许多问题,如小样本学习和复杂推理等方面,仍然存在一定的挑战。不过,语义解析和程序归纳等结构化的传统方法正适合解决这类问题。

利用好神经模块网络的离散组合灵活性和数据效率,再结合深层网络的理解能力,这种方法为解决上述问题提供了一个很好的思路。NMN在很多视觉和文本推理任务中已经取得很好的效果,我们还会继续研究用NMN来解决其他人工智能问题。

相关文献

1. Neural Module Networks. 
Jacob Andreas, Marcus Rohrbach, Trevor Darrell and Dan Klein. CVPR 2016. 
https://arxiv.org/abs/1511.02799

2. Learning to Compose Neural Networks for Question Answering. 
Jacob Andreas, Marcus Rohrbach, Trevor Darrell and Dan Klein. NAACL 2016. 
https://arxiv.org/abs/1601.01705

3. Modeling Relationships in Referential Expressions with Compositional Modular Networks. Ronghang Hu, Marcus Rohrbach, Jacob Andreas, Trevor Darrell and Kate Saenko. CVPR 2017. 
https://arxiv.org/abs/1611.09978

【完】

本文作者:王小新
原文发布时间:2017-07-01
相关文章
|
7天前
|
人工智能 数据中心 云计算
AI网络新生态ALS发起成立,信通院、阿里云、AMD等携手制定互连新标准
9月3日,在2024 ODCC开放数据中心大会上,阿里云联合信通院、AMD等国内外十余家业界伙伴发起AI芯片互连开放生态ALS(ALink System)。
AI网络新生态ALS发起成立,信通院、阿里云、AMD等携手制定互连新标准
|
3天前
|
人工智能 自然语言处理 自动驾驶
【通义】AI视界|马斯克亲自辟谣:xAI不可能在特斯拉的推理计算机上运行
本文精选了24小时内的重要科技新闻,包括马斯克辟谣xAI不会运行在特斯拉计算机上、谷歌发布AlphaProteo AI模型、百度贴吧“弱智吧”成为AI训练佳选、荣耀推出跨应用智能体以及苹果即将在iOS 18.2中加入图像生成功能。更多内容请访问通义官网体验。
|
15天前
|
数据采集 机器学习/深度学习 人工智能
Python爬虫入门指南探索AI的无限可能:深度学习与神经网络的魅力
【8月更文挑战第27天】本文将带你走进Python爬虫的世界,从基础的爬虫概念到实战操作,你将学会如何利用Python进行网页数据的抓取。我们将一起探索requests库和BeautifulSoup库的使用,以及反爬策略的应对方法。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你打开一扇通往数据抓取世界的大门。
|
26天前
|
JSON API 数据格式
Python网络编程:HTTP请求(requests模块)
在现代编程中,HTTP请求几乎无处不在。无论是数据抓取、API调用还是与远程服务器进行交互,HTTP请求都是不可或缺的一部分。在Python中,requests模块被广泛认为是发送HTTP请求的最简便和强大的工具之一。本文将详细介绍requests模块的功能,并通过一个综合示例展示其应用。
|
20天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多样化的选择,包括CPU+GPU、CPU+FPGA等多种配置,适用于人工智能、机器学习和深度学习等计算密集型任务。其中,GPU服务器整合高性能CPU平台,单实例可实现最高5PFLOPS的混合精度计算能力。根据不同GPU类型(如NVIDIA A10、V100、T4等)和应用场景(如AI训练、推理、科学计算等),价格从数百到数千元不等。详情及更多实例规格可见阿里云官方页面。
|
27天前
|
存储 机器学习/深度学习 人工智能
迎接AI挑战:构建新一代AI网络基础设施
随着人工智能(AI)技术的飞速发展,AI模型的复杂度和数据规模急剧增加,对基础设施的需求提出了前所未有的挑战。传统的互联网基础设施已难以满足AI技术对高性能计算、大规模数据处理和低延迟网络的需求,从而催生了新一代AI基础设施的诞生。本文旨在深入探讨新一代AI基础设施的特点、优势,并介绍其在混合云环境下的应用方案。
|
21天前
|
人工智能 异构计算
就AI 基础设施的演进与挑战问题之大模型推理中需要进行算子融合的问题如何解决
就AI 基础设施的演进与挑战问题之大模型推理中需要进行算子融合的问题如何解决
|
2天前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络入门到精通:Python带你搭建AI思维,解锁机器学习的无限可能
【9月更文挑战第10天】神经网络是开启人工智能大门的钥匙,不仅是一种技术,更是模仿人脑思考的奇迹。本文从基础概念入手,通过Python和TensorFlow搭建手写数字识别的神经网络,逐步解析数据加载、模型定义、训练及评估的全过程。随着学习深入,我们将探索深度神经网络、卷积神经网络等高级话题,并掌握优化模型性能的方法。通过不断实践,你将能构建自己的AI系统,解锁机器学习的无限潜能。
8 0
|
25天前
|
边缘计算 人工智能 监控
边缘计算与AI结合的场景案例研究
【8月更文第17天】随着物联网(IoT)设备数量的爆炸性增长,对实时数据处理的需求也随之增加。传统的云计算模型在处理这些数据时可能会遇到延迟问题,尤其是在需要即时响应的应用中。边缘计算作为一种新兴的技术趋势,旨在通过将计算资源更靠近数据源来解决这个问题。本文将探讨如何将人工智能(AI)技术与边缘计算结合,以实现高效的实时数据分析和决策制定。
60 1
|
26天前
|
人工智能 安全 网络安全
白宫关于AI的行政命令对网络安全领导人意味着什么
白宫关于AI的行政命令对网络安全领导人意味着什么