Relation Network笔记

来源:互联网 发布:广东人吃福建人 知乎 编辑:程序博客网 时间:2024/06/04 18:10
  • 论文:A simple neural network module for relational reasoning
  • github代码: https://github.com/siddk/relation-network

1.Introduction

智能行为很重要的一点就是能够推理实体间的关系。这一点CNN和MLP都做的不好。这篇文章提出了Relation Networks(RNs), 并且在visual QA, test-based QA上都有很好的效果

2.Relation Networks

RN应该具有适合推理的结构,其背后的逻辑就是限制函数的结构使得它能抓住关系推理的关键,就好像CNN的结构能平移不变性, RNN能够处理序列数据一样。一个简单的RN如下所示:

RN(O)=fϕ(i,jgθ(oi,oj))

其中输入是一个对象的集合O=o1,o2,..on,oiRm是第i个对象。 这里fϕgθ是MLPs. gθ的作用计算两个对象是否相关。

RNs有以下三个特点:

  1. 可以学习推理。这里RNs所有的两个对象之间的关系,当然也可以只计算部分两个对象之间的关系
  2. RNs的数据效率更高(data efficient)。RNs使用一个gθ函数来计算所有的关系,因此泛化能力更强。此外,它只把两个对象作为输入,而不是同时把所有的n个对象作为输入,所以避免了学习n2个函数,因此更加高效
  3. RNs作用在一个集合上,因此它对输入和输出都是与顺序无关的

3. Tasks

3.1 CLEVR

CLEVR带有3D渲染的物体的图片。作者使用了数据:1)像素版的数据,每个都是2D的图片. 2)状态描述版的数据,用一个状态矩阵,每行表示一个3D的物体的包括坐标、颜色、、尺寸等。

3.2 Sort-of-CLEVR

为了证明RNs等很好的做到推理,作者把数据集分成关联性问题(relational questions)和非关联性问题(non-relational question)。每个图片有6个物体,选择是圆的还是方的,每个物体颜色不同。关联性问题如”距离灰色物体最远的物体是什么颜色?”,非关联性问题如”灰色物体形状是什么?”

3.3 bAbI

bAbI数据集是包含20类不同类型的问题和答案的文本问答数据集。

3.4 动态物理系统

作者使用MuJoCu做了一个仿真的物理弹簧系统。在桌面上有一堆小球,有些球是用硬杆或者弹簧连在一起的,但是连接的东西是看不见的,这些求在桌面上运动、碰撞。根据每个球的运动的数据,判断两个球是否关联以及有多少个关联系统,即包含两类问题。

4. Module

  • 对于像素图片, 使用CNN卷积,提取kd×d的特征图, 同一位置上的k个像素组成了一个k维的对象,一共d×d个。
  • 对于question,先对每个单词做embedding,把问题中的每个单词的embedding表示输入到LSTM中,取最后一个输出状态作为question的embedding表示。计算关系的时候可以吧公式修改为RN(O)=fϕ(sumi,jgθ(oi,oj,q))
  • 对状态描述数据,直接作为对象输入到RNs中
  • 对于自然语言,问题和答案采用相同的处理办法,不过使用的LSTM不同。每个句子之后都加上他们的位置信息

如下图所示:
这里写图片描述

5. Results

1.CLEVR-pixels
这里写图片描述
2. CLEVR-discription 准确率96.4%
3. Sort-of-CLEVR : CNN+RNs: 两种问题均在94%以上 CNN+MLPs: 相关性问题只有64%
4. bAbI: 完成了18/20问题集,只有two supporting facts和supporting facts没有达到95%以上。
5. Dynamic System: 第一类问题上93%, 第二类95%

6. Conclusion

根据作者的实验得出结论,RNs能很好的完成关系推理,并且应用十分灵活。可以用在RL上,以及解决抽象问题方面。另外也可以使用attention机制过滤掉不需要考虑的对象。