繁体   English   中英

有没有人设法让异步优势演员评论家与Mujoco实验一起工作?

[英]Has anyone managed to make Asynchronous advantage actor critic work with Mujoco experiments?

我正在Tensorflow中使用a3c实现的开源版本, 版本对于atari 2600实验相当有效。 但是,如本文所述 ,当我为Mujoco修改网络时,该网络拒绝学习任何有意义的信息。 是否有人设法使a3c的任何开源实现都能解决连续域问题,例如mujoco?

我对摆进行了连续的操作,效果很好。

首先,您将建立您的神经网络并输出均值(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)

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

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

优势在离散空间中批评演员很容易:如果演员的表现超出您的预期,请增加执行此举的可能性。 如果情况恶化,请减少它。

但是在连续的空间中,您该怎么做? 策略功能输出的整个向量就是您的举动-如果您在策略上,并且比预期做得更好,那么就没有办法说“让我们更多地输出行动!” 因为您已经完全输出了该向量。

这就是Morvan的答案发挥作用的地方。 不仅输出动作,还为每个输出功能输出均值和标准差。 若要选择一个动作,请传递输入以为每个输出功能创建均值/ stddev,然后从此正态分布中采样每个功能。

如果做得好,您可以调整策略网络的权重以更改均值/标准差,以鼓励执行此操作。 如果做得不好,那就相反。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM