Actor-Critic

Actor-Critic算法是强化学习中的一种策略优化方法,它结合了策略网络(Actor)和评价网络(Critic)。A3C通过异步并发学习解决了相关性数据导致的神经网络训练不稳定性,提高了训练效率和模型收敛性。A3C包含主网络和多个子网络,子网络在不同线程中并行交互,用更新后的主网络参数更新本地网络,以利用多线程计算资源并获取更优训练数据。
摘要由CSDN通过智能技术生成

Actor-Critic

A3C相比DDQN,其可以支持更大的动作空间,甚至可以支持连续型的动作空间

将选取动作策略的步骤称为Actor,将评估动作的概率是变大还是变小的步骤称为Critic
在AC算法中,Actor和Critic一般采用神经网络来实现,因此称为策略网络(参数为θ)和评价网络(参数为w)

当评价函数为Q函数的时候,为最基础的AC算法,此时
Actor参数的更新方式:θ=θ-α▽logπ(at|st, θ)*Q(at,st)
Critic的损失函数:Loss=(Rt+γmaxQ(s’,a’)-Q(st,at))^2
PS:s’为st的下一个状态,Rt为st转移到s’的即时奖励,a’为取到最大Q值的动作
当评价函数为优势函数或者时序差分误差的时候,称为A2C(Advantage Actor-Critic)算法

应该是当优势函数的时候,但是如果直接计算优势函数A=Q-V的话,需要两个神经网络,因此我们将(Rt+V(s’))≈Q(st,at),因此A=Q(st,at)-V(st)就可以转化为A=Rt+V(s’)-V(st),这样会增加一定的方差,不过可以忽略不计
相比于基础的AC算法,A2C更好的表现了动作的优势,此时
Actor参数的更新方式:θ=θ-α▽logπ(at|st, θ)*(Rt+V(s’)-V(st))
Critic的损失函数:Loss=(Rt+V(s’)-V(st))^2

无论是AC还是A2C,其实应该说神经网络和强化学习结合的时候,都会存在一个问题,那就是神经网络会不稳定,主要是因为神经网络在训练的时候,是假设训练数据都是独立分布的,而实际在训练神经网络逼近值函数的时候,所采用的的数据往往存在相关性,一个有效的解决方法就是异步并发学习(就像我们之前提的APE-X),于是就有了A3C(Asynchronous Advantage Actor-Critic)方法,A3C包含一个主网络和多个子网络,子网络和主网络的结构相同(都是A2C的网络),各个子网络分布在不同的线程中,多个线程独立与环境进行交互当获取到一定数据后,就计算自己线程里面的神经网络损失函数的梯度,但是这些梯度并不更新自己线程里面的神经网络,而是去更新主网络,然后再从主网络获取参数更新本地网络,进而指导后面的环境交互
异步并发学习使A3C不止能够拿到优质训练数据帮助模型更好的收敛,而且充分利用了机器的计算性能,提高了训练效率

A3C框架图如下
在这里插入图片描述

学习记录–引用自学长的微信朋友圈笔记加上自己的理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值