学界 | 强化学习+树搜索:一种新型程序合成方法

来源:机器之心时间:2018-06-25 16:00:45

原标题:学界 | 强化学习+树搜索:一种新型程序合成方法


选自arXiv

作者:Riley Simmons-Edler、Anders Miltner、Sebastian Seung

机器之心编译

参与:Panda


程序合成一直都是计算机科学领域内一大重要研究方向。近日,普林斯顿大学的研究者提出了一种结合强化学习与树搜索实现程序合成的方法,为程序合成开启了一个新研究方向。这项研究目前仍在继续进行,机器之心对该研究的预印本论文进行了摘要编译。



在编程语言和机器学习领域,程序合成方面的研究都已经出现了复兴,该任务要做的是根据用户提供的规格(specification)自动生成计算机代码。由于计算能力的增长和深度神经网络的兴起,这个曾经无力解决的问题现在已经可以攻克了,并且也已经在很多领域得到了使用 [1],其中包括通过自动执行例程任务来提高程序员的效率 [2]、为没有编程知识的非专家人员提供直观的界面 [3]、为性能很关键的代码减少漏洞和提升运行效率 [4]。

在编程语言(PL)领域,程序合成通常使用枚举搜索来解决——通过简单直接地枚举候选项直到找到满足条件的程序来寻找满足给定规格的合适程序 [5,6,7]。通过将演绎组件集成进搜索过程来收窄搜索空间 [8,9,10],或通过将相关语言修改成具有更窄搜索空间的同等语言并在该空间中搜索 [11,12,13],这种方法可以得到解决。另一种常用方法是将合成任务约简成通过 SAT 求解器寻找一个满足条件的布尔公式配置 [14,15],但这只是将枚举搜索放进了求解器进行处理。

机器学习(ML)领域的研究者则在从另一个方向解决这个问题——不是单纯地全面搜索一个有限定的空间,而是使用一个学习了规格到程序的映射方式的模型,通过智能地搜索或采样搜索空间,从而在更大的搜索空间中有效地找到正确的程序。这些方法大都使用了监督学习方法——在一个大型的输入/输出样本和对应满足规格的程序的合成数据集上训练,然后给定一个相应的输入/输出示例集合 [16,17,18,19,20],使用基于循环神经网络(RNN)的模型依次输出目标程序的每一行。从概念上看,这种方法应该能与编程语言技术很好地结合起来——在小型搜索空间中进行智能搜索比在大型搜索空间中进行智能搜索要容易得多。那么,为什么这些技术通常没有一起使用呢?

机器学习领域内的大部分已有工作都严重依赖于被合成的领域特定语言(DSL)的结构来实现优良的表现,而且也不能轻松地泛化到新语言上。这些方法通常需要语言特征,比如语言的全可微分性 [19,20] 或规格和满足规格的程序对构成的大型训练集 [16,17,18]。这些要求使其难以将已有的基于机器学习的方法与编程语言社区开发的技术结合起来,它们在使用一种 DSL 进行有效合成时所需要的性质差异非常大。此外,大多数已有方法都主要注重以「一步式」的方式求解出程序,要么通过单次或少数几次尝试成功输出满足给定规格的程序,要么就无法得到这样的结果;随着程序空间变大,这种方法的扩展能力会变得更糟。相比之下,当基于搜索的方法枚举所有程序时,它们最终能解决任何合成任务,但所需的时间可能会超出可行范围。

强化学习引导的树搜索

我们的方法是强化学习引导的树搜索(RLGTS:reinforcement learning guided tree search),如图 1 所示。该方法旨在将基于搜索的方法和基于机器学习的方法的优势结合起来,并且让来自这两个研究领域的技术结合起来进一步提升效果。我们提出了一种程序合成新方法:将合成程序的过程表示成一个马尔可夫决策过程(MDP)[21] 并使用强化学习(RL)来学习求解程序,仅需给定该程序的一组输入/输出示例、一个语言规格和一个用于衡量给定程序的质量的奖励函数。在我们的基于强化学习的方法中,我们将程序状态和当前的部分程序看作是环境,并将该语言的代码行看作是寻求实现奖励函数最大化的动作。更进一步,我们还将我们的强化学习模型与一种基于树的搜索技术结合到了一起,这能极大提升该方法的表现。这种组合有助于解决很多强化学习应用中都会出现的局部极小值和高效采样的问题。

 

图 1:我们提出的系统的示意图。我们的程序合成方法将该问题看作是一个可用强化学习解决的马尔可夫决策过程,并且将其与一种优先搜索树组合起来通过避免局部极小值来加速求解过程,这能提升在固定数量的尝试次数内求解的程序的数量。给定一个输入记忆状态和对应的输出记忆状态集合,这种方法能使用一个为部分正确的解定义的奖励函数来引导学习过程,从而学习到一个策略——该策略能输出可将每个输入样本映射到对应的输出样本的代码行序列。

RLGTS 不依赖给定语言的训练数据的可用性,并且不对语言的结构做任何假设——只要求该语言允许执行和评估不完整的部分程序。此外,我们的基于强化学习的方法可以轻松且自然地与其它程序合成方法结合起来,这让用户可以受益于某些领域在基于搜索的合成上的大量研究成果。

总体而言,我们有以下贡献:

我们引入了强化学习引导的树搜索(RLGTS),这是一种将程序生成作为强化学习任务处理的程序合成方法。

我们描述了 RLGTS 在 RISC-V 汇编语言的一个子集上的实现,并且通过结合一个基于 Q 网络的策略与简单的树搜索方法为该任务创建了一个强化学习智能体。

研究表明,在随机程序构成的一个合成数据集上,相比于仅使用强化学习和仅使用枚举搜索的基准方法,我们的方法可求解的程序的比例分别提升了 100% 和 800%。此外,我们还比较了 RLGTS 与基于马尔可夫链蒙特卡洛(MCMC)的方法(该方法已经在 x86 代码的超优化上取得了很大的成功,并且也是合成汇编语言代码的当前最佳方法 [4]),结果表明我们的方法在更有难度的基准程序上有更优越的表现,在固定的程序评估限制内可求解的程序多出 400%;即使当该限制在 MCMC 看来增大了 50 倍时,我们的方法依然能在总体表现上保持竞争力。

图 2:我们的 Q 函数神经网络的示意图

 图 3:我们的 Q 函数与优先搜索树组合方法的示意图

 

图 5:RLGTS 与基准方法的表现比较,左图展示了求解出的非凸程序的比例,右图展示了求解出的凸程序的比例。尽管 RLGTS 能有效求解凸程序,但它们也可以通过最佳优先搜索(Best-First Search)轻松解决,因此我们将它们从我们的其它实验中移除了,因为它们不能很好地代表该方法的表现。对于长度最多到 6 的程序,最大程序长度为 6;对于长度为 10 的程序,最大程序长度为 10。

 图 6:RLGTS 和 MCMC 作为程序长度函数(左图)和允许的指令数(右图)的表现比较。随着程序长度和搜索上限之间的差异的增大,RLGTS 一直都有更好的表现。让人惊讶的是,随着程序长度的增大,MCMC 的表现仅略有甚至没有下降。随着搜索的指令数的增大,MCMC 样本效率下降得快得多。MCMC-1m 给出了当 MCMC 的超时时间增加到 100 万次尝试时的表现,其它情况都使用了 20000 次尝试的限制。

论文:Program Synthesis Through Reinforcement Learning Guided Tree Search

 


论文地址:https://arxiv.org/abs/1806.02932 

摘要:程序合成是根据提供的规格生成程序的任务。传统上该任务被编程语言(PL)社区看作是一个搜索问题,近期则被机器学习(ML)社区视为一个监督学习问题。我们在这里提出另一种方法,将合成给定程序的任务当作是可通过强化学习(RL)解决的马尔可夫决策过程。根据对部分程序的状态的观察,我们试图找到一个程序,且该程序在程序和状态对上依据所提供的一个奖励度量是最优的。我们在操作浮点数的 RISC-V 汇编语言的一个子集上实例化了该方法;并且受编程语言社区使用基于搜索的技术来进行优化的启发,我们将强化学习与一种优先搜索树组合到了一起。我们评估了这个实例,并且表明了我们的组合方法相比于各种基准方法的有效性,其中包括仅保留强化学习的方法和一种在该任务上当前最佳的马尔可夫链蒙特卡罗搜索方法。



本文为机器之心编译,转载请联系本公众号获得授权

✄------------------------------------------------

加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告 & 商务合作:bd@jiqizhixin.com

相关阅读

推荐阅读

两连阳为啥还没回本?买入绩优、白马、中大盘股才能轻松获利

两连阳为啥还没回本?买入绩优、白马、中大盘股才

一、大盘点评展望周二沪深两市小幅低开后,沪深300权重带动指数震荡上行。最终沪指上涨0 53%报收3410点,K线上收出一根中阳线;深成指上涨1 更多

2017-11-22 16:17:00
2017百度世界大会李彦宏透露无人车2018年量产 无人驾驶概念股备受期待

2017百度世界大会李彦宏透露无人车2018年量产 无

一年一度的百度世界大会11月16日在北京举行,每年的百度世界大会,百度创始人李彦宏都会带来他对过去,现在和未来关于互联网和整个IT领域的 更多

2017-11-16 11:17:37
贵州茅台股价突破700元 贵州茅台股价为什么那么高?

贵州茅台股价突破700元 贵州茅台股价为什么那么

今日贵州茅台延续昨日强势走势,继续大幅攀升,盘中最高价突破700元整数关口,刷新上市新高纪录,截至发稿,最高价报704 97元,总市值超越8 更多

2017-11-16 10:32:47
百度世界大会今日召开聚焦智能硬件 百度世界大会受益概念股一览

百度世界大会今日召开聚焦智能硬件 百度世界大会

据怀新资讯报道,2017百度世界大会将于16日在北京举行。从邀请函上出现的神秘的盒子推测,本次百度将会有AI硬件以及诸多AI新技术发布。从今 更多

2017-11-16 10:17:03
中国财富总值全球第二但是超4亿人家庭没有卫生厕所 你拖后腿了吗?

中国财富总值全球第二但是超4亿人家庭没有卫生厕

瑞士信贷研究所(CSRI)最新出炉的《全球财富报告》显示,全球财富总额现已达到280万亿美元,比十年前金融危机爆发时高出27%。美国占全球财 更多

2017-11-16 10:07:07
比特币今日价格大幅反弹逾9% 比特币价格再次突破7000美元

比特币今日价格大幅反弹逾9% 比特币价格再次突破

在短短两周时间内,比特币价格呈现了非常惊险的过山车。由于对于这款加密货币未来趋势存在争议,上周比特币价格出现暴跌,曾一度低于6000美 更多

2017-11-16 10:04:14
油价调整最新消息:国内油价今日24时或迎年内最大涨幅 附92号/93号汽油最新价格

油价调整最新消息:国内油价今日24时或迎年内最大

新一轮成品油调价窗口将于16日24时开启。国际原油价格一度涨至近两年高位,受此影响,国内油价或迎年内最大涨幅。隆众资讯统计数据显示,以 更多

2017-11-16 09:22:17
国际油价调整最新消息:EIA原油及汽油库存双双增长 延长减产协议预期支撑油市反弹

国际油价调整最新消息:EIA原油及汽油库存双双增

美国能源信息署(EIA)周三(11月15日)公布的数据显示,上周美国原油库存意外录得增加,同时汽油库存也意外增长。EIA公布,截至11月10日当 更多

2017-11-16 09:21:49
+ 点击查看更多精彩
29日零时将上调汽柴油限价  每吨汽油上调170柴油上调165元
    人民网北京3月28日电 (朱江)今日,记者从隆众、卓创社会监测机构...
今年政策方向没有变,“三去一降一补”具体该怎么干?
    2018年,我国开启高质量发展新征途。中央经济工作会议把深化供给...
蓝筹股带动大盘继续上攻 沪指重返3400点
    【盘面简述】今日早盘,随着油气股的拉升上涨,中国石油和中国石...
白马股崛起补涨强烈 短期恐慌性抛盘并不大
    今日市场点评:沪深两市早盘各股指纷纷小幅低开,开盘之后一度呈...
市场再度面临重要的时间窗口 一板块有望迎来年末行情
    【今日小结】今日,两市小幅高开,开盘回撤后快速上行翻红,金融...
不离谱的回落 三理由力挺节后机会
    今日市场点评:大盘在节后第一天走出了高开低走的行情。在国庆期...