关注深度学习自然语言处理公众号,每天给你送来NLP技术干货!


来自:Smarter

推荐一下我们的工作: ProTo: Program-Guided Transformer for Program-Guided Tasks(https://arxiv.org/abs/2110.00804)。点击链接可以看到arxiv论文。

我们的贡献有以下几个。

1. 提出了一个新的任务框架,Program-guided tasks,就是学习怎么执行程序来完成任务。

2.我们提出了基于transformer的ProTo模型,可以同时建模程序的语义信息和结构信息。

3.我们在视觉推理和策略学习两个广泛的领域内验证了我们提出的Proto模型的有效性。

下面按照QA的方式逐步介绍一下我们的论文。

什么是Program?

要理解什么是program-guided tasks,就必须先理解什么是program。wikipedia对program的解释是“为了达到某个目的,给计算机或其他机器使用的一系列指令“。这里与我们每天在写的程序做个比较。与我们程序员每天在用的程序相比,机器学习领域内程序也可以执行,也具有明确的可解释性。不过区别是,机器学习领域内研究的程序,不一定要借助给定的编译器(机器学习的理念就是万物都可学习),也不一定要做到图灵完备(只要为某些任务设计就行)。

Program有什么好处?为什么要研究program?

Program是图灵留给我们的一大利器,我们每天都在享受着程序带来的好处。在机器学习和人工智能中,程序有以下几个好处:1、区别于黑盒模型,程序具有很好的可解释性。2、程序可以作为很好的人与机器交互的工具,比自然语言更干净、更结构化。3、程序具有很好的泛化性能,在一个领域内适用的程序很可能可以迁移或者拓宽到其他领域。4、程序可以统一不同的模块,有机会组建成强大的跨界通用的智能体。

这些性质都是机器学习乃至人工智能领域很看重的,所以说这块的研究非常受重视。

什么是Program-guided Tasks?

这里就要讲到我们论文中提出的任务框架了,叫做program-guided tasks。这个任务的要求是给定一个程序+程序的输入(specification),要求得到预期的输出。换句话说,我们需要学习怎么去执行这个程序。注意区别于我们每天用的程序的写死的执行器(hard-coded),我们这个任务中的执行器是学习得到的。我们下面举两个具体的program-guided tasks的例子:

在左边的任务视觉推理中,我们的程序就是一个推理的流程,这张图中程序的含义就是“求女孩左边桌子上薯条是什么颜色“。这里程序的输入就是图片。任务的目标就是需要在这张图片下学习执行程序。

在右边的任务策略学习中,我们的程序就是一个执行策略的过程,这张图中程序的含义就是“在我的世界的游戏中,按照当前看到的条件去挖木头/建桥/挖矿“(这里的程序还包含分支语句if-else,这里就不详细描述了)。这里程序的输入就是当前观察到的地图。任务的目标就是按照程序去执行策略。

我们期望后续工作还能提出更多可以满足program-guided tasks框架的任务。

为什么要学习执行program?

可能很多小伙伴要问了,为什么需要学习怎么执行program呢,我们每天用的hard-coded的编译器不是很好吗?其实通过上面的例子可以看出,很多情况下非学习的程序是难以执行的(比如程序的输入是一个图片),并且非学习的程序是难以保证泛化能力的(比如面对数据集里没有出现的语句以及图片)。Neurips这种机器学习会议的专家非常看重机器学习能解决的任务。按照“万物皆可学习”的理念,学习执行程序是非常有意义的研究方向。

应该怎么解决program-guided tasks?

在论文里我们抛砖引玉,提出了基于transformer的ProTo模型(program-guided transformers)。proto的字典解释就是“第一个,原始的”,也就是说我们希望能有更多的模型提出,来解决program-guided tasks。

这里我们认识到,program同时具有语义和结构信息,所以一个很好的模型需要综合利用这两种信息

在上图左边,我们把程序的语义信息和结构信息分别进行编码,这里的语义信息就是用一个自然语言处理中的编码模块,结构信息就是表示程序的信息传递规则(比如执行完第一句跳转执行第三句,那么第一句跟第三句是连接的,我们的模型还可以并行执行不同的语句)。

上图的右边基本是基于transformer模型进行了简单修改,同时把语义信息、结构信息和程序输入送进transformer,并迭代更新结果矩阵。

为了适应分支结构和循环结构,我们还提出了指针更新的算法。这部分idea很简单,就是按照我们每天用的程序执行的方式去更新指针:遇到分支就根据条件判断进哪个分支,遇到循环就判断是否要进入循环以及是否完成。虽然idea简单,但是写起来比较麻烦,这里就不详细描述了,大家可以看论文中的算法块进行。

模型搭建好之后,怎么进行学习呢?我们提出了三种学习方式:全监督学习、部分监督学习、无监督学习。全监督学习比较简单,就是算一个预测和ground-truth之间的距离算loss。部分监督学习就是只有最后一步有真值,中间是没有真值的。无监督学习的情况适用于只知道程序是否执行正确,不知道正确的结果是什么。这里需要用到强化学习去完成。

实验结果如何?

由于我们是最先提出program-guided tasks的,我们对之前的方法进行了部分改编,适配到我们的任务进行比较。在两个领域(视觉推理和策略学习)中,都达到了SOTA的水平。

视觉推理任务结果

策略学习任务结果

审稿人评价如何?

在rebuttal之前,所有审稿人对我们的评价都给予了高度评价。下面展示四个审稿人的评价:

审稿人1: 应用很有趣,对Neurips社区非常有意思。

审稿人2: 这个方向是有意义的逐渐引起关注的方向。

审稿人3: 学习执行程序是非常重要的课题。

审稿人4: 结合两个领域CV+RL做程序执行的学习非常新颖。


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

整理不易,还望给个在看!

新的任务范式:Program-guided Tasks相关推荐

  1. 顶会速递 | ICLR 2020录用论文全集

    由深度学习三巨头Yoshua Bengio和Yann LeCun牵头创办的人工智能顶会ICLR今年最终收到2594篇投稿,共687篇论文被接收,其中48篇orals,108篇spotlights,53 ...

  2. ICLR2020国际会议焦点论文(Spotlight Paper)列表(内含论文源码)

    来源:AINLPer微信公众号(点击了解一下吧) 编辑: ShuYini 校稿: ShuYini 时间: 2020-02-21     2020年的ICLR会议将于今年的4月26日-4月30日在Mil ...

  3. 主题论文总结1:structured text summarization(持续更新ing...)

    诸神缄默不语-个人CSDN博文目录 最近更新时间:2022.6.4 最早更新时间:2022.5.16 文章目录 1. 对structured text summarization这一概念的定义 2. ...

  4. TNS-12518 Linux Error:32:Broken pipe

    最近一周,有一台ORACLE数据库服务器的监听服务在凌晨2点过几分的时间点突然崩溃,以前从没有出现过此类情况,但是最近一周出现了两次这种情况,检查时发现了如下一些信息: $ lsnrctl servi ...

  5. denied 虚拟机access_Windows 2008 R2 Administrator access denied解决办法

    近期测试vcenter5升级至5.1,在vmware ESXI虚拟机上安装Windows 2008 R2 STD SP1系统,安装完成后D盘可以正常读取和新建文件夹,安装vmware tools.加域 ...

  6. 【故障|监听】TNS-12518、TNS-00517和 Linux Error:32:Broken pipe

    [故障|监听]TNS-12518.TNS-00517和 Linux Error:32:Broken pipe 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱 ...

  7. 【故障•监听】TNS-12518、TNS-00517和 Linux Error:32:Broken pipe

    [故障•监听]TNS-12518.TNS-00517和 Linux Error:32:Broken pipe [故障|监听]TNS-12518.TNS-00517和 Linux Error:32:Br ...

  8. BP综述:自闭症中基于功能连接体的预测模型

    自闭症是一种异质性的神经发育疾病,基于功能磁共振成像的研究有助于推进我们对其对大脑网络活动影响的理解.我们回顾了使用功能连接和症状的测量的预测建模如何帮助揭示对这种情况的关键见解.我们讨论了不同的预测 ...

  9. 龙芯LS1C300B核心板设计

    龙芯LS1C300B核心板设计 硬件设计 核心板介绍 软件设计 硬件设计 ps.本核心板属于本人的研究生毕业设计的一部分. 核心板主要参考龙芯开源的智龙开发板进行设计,设计很简单.由于龙芯的LS1C3 ...

  10. 基于功能连接组的自闭症预测模型

    自闭症是一种异质性的神经发育状况,基于功能磁共振成像的研究已经有助于深化我们对大脑网络活动影响的理解.我们回顾了使用功能连接性和症状的预测建模如何帮助揭示这种病状的关键见解.我们讨论了不同的预测框架如 ...

最新文章

  1. 计算机基础教育德育教学,【家庭教育论文】计算机基础教学的德育教育(共2650字)...
  2. 终聚.net平台开发
  3. SAP的资产负债表、损益表的利润体现
  4. JDK11的新特性:HTTP API和reactive streams
  5. 利用RTL2832u电视棒芯片追踪民航飞机轨迹
  6. 看病要排队 (hdu1873,优先队列)
  7. Java进阶:SpringMVC中获取web.xml中的全局参数
  8. 电子科技大学《图论及其应用》复习总结--第五章 匹配与因子分解
  9. bbs论坛 Android客户端简单设计
  10. linux下mysql免安装_linux下免安装版本mysql5.5 配置
  11. 百度网盘不能下载文件,如何用迅雷下载(链接为网盘链接)
  12. 如何调用Sphinx 和api接口
  13. 王道考研——计算机组成原理(第一章 计算机系统概述)
  14. protoc did not exit cleanly. Review output for more information报错
  15. 发表论文被拒?只因你没注意这几点
  16. windows7经典开机音乐_糖豆人加入索尼克皮肤;三国群英传8上线Steam;疑似PS5开机音效...
  17. 关于云数据管理的复兴之路是怎样的?
  18. 微前端在小米 CRM 系统的实践
  19. java 绘制长方形_Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)...
  20. IUSR和IIS_IUSRS和区别

热门文章

  1. 2016年PMP项目管理知识体系精髓总结
  2. POJ-2762 Going from u to v or from v to u?
  3. 手动在viewpager的最后一页滑到第一页。
  4. 使用javascript生成的植物显示过程特效
  5. UVa10047 BFS
  6. 关于pycharm安装出现的interpreter field is empty,无法创建项目存储位置
  7. 第11章 连接查询和分组查询
  8. ZOJ Monthly, March 2018
  9. 修改使用phpstorm创建的模板的默认注释
  10. Objective-C学习准备__C语言6