簡體   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