用数独游戏来解释循环关系网络(Recurrent Relation Networks)

简介: 数独游戏如何用深度学习攻破?RRN是个什么东东?来看看这篇文章吧,了解一下吧。

1.关系推理

382fde54d0c717ddfeb7a7aff8cbf9644ba3d271

什么是关系推理?考虑上面的图像,不要把这看成是球体,立方体等等。我们可以用数百万个数字构成图像像素值的来考虑它或者图像中所有边缘的角度或者考虑每个10x10像素区域。

试着回答下面的问题:“大球体左边的棕色金属物体留下的圆柱体的大小是多少?”这是来自CLEVR数据集的示例问题。为了回答它,你需要考虑对象相对于彼此的相对位置。这个对象和交互中心思维被称为关系推理,它是人类智力的核心部分。

深度神经网络非常擅长识别物体,但是当涉及到它们的相互作用的推理时,即使是最先进的神经网络也不过如此。

例如,现有的卷积网络可以很容易地识别上面图像中的每个对象,但是由于它需要关于彼此的关于对象的推理,所以它没有回答我们刚刚提到的那个问题。

2.关系网络

Adam Santoro和他的合作者者提出了关系网(RN)。这是一个非常简单的模块,可以将关系推理能力添加到任何神经网络中。他们将一个RN添加到标准的卷积网络中,并在CLEVR数据集上训练最终获得了超人类性能。他们还将其用于BaBi——一个文本问题解答任务,而且解决了20个任务中的18个。

RN在深度学习领域向前迈出了重要一步,但它也有其局限性。它的构建方式是,每个被识别的对象只能与其他被识别的对象进行一次交互,之后网络必须给出答案。这是RN的限制,因为它不能推导导出的交互,即对象A影响了对象B,反过来影响对象C等等。在RN中,对象A必须直接影响对象C,或者根本不能影响对象C。这看起来这种方法有些呆萌。

3Recurrent Relation Networks

为了解决这个限制,我们引入了递归关系网络(RRN)。RRN执行多个步骤,而不是仅执行关联推理的单个步骤。在每个步骤中,每个对象都受到其他对象的影响,同时也考虑到它自己以前的状态。这允许交互可以从一个对象传播到另一个对象,从而形成复杂的交互链。

4.实战经验:大战数独

为了表明RRN可以解决需要非常复杂的关系推理的问题,我们使用它来解决数独(Sudoku)难题。

现在,有很多算法来解决Sudokus。RRN在两个重要的方面不同于这些传统的算法:

1.这是一个神经网络模块,从数据中学习算法,而不是手工制作。

2.它可以被添加到任何其他的神经网络中进行端到端的训练,并给神经网络赋予一个复杂的关系推理能力。

对于那些不熟悉Sudoku拼图的人来说,这是一个数字难题,在9x9网格中有81个单元格。每个单元格都是空的,或者从一开始就包含一个数字(1-9)。我们的目标是用一个数字填充每个空单元格,使得每列,每行和3×3不重叠的数字包含1到9的数字。看到下面的两个图像,一个相对简单的数独:30个给定的细胞和红色的解决方案。

1da723761d2c00df7b1e970e09fff606fbe9f3ab

b4325778c17204d59ac31464db54a19985a9c38c

你不能一步步推断Sudoku的解决方案。它需要很多步骤的方法演绎,中间结果,并可能尝试几个部分的解决方案之前找到正确的。

我们训练了一个RRN来解决Sudokus,通过考虑每个单元格的一个对象,这个对象影响到同一行、列和框中的每个其他单元格。我们没有告诉它任何策略,也没有提供任何其他的提示。神经网络学到了一个强大的策略,即使是最困难的数独也只有17个回应,成功率达到96.6%。为了比较,其他的神经网络结构并未能解决这些难题中的任何一个,尽管具有更多参数且被训练更长时间。

在每个步骤,RRN为1-9个数字上的每个小区输出一个概率分布,表示网络认为应该在该小区中的哪个数字。

b4325778c17204d59ac31464db54a19985a9c38c

5.推理简单的文本

这是巴比数据集中一个简单的问题。

玛丽在那里喝牛奶。

约翰去了卧室。

桑德拉回到了厨房。

玛丽走向走廊。

牛奶在哪里?

我们也训练了BaBi数据集的RRN,并且我们解决了19/20个任务。相比之下RN同样也解决了19/20的最先进的稀疏的可微神经计算机。值得注意的是,RRN花费了大约24小时的时间在四台GPU上进行训练,而RN在10台GPU上花费了几天的时间。我们认为这是因为RRN被设计来解决需要多于一个推理步骤的问题。

6.结论

递归关系网络(RRN)是一个通用模块,它可以用强大的关系推理能力来增强任何神经网络模型性能。

我们认为关系推理对许多任务都很重要。例如,玩游戏,Go或Starcraft II,需要识别和推理游戏中的对象,以预测行动的长期结果。另一个例子是自驾车。要安全驾驶,必须识别相关的物体,例如汽车,骑自行车的人,停车标志等,以及他们将如何相互作用的原因。

如果你对此非常感兴趣,请参阅论文代码

本文由北邮@爱可可-爱生老师推荐,阿里云云栖社组织翻译。

文章原标题《Recurrent Relational Networks》,作者:译者:虎说八道,审阅:

文章为简译,更为详细的内容,请查看


目录
打赏
0
0
0
0
1807
分享
相关文章
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
本文详细介绍了回声状态网络(Echo State Networks, ESN)的基本概念、优点、缺点、储层计算范式,并提供了ESN的Python代码实现,包括不考虑和考虑超参数的两种ESN实现方式,以及使用ESN进行时间序列预测的示例。
431 4
回声状态网络(Echo State Networks,ESN)详细原理讲解及Python代码实现
生成对抗网络(Generative Adversarial Networks,简称GANs)
生成对抗网络(GANs)由Ian Goodfellow等人于2014年提出,是一种通过生成器和判别器的对抗训练生成逼真数据样本的深度学习模型。生成器创造数据,判别器评估真实性,两者相互竞争优化,广泛应用于图像生成、数据增强等领域。
365 1
残差网络(ResNet) -深度学习(Residual Networks (ResNet) – Deep Learning)
残差网络(ResNet) -深度学习(Residual Networks (ResNet) – Deep Learning)
188 0
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
《黑神话:悟空》的网络架构与多人游戏实现
【8月更文第26天】《黑神话:悟空》作为一款备受期待的动作冒险游戏,其网络架构对于支持多人在线游戏体验至关重要。本文将详细介绍游戏在网络架构方面的设计思路,以及如何实现稳定且高效的多人游戏体验。
282 0
从零起步,深度揭秘:运用Unity引擎及网络编程技术,一步步搭建属于你的实时多人在线对战游戏平台——详尽指南与实战代码解析,带你轻松掌握网络化游戏开发的核心要领与最佳实践路径
【8月更文挑战第31天】构建实时多人对战平台是技术与创意的结合。本文使用成熟的Unity游戏开发引擎,从零开始指导读者搭建简单的实时对战平台。内容涵盖网络架构设计、Unity网络API应用及客户端与服务器通信。首先,创建新项目并选择适合多人游戏的模板,使用推荐的网络传输层。接着,定义基本玩法,如2D多人射击游戏,创建角色预制件并添加Rigidbody2D组件。然后,引入网络身份组件以同步对象状态。通过示例代码展示玩家控制逻辑,包括移动和发射子弹功能。最后,设置服务器端逻辑,处理客户端连接和断开。本文帮助读者掌握构建Unity多人对战平台的核心知识,为进一步开发打下基础。
298 0
【深度学习】Generative Adversarial Networks ,GAN生成对抗网络分类
文章概述了生成对抗网络(GANs)的不同变体,并对几种经典GAN模型进行了简介,包括它们的结构特点和应用场景。此外,文章还提供了一个GitHub项目链接,该项目汇总了使用Keras实现的各种GAN模型的代码。
125 0
m基于PSO-GRU粒子群优化长门控循环单元网络的电力负荷数据预测算法matlab仿真
摘要: 在MATLAB 2022a中,对比了电力负荷预测算法优化前后的效果。优化前为"Ttttttt111222",优化后为"Tttttttt333444",明显改进体现为"Tttttttttt5555"。该算法结合了粒子群优化(PSO)和长门控循环单元(GRU)网络,利用PSO优化GRU的超参数,提升预测准确性和稳定性。PSO模仿鸟群行为寻找最优解,而GRU通过更新门和重置门处理长期依赖问题。核心MATLAB程序展示了训练和预测过程,包括使用'adam'优化器和超参数调整,最终评估并保存预测结果。
118 0
【从零开始学习深度学习】35. 门控循环神经网络之门控循环单元(gated recurrent unit,GRU)介绍、Pytorch实现GRU并进行训练预测
【从零开始学习深度学习】35. 门控循环神经网络之门控循环单元(gated recurrent unit,GRU)介绍、Pytorch实现GRU并进行训练预测
|
10月前
|
计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)
计算机网络——数据链路层-差错检测(奇偶校验、循环冗余校验CRC)
658 0