Santoro, Adam, et al. “A simple neural network module for relational reasoning.” arXiv preprint arXiv:1706.01427 (2017).
简介
本文用一个普适的关系网络RNs(Relation Networks)来解决“关系推理”(relational reasoning)问题。其使用的模型结构简单,效果远胜已有算法,甚至超出人类表现。
论文于2017年6月5日在arxiv发布。由于其原理简明,爱好者们很快给出了pytorch实现、keras实现以及tensorflow实现。
关系推理问题
关系推理问题由三部分组成。
- 一系列事实,即推理的素材。可以是:
- 一张图片:红色的球,黄色的圆柱,蓝色的立方体。
- 一组场景信息:每个物体的类别,颜色,尺寸,位置。
- 几个句子:Mike拿着足球。Mike去了办公室。
- 一段数据:几个球在物理系统中弹跳,其中某几个有隐形杆相连。给出这些球的实时位置。
- 一个问题,作为推理的提示。由于强调关系,这些问题都涉及不止一个对象。例如:
- 红色和黄色物体是否为同一类?
- 哪个物体离蓝色球最远?
- 足球在哪里?
- 那些物体在运动时是相连的?
- 一个回答,即推理的结果。例如:
- (红色和黄色物体)是(同一类)。
- 黄圆柱。
- (足球在)办公室。
- A球和B球(是相连的)。
在训练集中,每组数据包含1.2.3;在测试集中,每组数据包含1.2, 要求回答出3。
说明:问题和回答不局限于自然语言。也可能使用结构化数据表示。
网络结构
系统
推理网络可以用下图表述。
事实 O O O和问题 Q Q Q都经过不同的embedding网络提取特征变为 o , q o,q o,q。这l两者构成系统的processing部分。
对于不同类别的输入,embedding可能是CNN(图像)或LSTM(自然语言)。
两个特征送入reasoning部分,推理出回答 a a a。
传统的推理网络中,reasoning部分可能是MLP,LSTM,或者带有attention的LSTM。
关系网络RN
本文使用关系网络(Relational Network)实现reasoning部分。
其理念非常直观
- 把事实特征分解成一系列对象