强化学习的蒙特卡罗方法
强化学习的蒙特卡罗方法直接从与环境交互过程中获得的经验序列中学习,而无需任何关于 Markov Decision Process (MDP) 转移的先验知识。
什么是蒙特卡罗方法?
在强化学习中,蒙特卡罗方法是一类算法,用于从真实经验或采样轨迹中估计状态、动作或状态-动作组合的价值。其主要思想是利用重复的随机采样来计算那些难以通过解析方法确定的值的数值估计。
蒙特卡罗方法中的关键概念
蒙特卡罗方法中使用的一些关键术语定义如下 −
- Episode(回合) − 这定义了从开始到终止状态(直到时间限制)的状态、动作和奖励序列。
- Return (G_t)(回报) − 在一个回合中从时间步 t 开始的累积总奖励。
- Value Function (V)(价值函数) − 一个预测特定状态或状态-动作对的期望奖励的函数。
蒙特卡罗策略评估
蒙特卡罗方法通过平均多个回合的回报来计算状态或动作的价值。其基本过程涉及模拟一个或多个回合,并使用结果来更新价值函数。
对于给定的状态 s,状态价值 V(s) 的蒙特卡罗估计为 −
$${V(s) = \frac{1}{N} \sum_{i=1}^{N} G_i}$$
其中,
- ${i}$ 是回合索引。
- ${s}$ 是状态索引。
- ${N}$ 是访问状态 ${s}$ 的回合数量。
- ${G_i}$ 是从访问状态 s 的第 i 个回合中观察到的折扣奖励之和。
每个回合都会有一个状态和奖励的序列。根据定义,我们可以从这些奖励中计算回报,即所有未来奖励之和。
估计的逐步过程
以下是蒙特卡罗方法的逐步过程描述 −
- 生成一个回合 − 智能体根据其策略与环境交互,生成一系列状态、动作和奖励。
- 确定回报 − 对于每个状态(或状态-动作对),计算从该点开始的总体回报(总奖励)。
- 更新价值评估 − 通过计算每个状态记录的奖励的平均值来更新价值函数。
Off-Policy 和 On-Policy 方法
在蒙特卡罗方法中,我们可以通过检查用于生成回合的策略是否与正在改进的策略相同,来区分 on-policy 和 off-policy 方法。
On-policy 方法
用于生成回合的策略与当前正在评估的策略相同。这表明智能体从其根据当前策略采取的动作所产生的经验中学习。
例如,在 First-Visit Monte Carlo 中,状态首次出现在回合中时,其奖励用于更新价值估计。
Off-Policy 方法
用于生成回合的策略可以与正在改进的策略不同。这允许智能体从任何策略生成的轨迹中学习,而不仅仅是它试图优化的那个。
例如,当回合在与目标策略不同的行为策略下生成时,可以使用采样来调整对价值函数的更新。
Monte Carlo Control
Monte Carlo control 算法旨在估计 value function,并通过迭代方式改进 policy。这主要通过以下方法实现 −
- Monte Carlo Exploration − 强化学习中的一个常见挑战是保持 exploration 和 exploitation 之间的适当平衡。Monte Carlo 技术采用 epsilon-greedy 或 SoftMax 等 exploration 方法,在从积累的经验中学习的过程中促进 exploration。
- Monte Carlo Control − 主要思想是通过改进 action-value function Q(s, a) 来改进 policy,其中 Q(s, a) 表示从状态 ${s}$ 执行动作 ${a}$ 后获得的预期奖励。
Monte Carlo Control Algorithm
以下是 Monte Carlo control 的算法 −
- 为所有 state-action 对初始化 ${Q(s, a)}$ 值和 ${\pi(s)}$ - policy。
- 对于每个 episode,按照 policy ${\pi}$ 生成 state-reward-action 序列。
- 计算 episode 中每个 state-action 对 ${(s, a)}$ 的 return ${G_t}$。
使用每个 state-action 对的 return ${G_t}$ 的平均值更新 ${Q(s,a)}$ −
$${Q(s, a)= Q(s, a)+ \alpha(G_t - Q(s, a))}$$
- 通过选择使 ${Q(s, a)}$ 最小化的动作 a 来改进 policy ${\pi(s)}$。
该过程迭代重复,直到 policy 改进并收敛到最优 policy。
Monte Carlo Methods 的应用
Monte Carlo methods 在各种强化学习场景中被广泛使用,尤其是在环境不明确、agent 需要依赖经验而非 model 的情况下。一些应用包括 −
- Games − Monte Carlo 技术可用于设计棋类游戏、纸牌游戏以及其他需要战略决策的各种游戏。
- Robotics − Monte Carlo 技术帮助机器人中的 agent 通过探索周围环境并从真实世界交互中获得洞见,来开发 navigation、manipulation 和其他任务 policy。
- Financial Modeling − Monte Carlo 技术可用于模拟股票价格、确定期权价值并优化投资组合,尤其是在传统方法因金融市场复杂性而难以应对时。
Monte Carlo Methods 的局限性
Monte Carlo methods 存在一些需要解决的局限性,包括 −
- High Variance − 由于不同 episode 的结果可能差异较大,尤其在 episode 较少时,其估计值可能表现出高方差。
- Inefficiency with long episodes − 对于长 episode 或延迟奖励,它效率较低,因为需要等待 episode 结束才能调整值。
- Lack of Bootstrap − 与其他技术不同,它不进行 bootstrap(使用其他估计值来修正估计值),这在广阔的状态空间中会减缓学习过程。