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

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

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

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

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

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

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

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

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

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

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

 问:这是什么?答:猫。

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

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

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

这个问题难在哪?

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

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

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

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

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

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

回到上文说的那个问题:

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

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

流程如下图所示:

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

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

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

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

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

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

 网络部分节点共享示意图

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

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

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

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

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

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

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

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

在对这类模型的早期研究中(相关文献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
相关文章
|
1月前
|
机器学习/深度学习 数据采集 人工智能
未来的守护神:AI驱动的网络安全之盾,如何用智慧的光芒驱散网络黑暗势力?揭秘高科技防御系统背后的惊天秘密!
【10月更文挑战第3天】随着网络技术的发展,网络安全问题日益严峻,传统防御手段已显不足。本文探讨了构建AI驱动的自适应网络安全防御系统的必要性及其关键环节:数据采集、行为分析、威胁识别、响应决策和执行。通过Python库(如scapy、scikit-learn和TensorFlow)的应用实例,展示了如何利用AI技术提升网络安全防护水平。这种系统能够实时监控、智能分析并自动化响应,显著提高防护效率与准确性,为数字世界提供更强大的安全保障。
61 2
|
10天前
|
机器学习/深度学习 人工智能 安全
AI与网络安全:防御黑客的新武器
在数字化时代,网络安全面临巨大挑战。本文探讨了人工智能(AI)在网络安全中的应用,包括威胁识别、自动化防御、漏洞发现和预测分析,展示了AI如何提升防御效率和准确性,成为对抗网络威胁的强大工具。
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
AI与艺术创作:机器的艺术天赋
【10月更文挑战第31天】本文探讨了AI在艺术创作中的应用及其独特“艺术天赋”。从绘画、音乐、文学到设计,AI通过计算机视觉、自然语言处理和生成对抗网络等技术,逐渐展现出强大的创作能力。尽管面临原创性、审美标准和法律伦理等挑战,AI艺术创作仍为艺术界带来了新的视角和灵感,未来有望与人类艺术家共同推动艺术的创新与发展。
|
22天前
|
机器学习/深度学习 人工智能 物联网
5G与AI融合:智能网络的新纪元
【10月更文挑战第25天】
42 3
|
1月前
|
人工智能 关系型数据库 数据中心
2024 OCP全球峰会:阿里云为代表的中国企业,引领全球AI网络合作和技术创新
今年的OCP(Open Compute Project)峰会于2024年10月14日至17日在美国加州圣何塞举行,在这场全球瞩目的盛会上,以阿里云为代表的中国企业,展示了他们在AI网络架构、液冷技术、SRv6和广域网等前沿领域的强大创新能力,持续引领全球合作与技术创新。
|
2月前
|
人工智能 数据中心 云计算
AI网络新生态ALS发起成立,信通院、阿里云、AMD等携手制定互连新标准
9月3日,在2024 ODCC开放数据中心大会上,阿里云联合信通院、AMD等国内外十余家业界伙伴发起AI芯片互连开放生态ALS(ALink System)。
AI网络新生态ALS发起成立,信通院、阿里云、AMD等携手制定互连新标准
|
1月前
|
人工智能 自然语言处理 NoSQL
|
1月前
|
机器学习/深度学习 人工智能 算法
利用AI技术优化网络安全
【10月更文挑战第4天】随着人工智能(AI)的飞速发展,其在网络安全领域的应用也日益广泛。本文将探讨如何利用AI技术提升网络安全防护能力,包括机器学习、深度学习等方法在识别和防御网络攻击方面的应用。同时,文章还将分析AI技术在网络安全领域面临的挑战和未来发展趋势。
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络深度剖析:Python带你潜入AI大脑,揭秘智能背后的秘密神经元
【9月更文挑战第12天】在当今科技飞速发展的时代,人工智能(AI)已深入我们的生活,从智能助手到自动驾驶,从医疗诊断到金融分析,其力量无处不在。这一切的核心是神经网络。本文将带领您搭乘Python的航船,深入AI的大脑,揭秘智能背后的秘密神经元。通过构建神经网络模型,我们可以模拟并学习复杂的数据模式。以下是一个使用Python和TensorFlow搭建的基本神经网络示例,用于解决简单的分类问题。
49 10
|
2月前
|
机器学习/深度学习 监控 并行计算
深度学习之生物网络推理
基于深度学习的生物网络推理利用深度学习技术来解析和理解生物网络(如基因调控网络、代谢网络、蛋白质-蛋白质相互作用网络等)的复杂关系和动态行为。
51 5
下一篇
无影云桌面