周末漫谈 | 如何评价 DeepMind 新提出的关系网络(Relation Network)?

百家 作者:AI100 2017-06-17 11:19:51

本周话题

过去两周,Google旗下的DeepMind颇为引人瞩目,开发出了适用于关系推理的人工神经网络,从而让机器具备推理、理解不同物体之间错综复杂关系的能力。


如果机器能像人一样思考,那么将是AI领域一个显著的进步,进而缩小人和机器在思考方面的差距。


那么对于DeepMind 新提出的关系网络(Relation Network),你是怎么看的呢?


以下内容来源于知乎上大牛对于该问题的回答


知乎用户:周博磊

(https://www.zhihu.com/people/zhou-bo-lei/answers)


先从Visual Reasoning说起。Visual reasoning是个非常重要的问题,由于ResNet等大杀器出现,visual recognition任务本身快要被解决,所以计算机视觉的研究方向逐渐往认知过程的更上游走,即逻辑推理。


于是出现了去年比较火的Visual question answering(VQA):给张图,你可以问任意问题,人工智能系统都需要给出正确答案。这是我之前做的一个简单的VQA demo (Demo for Visual Question Answering)。VQA任务的典型数据库是COCO-VQA(Introducing the 2nd VQA Challenge!),今年出了第二代。大家做了半天,各种lstm, attention-based model, stacked LSTM等等,发现其实跟BOW+IMG的baseline差不了太多;VQA还是被当成个分类问题,离真正人类级别的reasoning还很远。这里大家逐渐意识到了两个问题,


  • 第一个是网络本身的问题,即现有的卷积网络并不能很好的表达因果推断;

  • 第二个问题是,直接在自然图片上进行问答系统的研究太难了,很难debug整个系统,于是有了下面两个解决方向:


针对第一个问题研究者开始在网络设计中explicitly加入reasoning or memory module. 比如说,去年有篇比较有意思的CVPR'16论文,Neural Module Networks(https://arxiv.org/pdf/1511.02799.pdf) , 很好地提出了一个可以让网络进行compositional reasoning的模块,概念挺漂亮。可惜的是调参能力一般,performance离我那个iBOWIMG的baseline也差得不远(参见https://arxiv.org/pdf/1512.02167.pdf)。



另外,我觉得这篇论文也有一稿多投的嫌疑,因为这几乎一模一样的模型在作者另外一篇Learning to compose neural networks for question answering (https://arxiv.org/pdf/1601.01705.pdf)拿了NAACL'16的best paper 。作者Jacob我也认识,我就不多吐槽了,还好他不会看中文。


针对第二个问题,研究者开始通过graphics合成图片的办法来建立绝对可控的VQA数据库,这样就可以更好的分析模型的行为。Facebook AI Research几个研究者(Larry Zitnick和Ross Girshick)带着Feifei的学生Justin Johnson实习去年暑假搞了个合成的VQA数据库CLEVR(CLEVR: A Diagnostic Dataset for Compositional Language and Elementary Visual Reasoning)。


CLEVR有100,000图片,~1,000,000个问题答案对。里面的每张图片都是通过Blender渲染生成,里面的物体基本属性是three object shapes (cube, sphere, cylinder), two absolute sizes (small and large), two materials (shiny, matte), four relationships (left, right, behind, in front)。然后问题也是通过从90个问题模板里面采样生成。 通过各种组合可以生成海量而且可控的问题答案,如下图所示。然后在这篇论文中,作者测试了一些VQA常用的baselines, BOW+IMG, LSTM啥的,表现都一般。


那个暑假正好我也在FAIR实习,跟Larry和田总@田渊栋一起做项目。Larry是非常喜欢这种Neural module network和programming sytax的路子。跟Justin和Ross以及组里其他成员去Lake Tahoe那边hiking的时候也聊起了这个数据库,他们说你那个simple baseline for visual question answering在这个数据库上不管用了啊=,=!。另外,八卦下,Justin是Stanford的跳水运动员,Ross是户外运动达人,所以整个hiking过程中我费了牛劲,也再没见过这两位,望其项背而不得=,=!




后来,这篇CLEVR数据库的论文被CVPR'17收了。然后,同一堆作者再马不停蹄再交了篇ICCV'17 submission: Inferring and executing programs for visual reasoning  (https://arxiv.org/pdf/1705.03633.pdf)。这篇论文也搞了个compositional model for visual question answering的模型。模型有两个模块program generator, execution engine,第一个模块来预测问题里面的program, 第二个模块来执行这些预测出来的program, 然后进一步预测答案。这两个模块还是蛮新颖的,打破了以前做VQA就用CNN叠LSTM的简单粗暴套路。


这模型受之前那个Neural Module Network也影响挺大,也更符合CLEVR本身数据的生成过程。结合CLEVR本身的生成program, 这两个模块其实是可以分开进行训练。



在Table 1里面(如下图所示),作者测试了两种办法, Ours-strong是把CLEVR数据库本身的700K的生成program全部拿来训练(注:这篇论文的作者本来就是CLEVR的作者),然后可以得到牛逼的96.9%, 已经秒杀人类的92.6%准确度。然后Ours-semi方法,用更少量的18K和9K的program进行训练,也可以得到95.4%和88.6%的准确度。



这个训练过程其实蛮tricky。训练过程给的除了question-answer pair, 还给了生成CLEVR数据库本身的program, 这跟其他方法比较就不是这么fair了。另外,我觉得这个训练过程,其实是在训练一个新的网络reverse-engineer之前CLEVR数据库本身的生成程序。并且,这个reverse-engineering的复杂度挺低,用9k program训练就可以达到88.6%就是个证明。换句话说,对于这种自动生成的数据库,用好了方法和模块结构,也许挺容易刷到高分。这就为接下来的Visual Relation Network埋下了伏笔。


说了这么大堆东西,终于轮到DeepMind的Visual Relation Network module (https://arxiv.org/pdf/1706.01427.pdf)登场了。模型如下图所示,

如标题所示,模型结构确实很简单:LSTM编码question, 然后跟两两配对的spatial cell的deep feature叠加,然后后面接一些FC layers最后softmax分类到某个答案词上面。总结起来就是这个非常简单的两两配对的learnable module:



这样简单的模型,在CLEVR上达到了"惊人"的95.5%,比之前最好的CNN+LSTM+SA还要好差不多20%。这里作者并没有比较前面那篇ICCV submission里的96.9%,这是为什么了,作者解释说“ ...(ICCV method) uses additional supervisory signals on the functional programs used to generate the CLEVR questions" 。这种说法的确没任何问题,但这却能帮我们更好的理解模型。


这篇论文并没有给出任何解释模型为什么work, 以及内部到底学到了些什么东西(这是我自己很关注的一个问题)。我自己觉得这个relational module其实是implicitly学到了"the functional programs used to generate the CLEVR questions",也就是说,训练过后这个module可以很完美地reverse engineer那个CLEVR数据本身的生成过程。


如果我是这篇论文的reviewer, 我会要求作者对模型进行可视化分析,可能里面的一些hidden units就是在做visual relation detection。


Relational module种explicitly表达两两物体关系的做法,跟之前DeepMind的那篇Spatial Transformer (https://arxiv.org/pdf/1506.02025.pdf)也有共通之处:CNN网络本身并不能很好地表达某些变换或者关系,所以需要一些特定的learnable的module结构来帮助表达和学习。可以预见这个relational module可以在很多结构化数据,如graph learning, structure learning等结构化数据上派上大用场。


论文中也把模型在其他两个数据库任务bAbI model for language understanding(这个数据库其实早就被刷到100%了)和dynamic physical system reasonsing进行了测试,都取得了不错的效果。但是,这个module是真正解决了relationship detection的问题,还是仅仅只是利用short-cut来overfit数据库,还得等到人们在其他场合,如visual relationship detection(Visual Relationship Detection with Language Priors-http://cs.stanford.edu/people/ranjaykrishna/vrd/)等测试其有效性。


我自己是非常喜欢这样针对问题本身的关系进行建模,并且简洁有效的网络结构。再回头看看FAIR那篇ICCV submission, 是不是有种杀鸡用牛刀的感觉:)最近这一系列研究visual reasoning的论文都非常优秀,在引领着AI研究的时代潮流。大浪淘沙,最后能留下什么,咱们等着瞧呗。


---------------


另外,我再说说human performance。“ 超过啥啥human performance”,是好多公众号特别喜欢的搞大新闻的词汇。human performance其实很难公平测量,从ImageNet的human performance到这个数据库,一直如此。CLEVR这种自动生成出来的问题,真是如饶舌,人类受试者能答对到92.6%我都觉得挺了不起了,我随便列两个:



知乎用户:田渊栋

(https://www.zhihu.com/people/tian-yuan-dong/answers)


VQA这个方向一直以来都有惊喜,一开始大家想要模拟人脑分析问题的方式,加多阶段处理,加注意力机制,折腾拼凑出各种复杂模型;然后发现一个简单模型效果惊人的好,然后大家在这基础上再折腾复杂模型,又发现一个简单的模型更好,如此往复。目前看起来这篇是第三次了。


第一次是@周博磊的这篇Simple Baseline for Visual Question Answering(这篇我有署名,不过其实都是博磊做的),用一个简单到不能再简单的BoW+IMG模型,在VQA数据集上达到甚至超过了当时很多复杂模型的结果。


第二次是我们纽约分部做的Revisiting Visual Question Answering Baselines又用一个简单模型(BoW+IMG+Answer encoding加两层全连接网络),再次把当时的各种复杂方法打趴下,特别是在Visual7W上把当时VQA的最好模型(Multimodal Compact Bilinear Pooling)一把干掉。


当时大家一致认为收集得到的数据集的偏差(bias)是最大元凶,所以才有了CLEVR这个人工生成的数据集,以期消去偏差。总想这样应该没什么问题可以好好在上面做点长期研究,结果嘛大家都看到了……


有人说这篇文章是照着CLEVR的特性去设计模型,有这样的结果不稀奇。这个不假,但是像ConvNet也是照着视觉的特性去设计连接方式,并达到了以前Vision Community做了很多年都达不到的效果。所以我觉得,可能这样的思路是很有意思的,与其把人类的分析过程一点一点强加给神经网络,不如给它适当的结构约束后让它在数据集上自由发挥,它能做的事情可能超乎你的想像。



知乎用户:甄景贤

(https://www.zhihu.com/people/zhen-jing-xian/answers)


看似很基本 (rudimentary),但我们要急起直追,否则会太落后。


可以将 entity-relation graph 分拆成很多逻辑命题,每个 node-link-node = 1 个命题。


但这也有问题,例如:

  • 「猫1 追 猫2」

  • 「猫1 是 邻家的猫」

  • 「猫2 是 野猫」


我们怎知道 猫1 和 猫2 是 distinct 的?  这些是很久以前,经典 AI 时期已经讨论过,老掉牙的的 KR (knowledge representation) 问题。


有若干解决方法,当然我们希望选择最 elegant 那种。


现在 deep learning 带来前所未有的优势是: 我们不再需要设计那种经典 AI 中有 "label" 的那些资料结构,例如 "is-a" link 这东西。 换句话说,现在是「后结构主义」时代 —— 结构是用抽象的方式定义,不需要人类过多的 annotations。 我们 AI 设计者给出抽象的结构框架,然后细节由机器 learn 出来。


Deep network 输入 vector,输出 vector,它不能直接作用在一个 graph 上面,尤其是当这 graph 不断在改变,增加或减少 nodes and links。 我现在思考的是可不可以利用 superposition 原理,将很多命题 vectors 叠加在一起,於是整个 graph 变成一支 vector。   但我暂时不敢说这个方案可行,或者是不是比其他做法优胜。


个人认为 transfer learning 並不是重点,因为更重要的是所谓 "learn from instructions",例如说「不要吃污糟的食物,会肚子痛」,又或者「不听老人言,吃亏在眼前」等。  我们用 NN act on vector,但有时这 vector 本身即代表一个 actionable 的 rule,换句话说,这 vector 本身就是 NN 的一部分,它应该直接「被纳入」NN 里面,而不是 NN act on 它。 换句话说,将语言的 raw data 直接转换成 NN 中的知识。  暂时我仍未能解决这问题。


原贴地址

https://www.zhihu.com/question/60784169




招聘


AI100现招聘技术编辑、实习生,有意向请将简历投往:puge@ai100.ai

咨询请联系微信greta1314

课程结合实例介绍使用TensorFlow开发机器学习应用的详细方法和步骤,着重讲解了用于图像识别的卷积神经网络和用于自然语言处理的循环神经网络的理论知识及其TensorFlow实现方法,并结合实际场景和例子描述了深度学习技术的应用范围与效果。 所有案例均来自讲师团队工作中的亲身实践,所选案例均是深度学习的经典应用,非常具有代表性。


  点击下方“阅读原文”查看更多内容。

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接