这应该是最后一篇关于强化学习的内容了,使用A3C算法玩平衡杆游戏。
代码参考自龙良曲的tensorflow2开源书籍。
|
|
loss由两部分组成,计算方式和第二篇其实大同小异,那篇文章里其实已经引入了Actor-Critic的思想。Actor就是策略网络(估计某个状态下每个动作的概率),Critic就是值函数网络(估计某个状态下的期望回报,也就是基准线),过程进行中得到的实际回报可以用MC或者TD计算得到。这些之前都有提到过了。
A3C算法比较特别的地方就是异步更新网络的方式,一个全局网络加若干个子网络(子网络个数一般取CPU核数),每个网络都包含自己Actor和Critic。一开始都从全局网络中拷贝参数值,各自计算好梯度信息后传回全局网络,让全局网络的参数得到更新,然后再从全局网络中拷贝参数值,往复循环。。。注意的是子网络自己只负责算梯度,自己的参数值是不会用梯度更新的。
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1iz0ou8sfr9ij