【问题标题】:How to train Actor-Critic (A2C) reinforcement learning如何训练 Actor-Critic (A2C) 强化学习
【发布时间】:2018-12-08 06:03:55
【问题描述】:

我目前能够使用 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)

作为一个总体趋势,我观察到,对于 Success 情节,损失往往很大,而对于 Fail 情节,损失函数输出往往很小。

【问题讨论】:

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


    【解决方案1】:

    我认为你犯了一个错误,如果你真的想知道如何实现 Actor Critic 算法,你首先需要掌握 2 件事: - 实施基于价值的强化学习算法(例如 DQN)。 - 实现基于策略的 RL 算法(例如 Policy Gradients)。

    你不能直接跳到actorcritic模型上,事实上你可以,但是如果你不能分别理解actor(基于策略)和critic(基于价值)你就什么都不懂.

    这就像你想在开始学习绘画之前画 Joconde。

    我的建议是,在实施 AC 代理之前花点时间了解这两个要素。

    我用 tensorflow 制作了一个免费课程,并在此处完成实现 https://simoninithomas.github.io/Deep_reinforcement_learning_Course/

    但同样,自己实现架构,如果你不真正了解架构,复制一个架构是没有用的。

    【讨论】:

    • 我在 Keras 中实现了 DQN 和 VPG (REINFORCE),对 A2C 有点困惑。对于我参加的 Udacity 深度学习课程中的 DDPG 实现,有一个本地演员、本地评论家、目标演员和目标评论家,总共有 2 个 nn。 A2C 是否只需要 2 个 nn,即。一位演员和一位评论家?我目前的 A2C 实现只有这两个 nn,但性能比 Cartpole 上的 VPG 或 DQN 更差(完成 380 集,而 VPG 和 DQN 大约 120 到 180 集)。
    猜你喜欢
    • 2023-02-01
    • 2019-10-20
    • 1970-01-01
    • 2012-05-30
    • 2022-08-08
    • 2021-07-22
    • 2019-10-14
    • 2017-11-12
    • 2021-06-12
    相关资源
    最近更新 更多