我目前能够使用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)
作为一个总体趋势,我观察到,对于成功事件而言,损失往往会很大,而对于失败事件而言,损失函数的输出往往会很小。
答案 0 :(得分:2)
我认为您是在犯错,如果您真的想知道如何实现Actor Critic算法,则需要首先掌握以下两点: -实施基于价值的RL算法(例如DQN)。 -实施基于策略的RL算法(例如“策略梯度”)。
您不能直接跳到演员评论家模型上,实际上可以,但是如果您无法分别理解演员(基于策略)和评论家(基于价值),您将一无所知
这就像您想在开始学习绘画方法之前先绘画Joconde。
我的建议是,在实施AC代理之前花些时间学习这两个要素。
我使用tensorflow进行了免费课程,并在https://simoninithomas.github.io/Deep_reinforcement_learning_Course/
处完成了实现但是同样,请自己实现架构,如果您不太了解架构,那么复制架构是没有用的。