如何训练Actor-Critic(A2C)强化学习

时间:2018-06-29 05:45:10

标签: tensorflow machine-learning artificial-intelligence pytorch reinforcement-learning

我目前能够使用Q-Learning训练系统。我将其移至Actor_Critic(A2C)方法。请不要问我为什么要这么做,

我目前是从https://github.com/higgsfield/RL-Adventure-2/blob/master/1.actor-critic.ipynb借用实施的

问题是,我一直保持大约50%的成功率(这基本上是随机行为)。我的游戏很长(50步)。我应该打印出奖励,价值还是什么?我应该如何调试呢?

以下是一些日志:

simulation episode 2: Success, turn_count =20
loss = tensor(1763.7875)

simulation episode 3: Fail,  turn_count= 42
loss = tensor(44.6923)

simulation episode 4: Fail,  turn_count= 42
loss = tensor(173.5872)

simulation episode 5: Fail,  turn_count= 42
loss = tensor(4034.0889)

simulation episode 6: Fail,  turn_count= 42
loss = tensor(132.7567)

loss = simulation episode 7: Success, turn_count =22
loss = tensor(2099.5344)

作为一个总体趋势,我观察到,对于成功事件而言,损失往往会很大,而对于失败事件而言,损失函数的输出往往会很小。

1 个答案:

答案 0 :(得分:2)

我认为您是在犯错,如果您真的想知道如何实现Actor Critic算法,则需要首先掌握以下两点: -实施基于价值的RL算法(例如DQN)。 -实施基于策略的RL算法(例如“策略梯度”)。

您不能直接跳到演员评论家模型上,实际上可以,但是如果您无法分别理解演员(基于策略)和评论家(基于价值),您将一无所知

这就像您想在开始学习绘画方法之前先绘画Joconde。

我的建议是,在实施AC代理之前花些时间学习这两个要素。

我使用tensorflow进行了免费课程,并在https://simoninithomas.github.io/Deep_reinforcement_learning_Course/

处完成了实现

但是同样,请自己实现架构,如果您不太了解架构,那么复制架构是没有用的。