OpenAI Baselines: DQN

OpenAI Blog 工具

摘要

# OpenAI Baselines: DQN 来源: [https://openai.com/index/openai-baselines-dqn/](https://openai.com/index/openai-baselines-dqn/) 在将屏幕图像转换为灰度图时,我们对绿色通道的系数标定错误,导致鱼消失了。发现这个bug后,我们调整了色值,算法才能再次识别到鱼。为了在未来调试类似问题,Gym现在包含一个[play⁠\(在新窗口中打开\)](https://gith

我们开源了 OpenAI Baselines,这是我们在内部进行的工作,旨在复现强化学习算法并取得与已发表成果相当的性能。我们将在接下来的几个月陆续发布这些算法;今天的版本包括 DQN 及其三个变体。
查看原文 导出为 Word 导出为 PDF
查看缓存全文

缓存时间: 2026/04/20 14:56

# OpenAI Baselines: DQN 来源:https://openai.com/index/openai-baselines-dqn/ 在将屏幕图像转换为灰度时,我们错误地校准了绿色值的系数,导致鱼消失了。注意到这个bug后,我们调整了颜色值,算法就能够再次看到鱼了。 为了在未来调试类似的问题,Gym 现在包含了一个 play() (https://github.com/openai/gym/blob/master/gym/utils/play.py) 函数,让研究人员能够轻松查看与 AI 代理相同的观察结果。 *先修复bug,再调整超参数*:调试完成后,我们开始校准超参数。我们最终发现,设置 epsilon(控制探索率的超参数)的退火计划对性能有巨大影响。我们的最终实现在前 100 万步内将 epsilon 降低到 0.1,然后在接下来的 2400 万步内降低到 0.01。如果我们的实现包含bug,我们可能会尝试不同的超参数设置来处理我们还没有诊断出的故障。 *仔细检查论文的解释*:在 DQN Nature (https://www.nature.com/nature/journal/v518/n7540/full/nature14236.html) 论文中,作者写道:"我们还发现将更新的误差项 [...] 限制在 -1 到 1 之间很有帮助"。这个陈述有两种解释方式——截断目标函数,或截断计算梯度时的乘法项。前者看起来更自然,但它会导致在高误差转移上梯度为零,从而导致次优性能,正如在一个 DQN 实现 (https://github.com/devsisters/DQN-tensorflow/issues/16) 中所发现的。后者是正确的,有一个简单的数学解释——Huber Loss (https://en.wikipedia.org/wiki/Huber_loss)。你可以通过检查梯度是否按预期出现来发现这些bug——这可以在 TensorFlow 中使用 compute_gradients() (https://www.tensorflow.org/api_docs/python/tf/train/GradientDescentOptimizer#compute_gradients) 轻松完成。 本文中的大多数bug都是通过多次查看代码并思考每一行可能出错的地方而发现的。每个bug事后看起来都显而易见,但即使是经验丰富的研究人员也往往低估了需要多少次代码审查才能找到实现中的所有bug。

相似文章

OpenAI Baselines: ACKTR & A2C

OpenAI Blog

OpenAI 发布 ACKTR 和 A2C 算法作为其 Baselines 库的一部分,其中 ACKTR 通过自然梯度下降展示了改进的样本复杂度,同时保持了与一阶方法相当的计算效率。

从仿真泛化

OpenAI Blog

# 从仿真泛化 来源: [https://openai.com/index/generalizing-from-simulation/](https://openai.com/index/generalizing-from-simulation/) 仿真机器人的强化学习成果充斥市场,这可能会给人一种印象,即强化学习能轻松解决大多数机器人任务。但常见的强化学习算法只在那些对动作的小幅扰动能带来奖励增量变化的任务中表现良好。一些机器人任务具有简单的奖励函数,比如行走任务,可以根据行进距离来评分

深度强化学习中的安全探索基准测试

OpenAI Blog

OpenAI 提议将约束强化学习标准化作为安全探索的形式化框架,并推出 Safety Gym——一个用于评估高维连续控制任务中安全深度强化学习算法的基准测试套件,这些任务包含安全约束。

使用动作相关分解基线的策略梯度方差缩减

OpenAI Blog

# 使用动作相关分解基线的策略梯度方差缩减 来源: [https://openai.com/index/variance-reduction-for-policy-gradient-with-action-dependent-factorized-baselines/](https://openai.com/index/variance-reduction-for-policy-gradient-with-action-dependent-factorized-baselines/) OpenAI## 摘要 策略梯度方法在深度强化学习中取得了巨大成功,但梯度估计的方差很高。高方差问题特别