一、动机
基于AC框架的算法很难收敛,因此可以采用DQN的经验回放的方法降低数据间的相关性,基于这种思想A3C算法采用异步的思想降低数据间的差异性,具体做法:在多个线程里与环境进行交互,将每个线程内的交互的经验收集起来,共同保存,指导所有智能体与环境进行交互
二、A3C算法
异步训练框架如下图所示:
包括全局的网络架构和n个worker线程,n个worker线程中的网络与全局网络相同,每个线程独立的与环境进行交互得到数据,积累一定数据便计算自身worker网络的损失函数的梯度,但并不用于自身网络更新,而是更新全局网络,即n个线程根据自身计算的梯度独立的去更新全局网络,每个一段时间,n个worker的参数会copy为全局网络的参数继续进行交互
优势函数:表达动作a相对于平均而言的优势,公式: A π ( s , a ) = Q π ( s , a ) − V π ( s ) A^{\pi}(s,a)=Q^{\pi}(s,a)-V^{\pi}(s) Aπ(s,a)=Qπ(s,a)−Vπ(s),优势函数其实就是将Q值归一化到Value baseline上,这样有助于提高学习效率,同时使学习更加稳定;同时经验表明,优势函数也有助于减小方差,而方差过大导致过拟合的重要因素。