最近读论文看到了强化学习中的Actor-Critic算法。因此了解一下这方面的知识,并记录下来,以防忘记。文章中部分内容也借鉴了其他优秀的博主。
一、简介
Actor-Critic 算法是一种综合了策略迭代和价值迭代的集成算法。Actor是利用策略梯度算法实现,Critic使用时序差分实现。Actor-Critic 算法的组成部分为:
-
Actor(策略网络):Actor是策略函数 π θ ( s ) π_θ(s) πθ(s),是一个神经网络,它负责在给定状态下选择动作,输出每个动作的概率分布。该网络的训练目标是最大化累计回报的期望。
Critic(价值网络):Critic是值函数 V π ( s ) V_π(s) Vπ(s),也是一个神经网络,它估计给定状态的价值(状态值)或某个特定动作的价值(动作值)。
二、策略梯度法(Policy Gradient)
策略梯度方法的核心思想是直接优化策略,而不是通过估计价值函数间接优化策略。
具体推导可参考这篇文章:【详解+推导!!】Policy Gradient 策略梯度法
策略梯度法的主要过程是:
- 初始化一个策略网络 θ θ θ
- 用这个策略网络进行 N N N次游戏,产生 N N N个 τ τ τ

- 利用这 N N N个 τ τ τ进行梯度上升,调整策略网络的参数:


- 再如此重复2、3步。
三、Q-Learning
Q-learning 是一种无模型的、基于价值的强化学习算法,旨在通过学习 Q 值函数来找到最优策略。Q-learning 不需要环境的模型(即不知道状态转移概率),它通过与环境交互获得奖励信息来进行学习。
具体推导可参考这篇文章:Q Learning概念、更新、代码实现,文章讲得很直白易懂。
大致过程如下:

四、Actor-Critic 算法
具体可以看这篇文章,我认为比较好懂:【深度强化学习】(4) Actor-Critic 模型解析,附Pytorch完整代码
Actor网络的优化目标如下:
L a c t o r = 1 N ∑ i N l o g π ∗ ( s t , a t ) ( G t − V ( s t ) ) L_{actor} = \frac{1}{N}\sum_{i}^Nlogπ_*(s_t,a_t)(G_t-V(s_t)) L

最低0.47元/天 解锁文章
938

被折叠的 条评论
为什么被折叠?



