DeepMind提出了一种编程方法,可从噪声数据中学习解释规则
2018年01月31日 由 yining 发表
292412
0
DeepMind在近期的一篇论文中,提出了可微分归纳逻辑编程方法∂ILP,这种方法能解决符号类任务,也对噪声数据、训练集中的误差有一定容忍度,还可以通过梯度下降来训练。
以下是论文中部分内容。
假设你在踢足球。球到达你的脚下,你决定将球传给一位无人盯防的前锋。这样一个简单的动作需要两种不同的思考方式。
首先,你承认你的脚上有足球。这种认识需要直观的感知思维——你不能轻易地说出你是怎么知道你脚下有一个球,你只是看到它就在你的脚下。第二,你决定把球传给一个特定的前锋。这个决定需要概念上的思考。你的决定与一个合理的理由有关——你把球传给前锋的原因是他没有被人盯防。
这种区别对我们来说很有趣,因为这两种思维方式对应于机器学习的两种不同的方法:深度学习(deep learning)和符号程序综合(symbolic program synthesis)。深度学习专注于直观的感性思维,而符号程序综合则侧重于概念上的、基于规则的思维。
每个系统都有不同的优点——深度学习系统对于噪声数据来说是具有鲁棒性(robust)的,但是很难解释并且需要大量的数据来训练,而象征性的系统则更容易解释,并且需要较少的训练数据,但却要与噪声数据作斗争。虽然人类的认知可以无缝地结合这两种不同的思维方式,但在单一的人工智能系统中是否能够复制这种方式则不太清楚。
这有一篇论文,证明了系统可以将直观的感知和概念的解释推理结合起来。文章中所描述的∂ILP系统对噪声、数据效率和产生可解释的规则来说都是很具有鲁棒性的。
我们演示了∂ILP是如何与一个归纳(induction)任务一起工作的。它被给出一对表示数字的图像,并且必须输出一个标签(0或1)表示左边图像的数量是否小于右边图像的数量。解决这个问题需要两种思维方式:你需要直观的感知思维来识别图像作为一个特定的数字的表示,你需要概念思维来理解它的完整的通用性(generality)。
一个归纳任务的例子
如果你给出一个标准的深度学习模型(例如一个带有多层感知器的卷积神经网络),那么它就能学会如何有效地解决这个问题。一旦它被训练了,你就可以让它尝试一对从未见过的新的图像,并且它会将这对图像正确地分类。然而,它只会在你给出了每一对数字的多个例子时才能正确地归纳。这个模型很好地进行了可视化的概括:假设它已经在测试集中看到了每一对数字(参见下面的绿色框),将其归纳为新的图像。但它不具有象征性的归纳:将其归纳为一种以前从未见过的新数字(见下面的蓝色框)。一些研究人员最近在《深度学习:批判性评估》这篇文章中指出了这一点。
《深度学习:批判性评估》阅读地址:
https://arxiv.org/abs/1801.00631
∂ILP不同于标准的神经网络,因为它能够对符号进行泛化,它与标准的符号程序不同,因为它能够在视觉上进行泛化。它从可读、可解释和可验证的示例中学习显式的程序。∂ILP给出了部分示例(也就是预期的结果,desired results),并生成一个能够满足它们要求的程序。∂ILP在使用梯度下降的程序的空间中搜索。如果程序的输出与引用数据所预期的输出发生冲突,系统将修改程序以更好地匹配数据。
这张图演示了∂ILP训练循环
我们的系统,∂ILP,能够对符号进行泛化。一旦它看到了x < y, y < z, x < z 这样的例子,它就会考虑到这种“小于”的传递关系的可能性。一旦它实现了这一基本规则,它就可以将它应用到它以前从未见过的新数字上。
标准的深度神经网络(蓝色曲线)不能正确地对不可见的数字对进行泛化。相比之下,∂ILP(绿线)仍然能够达到一个低的测试错误,前提是当它能只看到40%的数字;这表明它有能力进行符号性的泛化。
我们相信,我们的系统在某种程度上回答了这样一个问题:在深度神经网络中实现符号性的泛化是否可行。在未来的工作中,我们计划将类似于∂ILP的系统集成到强化学习agent和更大的深度学习模块中。在此过程中,我们希望将我们的系统赋予理性和反应的能力。
本文的详细内容:
http://www.jair.org/media/5714/live-5714-10391-jair.pdf