策略学习—笔记
策略函数
策略函数(Policy Function)是强化学习中的一个核心概念,定义了智能体在给定状态下选择动作的规则或策略。策略函数决定了智能体如何行动,以期在与环境的交互中获得最大化的累计奖励。策略函数是一个概率密度函数(PDF)。
策略函数的基本类型
策略函数通常分为两种主要类型:确定性策略和随机性策略。
-
确定性策略(Deterministic Policy):
-
确定性策略函数直接映射状态到具体的动作。
对于每个状态 s ,策略函数 π ( s ) 返回一个具体的动作 a : π ( s ) = a 对于每个状态 s ,策略函数 \pi(s) 返回一个具体的动作 a :\pi(s) = a 对于每个状态s,策略函数π(s)返回一个具体的动作a:π(s)=a -
这种策略简单直接,但在某些情况下可能不足以应对复杂或随机的环境。
-
-
随机性策略(Stochastic Policy):
- 随机性策略函数为每个状态 s 提供一个动作概率分布。智能体根据这个概率分布选择动作。
对于每个状态 s ,策略函数 π ( a ∣ s ) 返回选择动作 a 的概率: π ( a ∣ s ) = P ( A = a ∣ S = s ) 对于每个状态 s ,策略函数 \pi(a \mid s) 返回选择动作 a 的概率:\pi(a \mid s) = P(A = a \mid S = s) 对于每个状态s,策略函数π(a∣s)返回选择动作a的概率:π(a∣s)=P(A=a∣S=s)
随机性策略能够处理环境中的不确定性,并且有助于智能体在探索和利用之间找到平衡。
- 随机性策略函数为每个状态 s 提供一个动作概率分布。智能体根据这个概率分布选择动作。
策略函数的学习与优化
在强化学习中,智能体的目标是通过学习和优化策略函数来最大化其长期累计奖励。策略函数的优化通常通过以下几种方法实现:
-
策略评估(Policy Evaluation):
- 在策略评估阶段,智能体根据当前策略 ( \pi ) 估计每个状态的价值函数 ( V^\pi(s) ) 或动作价值函数 ( Q^\pi(s, a) )。这一步的目的是评估在当前策略下,状态或状态-动作对的预期回报。
-
策略改进(Policy Improvement):
- 在策略改进阶段,智能体根据策略评估的结果更新策略,使其在当前状态下选择的动作能够最大化预期回报。这一步的目标是找到更好的策略 ( \pi’ )。
-
策略迭代(Policy Iteration):
- 策略迭代是策略评估和策略改进的结合。智能体通过反复进行策略评估和策略改进,逐步逼近最优策略 ( \pi^* )。
-
价值迭代(Value Iteration):
- 价值迭代直接利用贝尔曼方程迭代更新价值函数,并通过选择在每个状态下最大化价值函数的动作来更新策略。
-
策略梯度方法(Policy Gradient Methods):
- 在策略梯度方法中,智能体直接优化策略函数,通常通过最大化累计奖励的期望值来调整策略函数的参数。这种方法特别适合处理高维、连续的动作空间。
策略函数在不同算法中的实现
- Q-learning:尽管 Q-learning 主要是基于价值函数的算法,但它隐含了一个确定性策略函数,即在每个状态下选择 Q 值最大的动作。
- SARSA:SARSA 也是一种基于价值函数的算法,但它使用当前策略进行评估和更新,因此策略函数可以是确定性的也可以是随机性的。
- 深度强化学习(如 DQN):在 DQN 中,策略函数通过神经网络来近似和表示,网络的输出可以是状态到动作的映射(确定性策略)或状态到动作概率分布的映射(随机性策略)。
- 策略梯度算法(如 REINFORCE, PPO):这些算法直接优化策略函数,其策略通常由神经网络表示,并通过梯度下降法进行优化。
策略函数的应用
策略函数在各种强化学习应用中起着关键作用,包括但不限于:
- 游戏AI:学习和优化游戏中不同状态下的动作选择。
- 自动驾驶:制定车辆在复杂交通环境中的驾驶策略。
- 机器人控制:设计机器人在不确定环境中的动作策略,以完成特定任务。
- 投资决策:在金融市场中选择最优投资策略,以实现收益最大化。
总结
策略函数在强化学习中决定了智能体如何在给定状态下选择动作,直接影响了智能体的行为和最终表现。通过优化策略函数,智能体可以逐步学习到在复杂、不确定的环境中取得最佳表现的策略。
策略学习
策略学习(Policy Learning)是强化学习中的一个关键过程,旨在学习和优化策略函数,使得智能体能够在与环境的交互中最大化累计奖励。策略学习可以通过直接或间接的方法来实现,具体方法取决于问题的特性和应用场景。
策略学习的主要方法
策略学习通常分为以下几种主要方法:
1. 策略梯度方法(Policy Gradient Methods)
策略梯度方法直接优化策略函数,通过梯度上升或下降来调整策略参数,使得智能体的期望奖励最大化。这些方法适用于高维、连续的动作空间。
-
REINFORCE算法:
-
这是最基本的策略梯度方法之一。REINFORCE通过采样得到的轨迹来估计策略的梯度,并更新策略参数。
-
更新公式为:
θ ← θ + α ∑ t = 0 T ∇ θ log π θ ( a t ∣ s t ) G t 其中 G t 是从时间步 t 开始的累计奖励, α 是学习率。 \theta \leftarrow \theta + \alpha \sum_{t=0}^{T} \nabla_\theta \log \pi_\theta(a_t \mid s_t) G_t \\其中 G_t 是从时间步 t 开始的累计奖励,\alpha 是学习率。 θ←θ+αt=0∑T∇θlogπθ(at∣st)Gt其中Gt是从时间步t开始的累计奖励,α是学习率。
-
-
优势行为者-评论家(Advantage Actor-Critic, A2C/A3C):
-
A2C 和 A3C 是策略梯度方法的改进版本,结合了策略梯度和价值函数估计。行为者(Actor)负责更新策略,评论家(Critic)负责评估策略的价值函数。
-
通过引入优势函数 A ( s , a ) = Q ( s , a ) − V ( s ) 来减少方差,提升学习效率。 通过引入优势函数 A(s, a) = Q(s, a) - V(s) 来减少方差,提升学习效率。 通过引入优势函数A(s,a)=Q(s,a)−V(s)来减少方差,提升学习效率。
-
-
近端策略优化(Proximal Policy Optimization, PPO):
- PPO 是一种改进的策略梯度算法,通过限制每次更新的步长来保持策略稳定性。PPO 使用一个“剪切”损失函数来控制策略更新的幅度,从而避免过大的参数更新导致策略崩溃。
2. 基于值的策略学习
基于值的方法先学习状态价值函数 ( V(s) ) 或行动价值函数 ( Q(s, a) ),然后根据价值函数推导出策略。
-
Q-learning:
-
经典的Q-learning算法使用状态-动作对的价值函数 ( Q(s, a) ) 来估计每个动作的长期回报,并通过贝尔曼方程不断更新 ( Q ) 值。
-
策略为:
π ( s ) = arg max a Q ( s , a ) \pi(s) = \arg\max_a Q(s, a) π(s)=argamaxQ(s,a)
-
-
SARSA:
-
SARSA 是一种基于值的策略学习方法,策略更新基于智能体的当前策略,而不是Q-learning中的贪婪策略。
-
策略更新公式为:
Q ( s t , a t ) ← Q ( s t , a t ) + α [ r t + 1 + γ Q ( s t + 1 , a t + 1 ) − Q ( s t , a t ) ] Q(s_t, a_t) \leftarrow Q(s_t, a_t) + \alpha \left[ r_{t+1} + \gamma Q(s_{t+1}, a_{t+1}) - Q(s_t, a_t) \right] Q(st,at)←Q(st,at)+α[rt+1+γQ(st+1,at+1)−Q(st,at)]
-
3. 混合方法
混合方法结合了策略梯度方法和基于值的方法,利用两者的优势进行策略学习。
-
深度Q网络(Deep Q-Network, DQN):
-
DQN 结合了Q-learning和深度神经网络,用于在高维状态空间中学习价值函数。尽管DQN本质上是基于值的方法,但可以看作是一种隐式策略学习方法。
-
策略为:
π ( s ) = arg max a Q ( s , a ; θ ) 其中 θ 是神经网络的参数。 \pi(s) = \arg\max_a Q(s, a; \theta) \\其中 \theta 是神经网络的参数。 π(s)=argamaxQ(s,a;θ)其中θ是神经网络的参数。
-
-
深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG):
-
DDPG 结合了DQN的思想和策略梯度方法,用于处理连续动作空间。它使用两个网络:一个用于策略(Actor),一个用于价值函数(Critic)。
-
策略为:
π ( s ) = μ ( s ∣ θ μ ) 其中 θ μ 是策略网络的参数。 \pi(s) = \mu(s \mid \theta^\mu) \\其中 \theta^\mu 是策略网络的参数。 π(s)=μ(s∣θμ)其中θμ是策略网络的参数。
-
策略学习的应用
策略学习在许多领域都有广泛的应用,包括:
- 自动驾驶:通过策略学习优化车辆的驾驶行为。
- 机器人控制:使机器人能够自主学习如何完成复杂任务,如抓取物体或导航。
- 游戏AI:训练智能体在复杂的游戏环境中制定获胜策略。
- 金融交易:通过学习历史数据和市场环境,优化交易策略以最大化收益。
总结
策略学习是强化学习中的核心任务,通过直接或间接的方法,智能体能够逐步优化其策略函数,最大化在环境中的长期奖励。策略梯度方法、基于值的方法以及混合方法提供了不同的工具和途径,使得策略学习在各种复杂的应用场景中成为可能。
笔记