0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DeepMind提出了可微分归纳逻辑编程方法∂ILP并进行解读

MqC7_CAAI_1981 来源:互联网 作者:佚名 2018-01-31 08:58 次阅读

神经网络的强大功能有目共睹,但它往往需要大量与目标测试领域数据分布相似的训练数据;而用于符号领域的归纳逻辑编程只需少量数据,却无法对抗噪声,适用领域也很狭窄。

DeepMind在最近发表的一篇论文中,提出了可微分归纳逻辑编程方法∂ILP,既能解决传统归纳逻辑编程擅长的符号类任务,也对噪声数据、训练集中的误差有一定容忍度,还可以通过梯度下降来训练。

怎么样?我们来看看DeepMind在官方博客上对这种方法的解读:

想象一下踢足球的场景,球到了你脚下,你决定把它传给没人盯防的前锋。这个看似简单的行为,需要两种不同的思维。

首先,你认识到自己脚下有一个球,这需要的是直观的感性思维——你没办法简单地描述出你是怎么知道脚下有个球的。

其次,你决定把球传给特定的一个前锋。这个决策需要概念性思维,你的决定依赖于理由——你把球传给这个前锋的原因,是没有人盯防她。

这种区别对我们来说很有意思,因为这两类思维对应着两种不同的机器学习方法:深度学习和符号程序合成(symbolic program synthesis)。

深度学习专注于直观的感性思维,而符号程序合成专注于概念性的、基于规则的思考。这两个系统各有各的优点,深度学习系统能适用于噪声数据,但难以解释,而且需要大量训练数据;符号系统更易于解释,需要的训练数据也更少,但一遇到噪声数据就不行了。

人类认知将这两种截然不同的思维方式无缝结合在了一起,但想要把这种结合复制到一个AI系统里,我们还不太清楚是否可能、如何做到。

我们最近在《JAIR》期刊(Journal of AI Research)上发表的论文表明,系统可以将直观的感性思维和概念性的可解释推理结合起来。我们所描述的∂ILP(可微分归纳逻辑编程,Differentiable Inductive Logic Programming)系统具有下列特性:抗噪声、数据上很经济、能产生可解释的规则。

DeepMind提出了可微分归纳逻辑编程方法∂ILP并进行解读

我们用一个归纳任务来演示∂ILP的工作原理

已知一对表示数字的图片,系统需要根据左侧图像数字是否小于右侧图像的数字,输出0或1的标签,如下图所示:

DeepMind提出了可微分归纳逻辑编程方法∂ILP并进行解读

解决这个问题涉及两种思维方式。从图像中认出数字,需要直观的感性思维;要整体理解“小于”关系,则需要概念性的思考。

其实,如果给标准的深度学习模型(例如带有MLP的卷积神经网络)提供足够的训练数据,它能学会有效地解决这个问题,训练完成后给它一对从未见过的新图像,它也可以正确分类。

但实际上,只有每对数字你都给它多个样例,它才能正确地泛化。这个模型擅长视觉上的泛化,比如说测试集中的每一对数字它都见过了,要泛化到新的图像,就很容易(见下图绿色方块)。但它不适用于符号的泛化,比如说它就不能泛化到从未见过的数字(见下图蓝色方块)。

DeepMind提出了可微分归纳逻辑编程方法∂ILP并进行解读

马库斯(Gary Marcus)、Joel Grus等研究者最近都撰文指出了这一点。

不同于标准的神经网络,∂ILP能够进行符号的泛化;它和标准的符号程序也不一样,可以进行视觉上的泛化。∂ILP从样例中学习可读、可解释、可验证的,明确的程序。已知部分样例(也就是预期的结果,下图中的desired results),∂ILP能生成一个满足需求的程序。它用梯度下降从程序空间中搜索,如果程序的输出与参考数据需要的输出相冲突,系统就会修改程序以更好地匹配数据。

∂ILP的训练过程如下图所示:

DeepMind提出了可微分归纳逻辑编程方法∂ILP并进行解读

∂ILP能进行符号性的泛化,给它足够多x

DeepMind提出了可微分归纳逻辑编程方法∂ILP并进行解读

上图总结了我们的“小于”实验:蓝色曲线表示标准的深度神经网络,无法正确泛化到从未见过的数字对,相比之下,在只用40%数字对训练过的情况下,绿色曲线表示的∂ILP依然能保持较低的测试误差。这表明,∂ILP能够进行符号性的泛化。

我们相信,对于深度神经网络中是否能够实现符号泛化这个问题,我们的系统能够在某种程度上给予答案。今后,我们计划将类似∂ILP的系统集成到强化学习智能体以及更大的深度学习模块中,赋予系统推理、反应的能力。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4733

    浏览量

    100410
  • 机器学习
    +关注

    关注

    66

    文章

    8347

    浏览量

    132294
  • 深度学习
    +关注

    关注

    73

    文章

    5463

    浏览量

    120876

原文标题:DeepMind提出可微分逻辑编程,结合深度学习与符号程序优点

文章出处:【微信号:CAAI-1981,微信公众号:中国人工智能学会】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    诞生AlphaGo的DeepMind回顾2016年,提出三大发展方向

    谷歌旗下DeepMind团队本周在官方网站上撰文,回顾了2016年所取得的进展。展望2017年,DeepMind提出了三大发展方向,包括算法突破、社会影响,以及道德伦理的最佳行为。
    发表于 01-04 14:53 1771次阅读

    基于BIST利用ORCA结构测试FPGA逻辑单元的方法

    利用FPGA重复编程的特性,通过脱机配置,建立BIST逻辑,即使由于线路被操作系统的重新配置而令BIST结构消失,测性也实现。本文给出
    的头像 发表于 11-28 09:02 4382次阅读
    基于BIST利用ORCA结构测试FPGA<b class='flag-5'>逻辑</b>单元的<b class='flag-5'>方法</b>

    未来的AI 深挖谷歌 DeepMind 和它背后的技术

    险投资公司、维港投资(Horizons Ventures)和Founders Fund获得的额外资本。DeepMind的创始人向这些实体进行了可靠的介绍,这就是他们获得资金的原因。如果你也有一个创新而有前途
    发表于 08-26 12:04

    PLC的应用大致归纳为哪几类?

    PLC的应用大致归纳为哪几类?PLC控制系统与继电器控制系统的区别在哪?
    发表于 07-05 06:44

    基于位串编码的遗传归纳逻辑程序设计

    归纳逻辑程序设计是基于一阶逻辑的数据挖掘新方法。一阶规则挖掘是目标谓词和背景知识谓词对应的各种原子的复杂组合优化问题。该文根据Occam’s razor原理提出原子的位串编码
    发表于 03-31 09:48 11次下载

    基于单片机的复杂可编程逻辑器件快速配置方法

    基于单片机的复杂可编程逻辑器件快速配置方法 基于SRAM(静态随机存储器)的重配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路
    发表于 03-28 16:47 844次阅读
    基于单片机的复杂可<b class='flag-5'>编程逻辑</b>器件快速配置<b class='flag-5'>方法</b>

    逻辑层网络拓扑发现方法研究

    分析了传统基于简单网管协议的网络拓扑发现方法和不足,提出了逻辑层网络拓扑发现方法研究
    发表于 05-26 16:16 29次下载
    <b class='flag-5'>逻辑</b>层网络拓扑发现<b class='flag-5'>方法</b>研究

    在Multisim环境中Xilinx逻辑器件进行编程及步骤

    的Xilinx逻辑器件进行编程。这将使得理论概念与硬件实现之间的关系从未变得如此简单。 Multisim环境中的可编程逻辑设备 在Multi
    发表于 11-18 06:27 3719次阅读

    利用嵌入式处理器对可编程逻辑器件进行编程

    在嵌入式系统里除了嵌入式处理器外还会经常使用到可编程逻辑器件,有些可编程逻辑器件在被焊接到印制电路板上之后还可以对其程序进行更新,这种特性称之为“在系统
    发表于 01-26 09:29 1408次阅读
    利用嵌入式处理器对可<b class='flag-5'>编程逻辑</b>器件<b class='flag-5'>进行</b>重<b class='flag-5'>编程</b>

    超全使用串口对DSP进行应用可编程方法

    本文介绍了一种通过串口对DSP进行应用可编程方法,该方法简单易操作,文中给出了具体的实现方法
    的头像 发表于 04-02 16:13 3166次阅读

    基于可编程逻辑的SDRAM控制方法设计

    基于可编程逻辑的SDRAM控制方法设计
    发表于 06-30 10:16 8次下载

    创建小型组合与时序逻辑电路的PLU可编程逻辑单元

      在进行MCU开发时,有时需要用到一些简单的数字逻辑电路,LPC804与LPC55XX系列集成了PLU(Programmable Logic Unit),即可编程逻辑单元,
    的头像 发表于 12-01 09:17 1487次阅读

    张钹院士: 迈向第三代人工智能

    符号 AI 同样可以应用于机器学习,把「机器学习」看成是基于知识的(归纳)推理。下面以归纳逻辑编程(inductivelogicprogramming,
    的头像 发表于 07-11 15:34 1403次阅读
    张钹院士: 迈向第三代人工智能

    什么叫可编程逻辑器件 可编程逻辑器件有哪些特征和优势?

    编程逻辑器件(Programmable Logic Device,PLD)是一类集成电路器件,可以根据用户的需求进行编程和配置,以实现特定的逻辑功能。它们具有可
    发表于 09-14 15:25 2565次阅读

    谷歌提出大规模ICL方法

    谷歌DeepMind团队近日取得了一项突破性的研究成果。他们提出了强化和无监督两种新型的ICL(In-Context Learning)学习方法,这一创新技术能够在多个领域显著提升模型的性能。
    的头像 发表于 05-14 14:17 312次阅读