reinforcement-learning - 深度强化学习中的有效奖励范围
问题描述
在 DQN、Actor-Critic 或 A3C 中选择奖励值时,是否有选择奖励值的通用规则?
正如我简要地听到的那样,(-1 ~ +1)奖励是非常有效的选择。
你能告诉我任何建议和原因吗?
解决方案
理想情况下,您希望标准化您的奖励(即,0 均值和单位方差)。在您的示例中,奖励介于 -1 到 1 之间,满足此条件。我相信原因是因为它在更新你的神经网络参数时加速了梯度下降,而且它还允许你的 RL 代理更有效地区分好动作和坏动作。
一个例子:假设我们正在尝试构建一个过马路的代理,如果它过马路,它会获得 1 的奖励。如果它被汽车撞到,它会获得 -1 的奖励,并且每一步都会产生奖励为 0。就百分比而言,成功的奖励大大高于失败的奖励(被车撞)。
但是,如果我们给代理成功过马路的奖励 1,000,000,001,并给它被车撞到的奖励 999,999,999(这个场景和上面的场景在标准化时是相同的),成功不再像之前。此外,如果您将如此高的奖励打折,这将使两种情况的区别更加难以识别。
这在 DQN 和其他函数逼近方法中尤其是一个问题,因为这些方法概括了状态、动作和奖励空间。所以 -1 和 1 的奖励有很大的不同,但是,如果我们使用一个函数来概括它,1,000,000,001 和 999,999,999 的奖励基本上是相同的。
推荐阅读
- php - 使用我自己的 API 的主域和子域之间的 htaccess CORS 问题
- reactjs - 无法导航到 / 并得到未定义的错误
- mysql - 统计 SQL 中高于和低于平均分的学生人数
- javascript - 如何使用 JavaScript 切换自定义复选框?
- c# - 天蓝色函数中的并行 Foreach
- mysql - MongoDB - 根据字段在小组阶段是否具有特定值来计数文档
- reactjs - 如何将 Cloud Firestore 与 React Native 和 Redux 一起使用?
- javascript - 如何从一个菜单中获取菜单项并将它们附加到不同的菜单
- python - Python 硒 (html) 复选框
- android - 错误:Gradle 任务 assembleDebug 失败,退出代码为 1