机器学习 REINFORCE 算法怎么实现?

文章导读
Previous Quiz Next 什么是 REINFORCE 算法? REINFORCE 算法 是强化学习中的一种 policy gradient 算法,基于 Monte Carlo 方法。该算法的一种简单实现方式是通过 gradient ascent 来提升 p
📋 目录
  1. 什么是 REINFORCE 算法?
  2. REINFORCE 算法的关键概念
  3. REINFORCE 算法如何工作?
  4. REINFORCE 算法的优势
  5. REINFORCE 算法的缺点
A A

REINFORCE 算法



Previous
Quiz
Next

什么是 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 计算都需要一组新的样本,可能不如多次利用样本的技术高效。