a3c 中的收敛问题

Convergence issues in a3c

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

当前策略变化太大是A3C算法不稳定的主要原因。有一些方法可以稳定它,例如TRPO or PPO。我建议你看看 PPO - 它很容易实现,虽然效果不佳。

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

推荐使用的地方e=0.2。祝您实施顺利!