faiculty 2018-12-21
图1
强化学习是教授代理通过反复试验解决复杂任务的方法。结合深度神经网络,强化学习算法在Go(2017)和Dota 2(2018)等高维任务中取得了令人瞩目的成果。虽然这些结果是开创性的,但人们普遍认为深度强化学习(deep RL)算法在推广到其他任务方面是非常糟糕的。
深度RL中的泛化已被证明是一个特别困难的问题,本文旨在概述一组新的泛化特定基准,总结这些基准的表现,并为未来的研究提出方向。
泛化是机器学习算法应该能够在新数据上表现良好的想法。在深度RL的背景下,代理应该能够利用其过去的经验在全新的环境和任务中取得成功。经典的监督机器学习算法在使用Dropout,L2正则化,批归一化和数据增强等方法的泛化中取得了很好的效果,但我们还没有在深度RL中看到类似的结果。事实上,即使是最先进的(SOTA)深度RL代理也很难将他们的经验应用到密切相关的环境中。为了提高深度RL代理的泛化性能,我们需要在一组泛化基准任务上达成共识。
对于这样的基准(Packer et al., 2018 https://arxiv.org/pdf/1810.12282.pdf; Cobbe et al., 2018 https://arxiv.org/pdf/1812.02341.pdf),我们将在本文中讨论几种不同的建议。这些基准测试是为不同目的而设计的,我们稍后会强调这些细微差别。
Packer et al. (2018)创建了一组基准任务,包括6个不同的OpenAI Gym(Brockman et al., 2016)环境:CartPole,MountainCar,Acrobot,Pendulum,HalfCheetah和Hopper。然后,他们使用该基准来构建当前SOTA深度RL算法的泛化性能的基线测量。
他们的框架旨在衡量两个概括指标的成功程度; 插值和外推。插值表明,代理应该能够在具有与训练期间所见参数类似的参数的测试环境中表现良好,而外推表明代理应该能够在测试环境中表现良好,其参数不同于训练期间所见的参数。
他们首先在他们的基准上训练了6种不同的算法(A2C,PPO,EPOpt-A2C,EPOpt-PPO,RL²-A2C,RL²-PPO),每种算法都有15000 episodes 的feed-forward(FF)和recurrent (RC)架构(除了RL²-A2C和RL²-PPO,它们在7500次试验中训练)然后在1000 episodes 上进行测试。他们对每个算法和环境组合的一组超参数进行了网格搜索 - 其结果列在索引中。
图2.每种算法的泛化性能(以%表示),在所有环境中 平均(五次运行的平均值和标准差)
如图2所示,具有recurrent 架构的A2C在插值和外推上表现相当好,而具有FF架构的PPO在插值方面表现相似,但在外推时表现明显更差。
Packer et al. (2018) 探索提高使用EPOpt A2C和PPO,旨在学习策略环境变化和RL²,旨在学习策略,适应这样的变化。
在大多数情况下,EPOpt和RL²使事情变得更糟。如图所示,带有FF神经结构的EPOpt-PPO是唯一一个比基本实现有任何改进的模型(参见图2)。
通常,“vanilla”深度RL算法在此基准测试中具有公平的泛化性能。注意到基于RL²的算法很难训练。而EPOpt和RL²没有显著提高泛化,已经有一些成功的从监督学习应用正则化技术;然而,在这之前,我们需要讨论另一个最近提出的基准,CoinRun。
图3. CoinRun
Packer等人(2018)提出的基准是综合的,衡量了泛化的各个方面;但是,很难使用它来量化模型上微小的增量更改所带来的改进。下面将详细描述CoinRun基准测试,它是专门为快速迭代和评估模型体系结构的小更改而设计的。
CoinRun基准(Cobbe et al., 2018)是一款简单的平台游戏,奖励很少。这些levels 是程序生成的,这意味着无论使用多少个训练levels ,测试环境都是不同的。CoinRun使得在探索模型架构的新思想时更容易快速地量化小的改进。你可以在这里亲自尝试一下(https://github.com/openai/coinrun)。
图4. Nature-CNN和IMPALA-CNN的基线性能,无限制的训练levels(左)和一组500训练levels (右)
Cobbe et al. (2018) 研究了具有两种不同卷积体系结构的代理之间的差异,这两种体系都使用近端策略优化(PPO)进行训练。基线模型Nature-CNN采用了Mnih等人(2015)首次提出的3层卷积架构。针对该基线测试的是IMPALA-CNN(Espeholt等,2018),其显示在泛化方面表现更好,同时样品效率更高。这表明更大的架构更好地概括,通过实施更深入和更广泛的变体IMPALA-Large证明了这一点。他们训练了9名代理来玩CoinRun,每个人都有不同数量的训练levels ,从100到16,000,最后是一组无限的训练水平。
他们发现,经过少于4,000 levels 训练的代理有过多的过度拟合。这是非常糟糕的,甚至在16,000 unique levels上训练的代理也有明显的过度拟合。
前面讨论的EPOpt和RL²旨在修改算法的体系结构,使其具有鲁棒性或适应新环境。以下技术的灵感来自有监督的学习方法。
正则化旨在减少模型的方差而不引入更多偏差。有许多成功的正则化技术,但最适用于深度RL的是Dropout和L2正则化。
数据增强对输入数据进行处理,显著提高了深度学习算法的泛化性能。值得注意的技术是Cutout 和批归一化。为了增强卷积神经网络的鲁棒性,随机抽取输入图像的正方形区域进行裁剪。批归一化使深度神经网络在训练每一个小批量时的层输入归一化,这样可以提高学习率。
随机环境迫使代理在每个时间步以概率epsilon进行随机动作。该技术鼓励代理探索环境以防止过度拟合。
图5.在500 levels上进行训练时使用数据增强,批归一化和L2正则化的效果。在3次运行中显示平均值和标准偏差
他们选择评估几种不同类型的泛化技术并测量其结果。首先,他们发现Dropout和L2正则化减少了泛化差距,Dropout表现稍差。使用Cutout进行数据增强在泛化任务上表现得非常好。与基线模型相比,批归一化显著提升了性能。随机性也显示出显著的结果,尽管它们确实提到已经具有随机性的环境将不会获得相同的好处。
他们决定结合前面提到的所有技术并测试泛化性能,发现性能仅略高于其中任何一个。
这两个基准测试的结果清楚地表明,需要进一步探索以使深度RL代理在泛化任务上具有高性能。
为了拓展他们的工作,Cobbe等人(2018)提出了以下建议:
我建议,在探索上述观点的基础上,一旦取得了良好的成果,就应该以Packer等人(2018)提出的基准进行评估,以证明他们的agent具有良好的泛化能力。