训练完成后,我们得到的也不是一个单独的深度网络,而是一组神经模块,每个模块包含推理之中的一个环节。当我们想用训练好的模型来处理一类新问题时,可以动态组合这些模块,以生成针对该问题的新网络结构。 这种方法有一个显著的优点,就是单个模块不需要低级别的监督学习: 我们不会用“蓝色对象”或者“在左边”这种关系来逐个训练神经模块,而是让它们在组合结构中,通过问题-答案这种成对数据来进行有监督学习。但是,这个神经网络能够在训练中自动推断出各个模块负责的运算,以及模块间的关系。如下图所示:
△神经网络在处理“蓝色圆柱和红色金属物体右侧的大积木材料一样吗?”这个问题时,自动推断出各个模块负责的运算。 在根据更真实的图片、甚至数据库等信息来源回答问题时,这个模型也同样可行:
这整个过程的关键在与一组像上面那样的高级别“推理蓝图”,根据这些蓝图,我们可以确定每个问题的分析网络应如何布局,以及如何将不同的问题联系起来。 我们应该怎么构建这些蓝图? 在对这类模型的早期研究中(相关文献1、2),我们发现,设计特定问题的神经网络与分析语法结构这两者之间,具有极大的相似性。长期以来,语言学家认为,问题的语法与回答时需要的计算过程顺序密切相关。根据自然语言处理方面的最新进展,我们可以使用现成的语法分析工具来自动提取出这些蓝图的近似版本。 但是,构建从语言结构到网络结构的准确映射,仍是一个具有挑战性的问题,转换过程中容易出错。 在后来的工作中,我们不再依靠这种语言分析方法,改用由人类专家直接标注了理想化推理蓝图的一系列问题(相关文献3)。模型通过学习模仿这些专家,大大提高了预测质量。最令人惊讶的是,当允许这些模仿训练好的模型来修改专家的预测数据时,这些模型能找到比专家更好的解决方案。 尽管近年来深度学习方法取得了显著成果,但是许多问题,如小样本学习和复杂推理等方面,仍然存在一定的挑战。不过,语义解析和程序归纳等结构化的传统方法正适合解决这类问题。 利用好神经模块网络的离散组合灵活性和数据效率,再结合深层网络的理解能力,这种方法为解决上述问题提供了一个很好的思路。NMN在很多视觉和文本推理任务中已经取得很好的效果,我们还会继续研究用NMN来解决其他人工智能问题。 相关文献 1. Neural Module Networks. Jacob Andreas, Marcus Rohrbach, Trevor Darrell and Dan Klein. CVPR 2016. https://arxiv.org/abs/1511.02799 2. Learning to Compose Neural Networks for Question Answering. Jacob Andreas, Marcus Rohrbach, Trevor Darrell and Dan Klein. NAACL 2016. https://arxiv.org/abs/1601.01705 3. Modeling Relationships in Referential Expressions with Compositional Modular Networks.Ronghang Hu, Marcus Rohrbach, Jacob Andreas, Trevor Darrell and Kate Saenko. CVPR 2017. https://arxiv.org/abs/1611.09978 【完】 一则通知 量子位正在组建自动驾驶技术群,面向研究自动驾驶相关领域的在校学生或一线工程师。李开复、王咏刚、王乃岩、王弢等大牛都在群里。欢迎大家加量子位微信(qbitbot),备注“自动驾驶”申请加入哈~ 招聘 量子位正在招募编辑记者、运营、产品等岗位,工作地点在北京中关村。相关细节,请在公众号对话界面,回复:“招聘”。 追踪人工智能领域最劲内容 (责任编辑:本港台直播) |