您的位置:首页 > 其它

强化学习A3C与UNREAL算法

2017-09-15 18:10 381 查看
首先再熟悉一下python的参数传递:

对于不可变对象(number,string,tuple)作为参数时,相当于C语言的值传递;

对于可变对象(list,dict)作为参数时,相当于C语言的引用传递。

————————————————————————————————————————————————

A3C算法是Actor Critic算法的并行扩展。

为了训练一对Actor Critic,将其复制多份,复制的每一对各自训练,之后将每一对进行综合,

再然后将综合后的好的结果反馈给每一对复制出来的Actor Critic,一来一回能提高强化学习的学习效率。

首先新建一个公共网络,此公共网络里的参数可以被所有子网络共享。

(每个子网络进行训练,用这些子网络的梯度训练此公共网络的参数,进行一次梯度下降后,

将此公共网络的参数数值赋值给此子网络,然后继续这样的过程)

A3C算法充分利用了并行算法的优势,各个子网络可以训练不同的数据。

A3C与Actor Critic代码实现的最大的不同在于(根据莫烦python的github代码实现):

(1)并行计算下的参数、梯度共享

(2)A3C的Actor输出为表示分布的mu(均值)与sigma(标准差),这里直接根据分布来采样,

而不再是输出一堆概率来根据概率选择了。choose_action时直接sample一个。

————————————————————————————————————————————————

关于unreal算法,其在A3C的基础上增加了一些辅助性的训练。可以参考一个非常好的专栏:
http://mp.weixin.qq.com/s/1RPTloNXZ6K7TFL1leg6qg
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: