选自开放人工智能博客
机心编译
参与:黄,微胖
我们打开了OpenAI基准(https://github . com/open ai/baselines),力求重现与已发表论文相当的强化学习算法。接下来的几个月,我们会发布算法;今天,DQN和它的三个变种发布了。
再现强化学习的结果非常复杂:性能非常嘈杂,算法有很多活跃的部分,所以会有细微的漏洞,很多论文没有报告所有必要的技巧。通过发布正确的知识(以及创建这些知识的最佳实践),我们希望确保强化学习的显著优势绝对独立于现有算法的错误或调试版本的比较结果。
强化学习算法的正确实施面临挑战。好的结果通常只来自于修复看似不重要的漏洞。本文包含了一些修改强化学习算法实现的最佳实践和DQN公布的一些细节。
查看代码:https://github.com/openai/baselines
最佳实践
与随机基准相比:在下面的视频中,游戏H.E.R.O中,代理的动作是随机的;如果在训练初期看到这一点,很容易认为代理在学习。所以,你要时刻证明你的代理人的表现优于随机代理人。
谨防非突破性漏洞:在研究了一个包含10个流行强化学习算法的重新实现的样本后,我们注意到其中6个包含了微妙的漏洞,这些漏洞是由社区成员发现的,并得到了作者的证实。这些漏洞包括忽略一些样本梯度或错误实施因果卷积的轻微漏洞,以及严重漏洞,如报告的分数高于真实结果。
像你的代理一样看世界:像大多数深度学习方法一样,对于DQN,我们倾向于将环境的图像转换成灰度,以减少训练过程中所需的计算量。这就带来了这方面的问题:当Seaquest运行DQN算法时,我们注意到我们的部署性能非常差。在查环境的时候,我们找到了原因——如图所示,后处理的图像不含鱼。
在将屏幕图像转换为灰度时,我们错误地校准了绿值系数,导致鱼消失。注意到这个错误后,我们调整了颜色值,算法可以再次看到鱼。
为了以后调试这样的问题,健身房现在包含了一个播放功能,研究人员可以像代理一样轻松看到同样的观察结果。
修复bug,然后是超参数:修复bug后,开始调整超参数。最后,我们发现为超级参数ε设置退火程序以控制探测速率会显著影响性能。最后,在最初的100万步之后,我们将超级参数减少到0.1,在接下来的2400万步之后,我们将超级参数减少到0.01。如果在实践中有漏洞,我们可能会想出不同的超级参数设置来解决我们还没有诊断出来的问题。
再次查看论文解释:在《DQN自然》的论文中,作者写道,“我们还发现这有助于”将错误术语从更新编辑为-1到1之间。这个表达式有两种解释方式:计算渐变时,编辑对象,或者编辑乘法项。前者看起来更自然,但是当改变(转换)时,梯度将为零,误差很大,并且性能不是最优的,正如我们在DQN的实现中发现的那样。后一种解释是正确的,还有一种简单的数学解释——Huber loss。您可以通过检查符合预期的梯度来找到类似的漏洞。在TensorFlow中使用compute _ gradients(https://www.tensorflow.org/API _ docs/python/TF/train/gradientdeponentoptimizer # compute _ gradients),很容易检查出符合预期的渐变。
在多次浏览代码后,然后考虑每一行代码可能有什么问题,我们发现了这篇博文中提到的大部分漏洞。虽然有点后知后觉,但即使是有经验的研究人员也很容易低估发现一个实现中的所有漏洞需要多少次代码。
深度问答学习
我们用Python 3和TensorFlow。此版本包括:
DQN:这种强化学习算法可以将Q-Learning和深度神经网络结合起来,使强化学习在复杂的高维环境中工作,比如游戏或机器人。
Doubel Q Learning:有时候,现有的DQN算法往往会高估与具体动作相关的值,从而纠正这个问题。
priority Replay(https://arxiv . org/ABS/1511.05952):通过学习回放记忆,将DQN回放功能的体验扩展到真实回报与预测回报存在显著差异的地方,使代理能够针对不正确的假设调整响应。
决斗DQN:神经网络分为两部分,一部分学习评估每一个时间步长的值,另一部分计算每一步的潜在优势,然后将它们组合成一个单一的动作优势Q函数。
启动时,运行:
pip安装基线
#训练模型并将结果保存到cartpole_model.pkl
python-m baselines . deepq . experiments . train _ cart pole
#加载cartpole_model.pkl中保存的模型,并可视化学习到的策略
python-m baselines . deepq . experiments . happy _ cart pole
我们还提供经过培训的代理,其操作如下:
python-m baselines . deepq . experiments . atari . download _ model-blob model-atari-pre-duer-break-1-model-dir/tmp/models
python-m baselines . deepq . experiments . atari . happy-model-dir/tmp/models/model-atari-pre-duer-duer-break-1-env Breaking-duering
基准
我们还有一个iPython笔记本,展示DQN是如何在雅达利上部署的。可以对比不同算法的性能。决斗双Q学习带优先重放(黄色)、双Q学习带优先重放(蓝色)、决斗双Q学习(绿色)、双Q学习(红色)。
↓↓↓
1.《dqn 开源 | OpenAI基准DQN及其三个变体:通过最佳实践确保DQN正确性》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《dqn 开源 | OpenAI基准DQN及其三个变体:通过最佳实践确保DQN正确性》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/1452118.html