【问题标题】:Has anyone managed to make Asynchronous advantage actor critic work with Mujoco experiments?有没有人设法让异步优势演员评论家与 Mujoco 实验一起工作?
【发布时间】:2016-09-28 04:06:45
【问题描述】:

我在 Tensorflow 中使用了 a3c implementation 的开源版本,它非常适合 atari 2600 实验。但是,当我为 Mujoco 修改网络时,作为outlined in the paper,网络拒绝学习任何有意义的东西。有没有人设法使任何 a3c 的开源实现能够处理持续的域问题,例如 mujoco?

【问题讨论】:

  • 嗨@Sahil,我也在寻找 A3C 连续控制实现。我正在尝试使用 DQN 中的视觉输入来训练代理玩与cs.stanford.edu/people/karpathy/convnetjs/demo/rldemo.html 非常相似的游戏。我想知道您是否尝试过任何使用 DQN 的 2d 运动游戏并成功了?
  • 我不认为我理解您的评论。你能改写一下吗?

标签: tensorflow deep-learning reinforcement-learning


【解决方案1】:

我做了一个Pendulum的连续动作,效果很好。

首先,您将构建神经网络并输出均值 (mu) 和标准差 (sigma) 以选择动作。

连续动作的基本部分是包含正态分布。我使用的是tensorflow,所以代码如下:

normal_dist = tf.contrib.distributions.Normal(mu, sigma)
log_prob = normal_dist.log_prob(action)
exp_v = log_prob * td_error
entropy = normal_dist.entropy()  # encourage exploration
exp_v = tf.reduce_sum(0.01 * entropy + exp_v)
actor_loss = -exp_v  

当你想对一个动作进行采样时,使用 tensorflow 提供的函数:

sampled_action = normal_dist.sample(1)

Pendulum 的完整代码可以在我的 Github 中找到。 https://github.com/MorvanZhou/tutorials/blob/master/Reinforcement_learning_TUT/10_A3C/A3C_continuous_action.py

【讨论】:

  • 这看起来确实不是一个正确的答案。不要只链接到外部网站;提出一个真正的总结,也许还有一些代码 sn-ps。
【解决方案2】:

我对此挂了很长时间,希望这对我的人有所帮助:

离散空间中的优势 Actor-critic 很容易:如果您的 Actor 做得比您预期的要好,则增加执行该动作的概率。如果情况更糟,请减少它。

但是,在连续空间中,您如何做到这一点?你的策略函数输出的整个向量都是你的动作——如果你在策略上,并且你做得比预期的好,就没有办法说“让我们输出更多的动作!”因为你已经准确地输出了那个向量。

这就是 Morvan 的答案发挥作用的地方。您不是只输出一个动作,而是为每个输出特征输出一个平均值和一个标准差。要选择一个动作,你需要传入你的输入来为每个输出特征创建一个均值/标准差,然后从这个正态分布中采样每个特征。

如果你做得好,你可以调整你的策略网络的权重来改变 mean/stddev 来鼓励这个动作。如果你做得不好,你就会做相反的事情。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 2020-03-09
    相关资源
    最近更新 更多