AC & A2C & A3C

基本概念

Actor-Critic(AC)

AC全称Actor-Critic,中文名演员-评论家算法。AC算法是一种既基于值函数、又基于策略函数的算法。这里所说的基于值函数的算法,主要指的是算法本身输出的所有动作的价值,根据最高价值来选择动作,这类算法不能选取连续的动作。而基于值函数的算法指算法本身输出下一步要采取各种动作的概率,然后根据概率来选取动作。

在这里插入图片描述
如上图所示,一个简单的AC算法(QAC)的策略梯度学习分成两部分:
1、Critic:使用状态动作价值函数 q ω ( s , a ) q_\omega(s,a) qω(s,a),采用线性Q-值函数( ϕ ( s , a ) T ω \phi(s,a)^T\omega ϕ(s,a)Tω)逼近。并使用 T D ( λ ) TD(\lambda) TD(λ)来更新参数 ω \omega ω
2、Actor:使用Critic得到的价值函数 q ω ( s , a ) q_\omega(s,a) qω(s,a)引导策略函数参数θ的更新。

QAC算法的伪代码如下图所示:
在这里插入图片描述

Advanced Actor-Critic(A2C)

A2C全称Advanced Actor-Critic,中文名优势动作价值算法。在AC中,Critic使用的状态动作价值函数 q ω ( s , a ) q_\omega(s,a) qω(s,a)对应的策略梯度为:
在这里插入图片描述
A2C较AC的优化体现在定义目标函数时减去基准线函数 B ( s ) B(s) B(s),这样可以减少方差。此时策略梯度为:
在这里插入图片描述

B ( s ) = v π θ ( s ) B(s)=v_{\pi_\theta}(s) B(s)=vπθ(s) A π θ ( s , a ) = q ω ( s , a ) − v π θ ( s ) A^{\pi_\theta}(s,a)=q_\omega(s,a)-v_{\pi_\theta}(s) Aπθ(s,a)=qω(s,a)vπθ(s),其中 A π θ ( s , a ) A^{\pi_\theta}(s,a) Aπθ(s,a)称为优势函数,它表征一个状态-动作对相对于平均状态-动作对的好坏程度。如果优势函数大于零,则说明该动作比平均动作好,如果优势函数小于零,则说明当前动作还不如平均动作好。

Actor中参数 θ \theta θ的更新方式为:
在这里插入图片描述
Critic中不再使用参数 ω \omega ω,而是使用参数 v v v。参数 v v v的更新方式为:
在这里插入图片描述
其中:
在这里插入图片描述,
在这里插入图片描述
A2C的基本结构如下:
在这里插入图片描述

Asynchronous Advantage Actor-Critic(A3C)

A3C全称为 Asynchronous Advantage Actor-Critic ,中文名字是异步优势动作评价算法。因为该算法的前三个单词的首字母都是A,所以简写为A3C。相比Actor-Critic,A3C的优化主要有3点,分别是异步训练框架,网络结构优化,Critic评估点的优化。其中异步训练框架是最大的优化。
在这里插入图片描述
A3C使用异步训练框架,基本框架还是AC框架。不再利用单个线程,而是利用多个线程。每个线程相当于一个智能体在随机探索,多个智能体共同探索,并行计算策略梯度,维持一个总的更新量。公共部分的网络模型就是我们要学习的模型,而线程里的网络模型主要是用于和环境交互使用的,这些线程里的模型可以帮助线程更好的和环境交互,拿到高质量的数据帮助模型更快收敛。
在这里插入图片描述
第二个优化也是网络结构的优化。在AC框架中Actor和Critic是互相分开的,而在A3C中将Actor、Critic两个网络放在了一起。如上图所示,输入状态 s s s,输出策略 π \pi π和价值 v v v。当然也可以将Actor和Critic看成两个独立的部分。

第三个优化就是Critic评估点的优化。在单步采样中,优势函数 A ( s , t ) A(s,t) A(s,t)去掉动作可以表示为:
在这里插入图片描述
在A3C中采用多步采样,以加速收敛。此时优势函数为:
在这里插入图片描述
在A3C的目标函数(损失函数)中,加入策略函数 π \pi π的熵项,系数为c。
在这里插入图片描述
A3C算法的伪代码如下图所示:
在这里插入图片描述
在这里插入图片描述

A2C(Advantage Actor-Critic)算法是一种常用的强化学习算法,旨在通过同时训练一个策略网络(Actor)和一个价值网络(Critic)来实现优化。 在A2C算法中,Actor网络用于学习动作策略,而Critic网络用于评估状态的价值。Actor网络根据当前状态选择一个动作,并生成一个策略分布。Critic网络根据当前状态估计该状态的价值。这两个网络共同工作,通过优化目标函数来提高策略和价值的准确性。 A2C算法的训练过程可以分为两个步骤:生成样本和更新参数。生成样本时,Actor网络根据当前状态生成动作,并与环境进行交互,得到下一个状态和奖励。然后,使用这些样本计算出优势函数,即当前状态的动作价值与预期价值之间的差异。 更新参数时,使用生成的样本来计算Actor和Critic网络的损失函数。Actor损失函数一般使用策略梯度方法,通过最大化优势函数来更新策略网络的参数。Critic损失函数一般使用均方误差损失,通过最小化实际价值与预期价值之间的差异来更新价值网络的参数。这两个网络的参数可以使用梯度下降法进行更新。 与A3C(Asynchronous Advantage Actor-Critic)算法不同,A2C算法是一种1-step方法,即每次更新只考虑当前的状态和动作。而A3C算法是一种n-step方法,考虑了未来多个状态和动作的影响。因此,A3C相比于A2C在更新参数的方式上有所不同,但都是基于Actor-Critic的思想。 总结来说,A2C算法是一种结合了Actor和Critic网络的强化学习算法,通过不断生成样本和更新网络参数来提高策略和价值的准确性。它是一种1-step方法,与A3C算法相比,在更新参数的方式上有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [强化学习算法AC系列详解](https://blog.csdn.net/qq_29176963/article/details/104975905)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值