4 核心算法
我们将算法分为三类:基于价值的方法、基于策略的方法和混合算法。
4.1 基于价值的方法Value-based
一个重要的突破是Q-learning的引入,它是一种无模型算法,被视为off-policy时间差分(TD)学习。TD学习无疑是最基础和创新的概念之一。结合蒙特卡罗(MC)方法和动态规划(DP)方法在这一方法中得到了应用。一方面,类似于MC方法,TD学习可以用于从未经处理的经验中学习,而不需要环境模型。另一方面,TD算法也类似于DP方法,因为它们通过使用先前学到的价值估计来进行预测,而不需要为了进行预测而要求得到确定的结果(这一过程被称为引导(bootstrapping))。Q-learning使得智能体能够从经验中学习状态动作对的价值,而不需要环境模型。它基于以下原则进行工作:学习动作价值函数,期望在每个状态下采取一个给定动作,并在之后遵循一个固定策略。Q-learning算法的核心是更新Q值(状态-动作对的价值),学习到的动作价值函数,记作 Q Q Q,近似了 q ∗ q^* q∗,即最优动作价值函数。通过这种方式,算法的分析得到了简化,但策略仍然会影响这一过程,即决定了哪些状态-动作对被访问并随后更新。
Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ max a Q ( S t + 1 , a ) − Q ( S t , A t ) ] (34) Q(S_t, A_t) \leftarrow Q(S_t, A_t) + \alpha \left[ R_{t+1} + \gamma \max_a Q(S_{t+1}, a) - Q(S_t, A_t) \right] \tag{34} Q(St,At)←Q(St,At)+α[Rt+1+γamaxQ(St+1,a)−Q(St,At)](34)
文献中还介绍了其他类型的Q-learning,具有一些小的变化和改进,如:双Q-learning,它解决了Q-learning中的过度估计偏差,分布式Q-learning,它通过模型返回分布而不是估计均值Q值,提供了更丰富的决策信息,以及更多类型。
另一个广泛使用的基于价值的算法是Deep Q-Networks深度Q网络(DQN),它将Q-learning与神经网络结合,直接从原始像素输入中学习控制策略。它使用卷积神经网络(CNN)处理这些输入,并通过经验重放机制来稳定学习,打破连续经验之间的相关性。目标网络(target network),更新较少,帮助稳定训练。DQN在各种Atari 2600游戏中达到了最新的最优表现,超越了之前的方法,并且在某些情况下,比专家更优秀,使用一致的网络架构和超参数跨不同游戏。DQN将引入的贝尔曼方程与深度学习方法(如损失函数和梯度下降)相结合,找到最优策略,如下所示:
L i ( θ i ) = E ( s , a , s ′ ) ∼ D [ ( y i − Q ( s , a ; θ i ) ) 2 ] (35) L_i(\theta_i) = \mathbb{E}_{(s,a,s')\sim D} \left[ (y_i - Q(s, a; \theta_i))^2 \right] \tag{35} Li(θi)=E(s,a,s′)∼D[(yi−Q(s,a;θi))2](35)
y i = r + γ max a ′ Q ( s ′ , a ′ ; θ − ) (36) y_i = r + \gamma \max_{a'} Q(s', a'; \theta^-) \tag{36} yi=r+γa′maxQ(s′,a′;θ−)(36)
∇ θ L i ( θ i ) = E ( s , a , s ′ ) ∼ D [ ( ( r + γ max a ′ Q ( s ′ , a ′ ; θ − ) − Q ( s , a ; θ ) ) ) ∇ θ Q ( s , a ; θ ) ] (37) \nabla_{\theta} L_i(\theta_i) = \mathbb{E}_{(s,a,s')\sim D} \left[ \left( (r + \gamma \max_{a'} Q(s', a'; \theta^-) - Q(s, a; \theta)) \right) \nabla_{\theta} Q(s, a; \theta) \right] \tag{37} ∇θLi(θi)=E(s,a,s′)∼D[((r+γa′maxQ(s′,a′;θ−)−Q(s,a;θ)))∇θQ(s,a;θ)](37)
与Q-learning类似,DQN也进行了更新。
表1: 核心强化学习算法
算法 | 类型 |
---|---|
1 Q-Learning | 无模型、离线、基于价值 |
2 SARSA (State-Action-Reward-State-Action) | 无模型、在线、基于价值 |
3 Expected SARSA | 无模型、在线、基于价值 |
4 REINFORCE | 无模型、在线、基于策略 |
5 Dyna-Q | 基于模型、离线、混合方法 |
6 DQN | 无模型、离线、基于价值 |
7 TRPO | 无模型、在线、基于策略 |
8 PPO | 无模型、在线、基于策略 |
9 SAC (Soft Actor-Critic) | 无模型、离线、混合方法 |
**10 A3C ** | 无模型、在线、混合方法 |
11 A2C | 无模型、在线、混合方法 |
12 DDPG (Deep Deterministic Policy Gradient) | 无模型、离线、基于策略 |
13 TD3 (Twin Delayed Deep Deterministic Policy Gradient) | 无模型、离线、基于策略 |
4.2 基于策略的方法Policy-based
本节分析一些基于策略的方法。基于策略的方法 是RL的另一种基础方法,它更强调直接优化策略以选择智能体的动作。与基于价值的方法通过搜索隐含在任务中的价值函数再推导出最优策略不同,基于策略的方法直接对策略进行参数化和优化。这种方法在处理具有挑战性的环境(例如高维动作空间或策略本身具有随机性的场景)方面具备明显优势。基于策略的方法通过策略的参数化进行工作,通常表示为 π ( a ∣ s ; θ ) \pi(a|s; \theta) π(a∣s;θ)。这里, θ \theta θ 表示策略的参数, s s s 表示状态, a a a 表示动作。换句话说,它寻找能最大化期望累积奖励的最优参数 θ ∗ \theta^* θ∗。显然,这通常通过梯度上升方法,特别是显式计算期望奖励相对于策略参数的梯度的方法来实现,从而向奖励增加的方向调整参数 。
REINFORCE算法 是一种广泛使用的基于策略的算法。REINFORCE算法对RL做出了重要贡献,尤其在策略梯度方法的背景下。该算法通过沿期望奖励的梯度方向调整策略参数来优化期望累积奖励。它植根于随机策略框架,其中策略由参数 θ \theta θ定义,在给定当前状态的情况下提供动作的概率分布。REINFORCE算法的关键思想是利用对数似然梯度估计器更新策略参数 。期望奖励相对于策略参数 θ \theta θ的梯度表示为:
∇ θ J ( θ ) = E π [ ∇ θ log π θ ( a ∣ s ) G t ] (38) \nabla_{\theta} J(\theta) = \mathbb{E}_{\pi}\left[ \nabla_{\theta} \log \pi_{\theta}(a|s) G_t \right] \tag{38} ∇θJ(θ)=Eπ[∇θlogπθ(a∣s)Gt](38)
其中, π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s) 是参数为 θ \theta θ的策略在状态 s s s下采取动作 a a a的概率, G t G_t Gt 是从时间步 t t t开始获得的回报(即未来的累积奖励)。这个梯度估计成为参数更新规则的基础:
θ ← θ + α ∇ θ log π θ ( a ∣ s ) G t (39) \theta \leftarrow \theta + \alpha \nabla_{\theta}\log \pi_{\theta}(a|s) G_t \tag{39} θ←θ+α∇θlogπθ(a∣s)Gt(39)
其中 α \alpha α 是学习率。
另一种已被广泛应用于多种领域的算法是近端策略优化(Proximal Policy Optimization, PPO)。PPO是策略梯度方法中的一个显著进展。PPO旨在实现可靠的性能和更高的样本效率,解决了之前的策略优化算法(如Vanilla Policy Gradient (VPG)方法和Trust Region Policy Optimization (TRPO))的一些不足。使用策略梯度方法,策略参数通过估计策略的梯度来使用随机梯度上升法进行优化。常用的策略梯度估计器之一如下:
g ^ = E ^ t [ ∇ θ log π θ ( a t ∣ s t ) A ^ t ] (40) \hat{g} = \hat{\mathbb{E}}_t\left[\nabla_{\theta}\log \pi_{\theta}(a_t|s_t)\hat{A}_t\right] \tag{40} g^=E^t[∇θlogπθ(at∣st)A^t](40)
其中 π θ \pi_{\theta} πθ表示由 θ \theta θ参数化的策略,而 A ^ t \hat{A}_t A^t表示时间步 t t t处优势函数(Advantage function)的估计值。该估计器用于构建一个目标函数,其梯度对应于策略梯度估计器:
L P G ( θ ) = E ^ t [ log π θ ( a t ∣ s t ) A ^ t ] (41) L_{PG}(\theta) = \hat{\mathbb{E}}_t\left[\log \pi_{\theta}(a_t|s_t)\hat{A}_t\right] \tag{41} LPG(θ)=E^t[logπθ(at∣st)A^t](41)
PPO通过使用带有裁剪概率比率(clipped probability ratio)的替代目标(surrogate objective)简化了TRPO,允许对小批量数据进行多轮更新(multiple epochs of mini-batch updates)。为了保持学习稳定,应避免大的策略更新。
4.3 混合方法(演员-评论家方法)
在最后一组算法中,混合方法包括**异步优势演员-评论家(A3C)和优势演员-评论家(A2C)**方法。演员-评论家方法结合了基于价值的方法和基于策略的方法。实际上,这些方法由两个组成部分组成:演员(Actor),它基于策略选择动作;以及评论家(Critic),它基于价值函数评估动作。通过提供对所采取动作质量的反馈,评论家指导演员更新策略。因此,利用这种协同作用,学习变得更加稳定和高效,解决了纯策略或基于价值的方法的一些局限性。
A2C算法是A3C算法的同步变种.A2C保持了A3C的关键原则,通过同步多个智能体的更新简化了训练过程,从而有效地利用了两者的优点。演员-评论家架构结合了两大主要组成部分:演员,负责选择动作;以及评论家,负责评估动作,通过估计价值函数来进行反馈。演员根据计算的TD误差更新策略参数。评论家提供反馈,允许更稳定和高效的学习,相较于仅使用演员或评论家的方法。
优势估计是一种技术,旨在减少策略梯度更新的方差。优势函数 A ( s , a ) A(s,a) A(s,a)表示动作价值函数 Q ( s , a ) Q(s,a) Q(s,a)和价值函数 V ( s ) V(s) V(s)之间的差异。
优势函数定义如下:
A ( s , a ) = Q ( s , a ) − V ( s ) . (42) \mathcal{A}(s,a) = Q(s,a) - V(s). \tag{42} A(s,a)=Q(s,a)−V(s).(42)
通过使用优势函数,A2C关注于能够产生高于平均回报的动作,从而帮助更有效地更新策略。与A3C不同的是,A3C的多个智能体异步更新全局模型,而A2C同步了这些更新。多个智能体在并行环境中运行,收集经验并计算梯度,这些梯度随后被聚合并用于同步更新全局模型。这种同步机制减少了实现的复杂性,避免了异步更新中可能出现的问题,例如非确定性行为和梯度的潜在覆盖。
参考文献:https://arxiv.org/pdf/2408.07712
仅供学习使用,如有侵权,联系删除