读书笔记12:A simple neural network module for relational reasoning

摘要的结构和前两篇读书笔记的论文类似,首先一句话点名背景:relational reasoning是通用智能(generally intelligent behavior)的核心组件,但是神经网络很难学习这种任务。第二句话点明自己的文章是做什么的:在这篇文章中我们描述了如何使用relation networks(RNs)作为一种即插即用的模块来解决一些从根本上依赖于relational reasoning的问题。之后都是从实验的角度介绍模型:在三个任务上测试了模型,CLEVR数据集上的visual question answering任务取得了state-of-the-art的超越人类的水平;text-based question answering任务;动态物理系统的复杂推理问题。之后在Sort-of-CLEVR数据集上,作者展示了卷积网络没有解决relational问题的一般能力,但是通过RN增强之后可以具有这种能力。摘要的最后一句话说作者的工作展示了装备了RN的深度学习框架是如何能够学习去推理实体及其之间的关系的(reason about entities and their relations)。

introduction部分

技术部分,RN是用来预测object之间的连接的有无,以及连接的含义的,RN的最简单形式是一个复合函数:

                                                      

输入是一些对象(object),分别是以和θ为参数的函数,在本文中,这两个函数都是多层感知机MLP,参数就是连接的权重,这使得RN是端到端可微分的。的输出是relation,也就是说它是用来预测两个object是否连接以及如何连接。(没有说f,那可能f是用来进一步修饰relation的?)

本文的技术部分只有这一个公式,第一段说了RN具有以relational reasoning为首要目的的结构,RN的设计理念就是通过限制神经网络的函数形式使其能够抓取relational reasoning的核心的公共的特征,也就是说,像CNN先天就能够抓去空间信息,具有平移的稳定性(translation invariant property),RNN先天能够推断序列的依赖关系,RN先天就具有计算object之间关系的能力。第二段就给出了这个最简单形式的公式(后面也没有更复杂形式的了),接下来一段介绍了RN的三个强项,包括能够推理relation,能够高效利用数据,在object的集合上操作(意味着输入的形式可以很灵活,且具有order invariant)

接下来的部分具体介绍RN的这三个方面,首先是infer relation,公式表明RN需要考虑所有object对之间可能存在的联系,事先不需要告诉模型哪些relation是存在的,以及relation的含义,这些都要靠模型自己推断。此外,虽然说RN应该自己去推断所有的relation,但是如果事先知道一些信息,使得RN只需要考虑某些object对之间的relation,也是可以的,这种信息可能是输入数据提供的,也可能是一些预处理的机制抓取出来的。第二点是RN可以高效利用数据,RN计算每一个relation都是用的同一个函数,这样可以避免overfit,增强泛化能力。最后一点是RN在object的集合上进行操作,上述公式中的求和项意味着RN对于输入集合中object的顺序的改变是具有稳定性的(order invariant)。

之后文章就开始介绍将RN应用到不同的任务上的情况,其实应用的不是单独的RN,而是经过RN加持的网络(RN-augmented networks),为了测试这些网络的能力,选取了多个不同的任务,包括visual QA、text-based QA和dynamic physical systems。

visual QA选取的是CLEVR数据集,这个任务是模型学习去回答关于一个图片的问题。这个任务要求很高水平的场景理解能力。很多数据集都会要求模型能够在缺失一些外界世界的知识的情况下完成任务,使得任务的难度大大增加,这就是选择CLEVR数据集的原因,这个数据集比较规矩,它包含3D的物体图片,例如球体、圆锥等等,如下图所示,问的问题也比较规矩,都按类别分好

扫描二维码关注公众号,回复: 3233502 查看本文章

例如query attribute question可能会问“球体的颜色是什么”,而compare attribute question可能会问,“立方体的材质和圆柱体的是一样的吗?”。作者声称他们选择CLEVR的原因是因为这个数据集中的很多问题先天就是有联系的,很多很强大的QA架构都不能在CLEVR数据集上表现的很好,可能是因为他们不能够抓取其中的relation,举例来讲,包含ResNet101和LSTM以及多层attention模块的一个模型能够比别的模型表现好出一大块,但是在compare attribute和count问题(包含大量object间relation的问题)上,这个模型都没有比最简单的baseline表现好多少,最简单的baseline被称作Q-type baseline,不知道是什么意思,是仅仅通过给定问题后,不同的答案分布概率来预测答案的模型。作者在使用CLEVR时有两个版本,一个是像素版本(pixel version),所有的图片都是以2D的像素形式表示的,另一个是state description版本,这个版本把每个图片表示成一个矩阵,矩阵每一行代表一个物体,每一行的元素都是这个物体的不同属性,例如坐标,颜色,尺寸等等。训练的时候根据实验的不同选择版本,不会同时使用两个版本。为了进一步强强调RN比其他的神经网络更能够学习一般性的relational reasoning,作者还弄了一个Sort-of-CLEVR数据集,这个数据集将relational question和non-relational question分开了。在这个数据集中,每一个图片都有一共6个物体,每个物体都有随机的形状(方形或者圆形),每一个物体都有单独的颜色以便六个物体能够区分开来,问题也都被hard-coded成为固定长度的二进制序列,消除了自然语言处理的困难(看作者的意图就是要对比一下relational question上是不是RN表现的更好,把一切阻碍都消除了)。每一个图片都有十个relational question和十个non-relational question,relational question的例子是“什么形状的物体距离灰色物体最远?”,non-relational question的例子是“灰色物体什么形状?”。

除此之外还有bAbI数据集,这个数据集是纯基于文本的数据集,有20个任务,每一个都对应一个特定的reasoning类型,比如推断,计算等等,每一个问题都要基于一些supporting facts来回答,例如Sandra picked up a ball和Sandra went to office两个supporting facts用来回答Where is the ball这个问题,那么就能得到答案office。在一个任务上准确率超过95%,就算通过这个任务,很多memory-augmented neural network都能有惊人的表现。

最后一个数据集是dynamicphysical systems,每一个样本描述的场景是一堆小球在桌面上,有的自己独立运动,可以发生碰撞,有的两两之间连接了弹簧或者硬棒。每一个场景用一个state descriptions matrices表示,每一个小球都用一行表示,每一行包含的特征是每个小球的RGB颜色值和连续16个时间点的空间位置。在这个数据集上,每一个system指的是一些相互有联系的小球组成的graph。任务又两种,一个是根据上述信息推测两个小球之间是否有连接,另一个是数出桌面上有几个system。

为了完成这些任务,光有最简单的RN是不行的,RN需要输入的是object,输入是像素的时候,就需要先通过CNN来进行物体识别,将像素转化成一组object。CNN以128×128的图片作为输入,输出是k feature maps,尺寸是d×d,之后所有的d×d×k个cell都用一个arbitrary coordinate标记(这个是什么意思,随机的一个标签?什么鬼)来标记这个cell的空间相对位置,并且每个cell作为一个object输入到RN中,这个object不一定是啥,可能是背景,可能是一个物理实体,也可能是一片纹理,物理实体的联结等等,这使得模型在学习的时候非常灵活。此外,object之间是否存在relation以及relation的含义是依赖于question的,例如,如果问题问的是large sphere,那么small cubes之间的relation就不重要了。因此作者调整了RN结构,使得能够根据question来决定如何进行数据的处理,即,这个q是question的embedding,是处理question单词的LSTM的最后一个输出的state。question的单词每一个都被分配了单独的整数,这个整数是用来查表的,在一个lookup table中找到对应的标号然后得到输入到LSTM中的embedding。在每一个时刻,LSTM根据英语编码的问题的语法接收一个单词的embedding作为输入。如果输入是state descriptions,那么可以直接进入RN,question还是和前面说的一样处理,用一个可学习的lookup table来为每一个单词提供embedding,question以这种方式通过LSTM,LSTM的最终状态final state和每一对object连接在一起(如下图)。看下面的图还能发现,最后所有object对得到的结果是按元素位置对应相加的,那意思应该就是说每一组object对和q组成的三元组输入到中之后,都会根据q判断一下这一组计算的数据是否有用,若是和q不相关的object对,那输出的数值应该就会很小或者没有,然后在element wise sum的时候就只把有用的加起来了。比如问小球之间颜色是否相同,本来只是判断两者颜色是否相等的,那么由于所有的object对之间计算了,那可能就不仅包含了小球的结果,也包含了大球的结果,甚至是圆柱体的结果,而考虑到q之后,就能只保留小球的结果。LSTM是用来将question的整句话用一个embedding来表示的,因此最后一个输出的状态就是分析了整句话之后输出的结果,也就是包含了这句话的所有有用的信息(理想状态下包含所有有用的信息)。

本文的模型很简单,对于这几个任务来讲,首先对于像素形式的CLEVR数据集,模型首先是4层24kernel的卷积层,用了ReLU,batch normalization,128 unit的LSTM作为处理question的,32unit的word lookup embedding,是用了ReLU的256unit的4层MLP,是三层的MLP,分别是256unit,50%dropout的256unit,和29unit,使用了ReLU非线性函数。最后一层网络是线性层,为softmax提供logits,softmax是施加在整个回答的词汇上的,softmax的输出用一个cross-entropy损失函数优化,用Adam optimizer,learning rate是0.00025,minibatch的尺寸是64,用了分布式训练,十个worker同时更新一个中心的参数服务器。

之后的部分都是展示实验结果的,如何提升了准确度之类的。

本文主要是提出了一个需要和别的深度学习模型相结合使用的模块RN,和别的模型相结合使用是因为RN需要输入的是一个个的object,而有很多数据都不是这种形式,例如图片需要用CNN来提取其中的object,question需要LSTM来embed。

猜你喜欢

转载自blog.csdn.net/b224618/article/details/81713445