【问题标题】:Convergence issues in a3ca3c 中的收敛问题
【发布时间】:2018-06-21 08:39:20
【问题描述】:

我在 keras 中构建了一个 A3C 实现,并以此为参考:https://jaromiru.com/2017/03/26/lets-make-an-a3c-implementation/ 而且我正在使用自定义环境,代理可以选择购买一些物品,出售或交换它们的价格作为状态。对好的交易给予正面奖励,对坏交易给予负面奖励。我过去曾在 DQN 上对其进行过测试,它成功收敛,显示出非常好的结果。但是当我在 A3C 中使用相同的环境时,它会导致模型一遍又一遍地选择相同的动作。我尝试更改一些超参数,但没有结果。我还尝试使用目标模型并每 n 集更新一次,这可以更好地与健身房 CartPole 环境融合,但仍然没有影响我的模型在我的自定义环境中的性能。我在reddit上发现了一些关于同样问题的讨论,但没有一个得到回答。

【问题讨论】:

  • 抱歉,这不是编程问题。 RL 算法的收敛性是出了名的不稳定,你对一个参数做一个小的改动,整个事情就会崩溃。
  • @MatiasValdenegro 你能建议我在哪里提问以获得更详细的答案吗?

标签: python-3.x tensorflow keras reinforcement-learning


【解决方案1】:

现行政策变动过大是A3C算法不稳定的主要原因。有一些方法可以稳定它,例如TRPOPPO。我建议你看看 PPO - 它很容易实现,虽然效果较差。

在 PPO 中,您只需将损失函数(基于博客的符号)更改为:

在哪里推荐使用e=0.2。祝您实施顺利!

【讨论】:

  • 感谢您的回复。在我的环境中,agent 总是从随机位置开始播放,所以我决定在将其位置更改为随机位置之前从同一个位置运行几集。它有点工作,但非常不稳定。它有时会适当地收敛,有时会一遍又一遍地选择相同的动作。我会尝试实现 PRO,希望它有所帮助
猜你喜欢
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
  • 2017-05-27
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 2021-11-16
相关资源
最近更新 更多