36

谷歌大脑提出MAPO:用于程序合成的策略优化方法

 5 years ago
source link: https://www.jiqizhixin.com/articles/2018-07-21?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

策略梯度方法正在获得越来越多学者的关注。来自西北大学、谷歌大脑的研究人员近日提出了内存策略优化方法 MAPO,其通过弱监督的方式在泛化程序合成和问答任务中性能超过了此前几种全监督的基准方法,该研究的论文已提交至 NIPS 2018 大会。

  • 项目代码:https://github.com/crazydonkey200/neural-symbolic-machines

神经符号机(NSM)是一种利用强化学习集成神经网络和符号表征的框架。

mIFFfeR.png!web

该框架可用于从弱监督 (如问答对) 中学习语义解析和程序合成,这比全监督 (如问答对) 更容易收集,也更灵活。应用程序包括虚拟助手、数据库的自然语言接口、人机交互等。它常被用在 Freebase 上学习语义解析器 (https://arxiv.org/abs/1611.00020) 以及数据库表的自然语言接口 (https://arxiv.org/abs/1807.02322) 上。

Google Brain 的研究人员使用内存增强策略优化 (MAPO) (https://arxiv.org/abs/1807.02322) 来训练 NSM。这是一种新的策略优化公式,它包含了一个有期望轨迹的内存缓冲器,以减少确定性环境的策略梯度估计的方差。我们还运用系统探索来优化探索和边际似然约束来加速和稳定训练。

我们实现了使用一个分布式的演示者-学习者架构,该体系结构利用多个 CPU 和 GPU 进行可扩展性训练,类似于 DeepMind 在 IMPALA 论文中介绍的 (https://arxiv.org/abs/1802.01561)。

MAPO 的环境需求:

  • Python 2.7

  • TensorFlow > = 1.7

  • 其他需要的包在 requirements.txt 中进行汇总。

研究介绍

最近,人们对将策略梯度方法应用于各种应用领域产生了极大兴趣,其中包括程序合成 [25,16,63,10],对话生成 [24,11],架构搜索 [64,66],游戏 [48,29] 和连续控制 [40,45] 等方向。简单的策略梯度方法,如增强(Reinforce),使用当前策略中的蒙特卡罗样本对期望收益进行策略上的优化。这通常会导致学习动态不稳定和样本效率变低,有时效果会低于随机搜索 [28]。

基于梯度的策略优化难点来自以下几个方面:(1) 策略梯度估计的方差较大;(2) 随机初始化策略的样本通常只会获得很小的激励,导致初始阶段的训练进度缓慢;(3) 随机策略样本不能有效地挖掘搜索空间,因为很多样本存在重复。这些问题在程序合成和机器人学 [4] 等应用程序中令人望而却步,这些应用程序涉及大量的搜索空间,但所得却很少。在这样的任务中,只有经过长时间的正确运行,才能获得好的回报。例如,在程序合成中,只有大程序空间内的少数程序可以产生正确的函数形式。然而,除非它被频繁地重采样 [25,3],不然会导致高回报轨迹的遗漏。

本文提出了一种基于离散确定性环境的策略优化的新构想,它在策略梯度框架内结合了一个有期望轨迹的内存缓冲器。它将策略梯度看作对内存中轨迹的期望和对内存外轨迹的期望的加权和。梯度估计是无偏的,在内存缓冲区的轨迹概率无法忽略的情况下,可以得到较低的方差。因为高回报的轨迹仍然留在内存中,无法被省略。为了使 MAPO 算法更有效,我们提出了三种技术:(1) 在表演者-学习者体系结构中,从内存缓冲区内外分别进行分布式采样;(2) 对内存缓冲中高回报轨迹边际进行似然约束,以在初始训练阶段引入一定偏差为代价加速训练;(3) 系统地探索搜索空间,以有效发现高回报轨迹。

我们评估了 MAPO 对自然语言弱监督程序合成的有效性 (参见第 2 节)。程序合成可以在策略优化的条件下学习泛化,同时对实际应用产生影响。在具有挑战性的 WIKI TABLE QUESTIONS[36] 基准测试中,MAPO 在测试集上的准确率达到 46.2%,远远超过了之前的 43.7% 的水平 [62]。有趣的是,在 WIKISQL[63] 基准测试中,MAPO 在没有程序监督的情况下达到了 74.9% 的准确度,超过了几个表现较好的全监督基准线。

reqURjB.png!web

图 1:具有系统搜索和边际似然约束的 MAPO 算法框图

F7zEnmi.png!web

图 2:离散的表演者-学习者结构框架

论文:Memory Augmented Policy Optimization for Program Synthesis with Generalization(用于泛化程序合成的内存增强策略优化)

QVJrAvv.png!web

链接:https://arxiv.org/abs/1807.02322

摘要:本文提出了内存增强策略优化 (Memory Augmented Policy Optimization, MAPO),这是一种新的策略优化方法,它结合了一个期望轨迹的内存缓冲区,以减少对离散的确定性环境的策略梯度估计的方差。该公式将期望回报目标表示为两项的加权和:对高回报轨迹内存的期望,以及对内存之外轨迹的单独期望。提出了 3 种有效的 MAPO 训练算法:(1) 采用表演者-学习者架构,从内存内部和内存外部进行分布式采样;(2) 对内存的边际进行似然约束,加速训练;(3) 系统地搜索高回报轨迹。MAPO 提高了策略梯度的样本效率和鲁棒性,特别是在有少量激励的任务中。我们从自然语言里评估了 MAPO 的弱监督程序合成,并着重泛化能力。在 WikiTableQuestions 基准测试中,我们将之前最高的精确度提高了 2.5%,达到了 46.2%,在 WikiSQL 基准测试中,MAPO 在只有微弱的监督条件下精确度达到了 74.9%,超过了几个表现较好的全监督的基准线


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK