REINFORCE 算法
什么是 REINFORCE 算法?
REINFORCE 算法 是强化学习中的一种 policy gradient 算法,基于 Monte Carlo 方法。该算法的一种简单实现方式是通过 gradient ascent 来提升 policy,直接增加期望的累积奖励。该算法不需要环境的 model,因此被归类为 model-free 方法。
REINFORCE 算法的关键概念
以下简要描述了与 REINFORCE 算法相关的几个关键概念 −
- Policy Gradient 方法 − REINFORCE 算法是一种 policy gradient 方法,这类算法通过遵循期望累积奖励的 gradient 来提升 policy。
- Monte Carlo 方法 − REINFORCE 算法是 Monte Carlo 方法的一种形式,因为它使用采样来评估所需的量。
REINFORCE 算法如何工作?
REINFORCE 算法由 Ronald J. Williams 于 1992 年提出。该算法的主要目标是通过调整 policy 参数来最大化期望的累积奖励。该算法训练 agent 在环境中做出序贯决策。REINFORCE 算法的逐步分解如下 −
Episode 采样
算法首先采样一个完整的与环境的交互 episode,其中 agent 遵循其当前 policy。一个 episode 由一系列状态、动作和奖励组成,直到状态终止。
状态、动作和奖励的轨迹
agent 记录交互轨迹 − (s1,a1,r1,......st,at,rt),其中 s 表示状态,a 表示采取的动作,r 表示每步获得的奖励。
Return 计算
Return Gt Return 表示 agent 从时间 t 开始期望获得的累积奖励。
Gt = rt + γrt+1 + γ2rt+2
计算 Policy Gradient
计算期望 return 相对于 policy 参数的 gradient。为实现这一点,需要计算所选动作序列的 log likelihood 的 gradient。
更新 policy
在计算期望累积奖励的 gradient 后,向增加期望奖励的方向更新 policy 参数。
重复上述步骤直到状态终止。与关注即时奖励的 temporal difference learning(Q-learning 和 SARSA)不同,REINFORCE 使 agent 能够从完整的状态、动作和奖励序列中学习。
REINFORCE 算法的优势
REINFORCE 算法的一些优势包括 −
- Model-free − REINFORCE 算法不需要环境的 model,适用于环境未知或难以建模的情况。
- 简单直观 − 该算法易于理解和实现。
- 能够处理高维动作空间 − 与 value-based 方法相比,REINFORCE 算法可以处理连续和高维动作空间。
REINFORCE 算法的缺点
REINFORCE 算法的一些缺点包括 −
- 高方差 − REINFORCE 算法的 gradient 估计可能存在显著方差,这会减慢学习过程并导致不稳定。
- 样本利用效率低 − 该算法每次 gradient 计算都需要一组新的样本,可能不如多次利用样本的技术高效。