A3C中的收敛问题

时间:2018-06-21 08:39:20

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

我已以此为参考在keras中构建了A3C实现:https://jaromiru.com/2017/03/26/lets-make-an-a3c-implementation/ 而且我正在使用自定义环境,在该环境中,代理商可以选择购买某些项目,并根据状态将其出售或交换。对于好交易,它会得到正向奖励;对于不好的交易,它会得到负向奖励。过去,我已经在DQN上对其进行了测试,并成功地收敛了,显示出了非常好的效果。但是,当我在A3C中使用相同的环境时,结果是模型只是一遍又一遍地选择相同的动作。我尝试更改一些超参数,但没有结果。我还尝试使用目标模型并每隔n集更新一次,这可以使它与Gym CartPole环境更好地融合,但仍对我的模型在自定义环境中的性能没有影响。我在reddit上找到了关于同一问题的一些讨论,但没有一个得到回答。任何想法都欢迎,谢谢。

1 个答案:

答案 0 :(得分:1)

当前政策的太大变化是A3C算法不稳定的主要原因。有一些方法可以稳定它,例如TRPOPPO。我建议您考虑一下PPO-尽管效果不佳,但它很容易实现。

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

math formula

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