Policy-based 强化学习

Agent 需要由一个神经网络来近似的策略函数控制。近似策略函数的神经网络称为 Policy Network策略网络

Policy Network

用神经网络 \(π (a | s; 𝛉)\)(即 Policy Network )来近似策略函数 \(π (a | s)\) 。其中 \(𝛉\) 是该神经网络的参数。

必须满足 \(∑_{a ∈ 𝒜} π(a | s; 𝛉) = 1\) 。

Policy Learning

状态价值函数

\[ V_π(s_t) = 𝔼(Q_π(s_t, A)) = ∑_a π(a | s_t) ⋅ Q_π(s_t, a) \]

用神经网络拟合:

\[ V_π(s_t; 𝛉) = ∑_a π(a | s_t; 𝛉) ⋅ Q_π(s_t, a) \]

Policy Learning 的任务:Learn \(𝛉\) that maximizes \( 𝑱(𝛉) = 𝔼_S(V(S; 𝛉))\).

改进 \(𝛉\) 的流程:( Policy Gradient Ascent策略梯度算法

  • Observe state \(s\);

  • Update policy by: \(𝛉 ← 𝛉 + β ⋅ \frac{𝜕V(s; 𝛉)}{𝜕𝛉}\).

\(\frac{𝜕V(s; 𝛉)}{𝜕𝛉}\) 称为 Policy Gradient ,策略梯度。 \(β\) 也是学习率。

近似计算 Policy Gradient

计算策略梯度公式的两种等价形式:

\[ \frac{𝜕V(s; 𝛉)}{𝜕𝛉} = ∑_a \frac{𝜕π(a | s; 𝛉)}{𝜕𝛉} ⋅ Q_π(s, a)~~~~~~~~~~~~~~~~~~~(1) \]
\[ \frac{𝜕V(s; 𝛉)}{𝜕𝛉} = 𝔼_{A∼π(⋅ | s; 𝛉)}[\frac{𝜕\mathrm{log}π(A | s; 𝛉)}{𝜕𝛉} ⋅ Q_π(s, A)]~~~(2) \]

用第一种公式计算策略梯度,适合离散 action :

  • 计算 \(\mathbf{f}(a, 𝛉) = \frac{𝜕π(a | s; 𝛉)}{𝜕𝛉} ⋅ Q_π(s, a)\) ,对于所有 action \(a ∈ 𝒜\);

  • 计算策略梯度:\(\frac{𝜕V(s; 𝛉)}{𝜕𝛉} = ∑_{a ∈ 𝒜} \mathbf{f}(a, 𝛉)\) 。

用第二种公式计算策略梯度,适合连续 action(蒙特卡洛近似):

  • 根据 PDF \(π(⋅ | s; 𝛉)\) 随机取样一个 action \(\hat{a}\) ;

  • 计算 \(𝐠(\hat{a}, 𝛉) = \frac{𝜕\mathrm{log}π(\hat{a} | s; 𝛉)}{𝜕𝛉} ⋅ Q_π(s, \hat{a})\) ;

  • 用 \(𝐠(\hat{a}, 𝛉)\) 近似策略梯度 \(\frac{𝜕V(s; 𝛉)}{𝜕𝛉}\) 。

蒙特卡洛近似(Monte Carlo Approximation)是一种基于随机抽样(或伪随机数)的数值计算方法,又称统计模拟法。其基本原理为:基于大数定律和中心极限定理,当样本量足够大时,随机事件发生的频率近似等于其概率。 第二个方法也适用于离散 action 的策略梯度。

用 Policy Gradient 更新 Policy Network

  • Observe state \(s\);

  • Randomly sample action \(a_t\) according to \(π(⋅ | s_t; 𝛉_t)\);

  • Compute \(q_t ≈ Q_π(s_t, a_t)\) (some estimate);

  • Differentiate policy network: \(𝐝_t = \frac{𝜕 \mathrm{log}(a_t | s_t, 𝛉)}{𝜕 𝛉}|_{𝛉 = 𝛉_t}\);

  • (Approximate) policy gradient: \(𝐠(a_t, 𝛉_t) = q_t ⋅ 𝐝_{θ,t}\);

  • Update policy network: \(𝛉_{t + 1} = 𝛉_t + β ⋅ 𝐠(a_t, 𝛉_t)\).

但是,第三步中的 \(q_t\) 要如何计算呢?有两种方法:

  1. Reinforce 算法:

  • 玩完整个游戏并生成 trajectory :

\[ s_1, a_1, r_1, s_2, a_2, r_2, ⋯, s_T, a_T, r_T \]
  • 计算 discounted return \(u_t = ∑\limits_{k = t}^T γ ^ {k - t} r_k\) for all \(t\) ;

  • 由于 \(Q_π(s_t, a_t) = 𝔼[U_t]\) ,可以使用 \(u_t\) 近似 \(Q_π(s_t, a_t)\) ;

  • \(q_t = u_t\) 。

  1. 用另一个神经网络近似 \(Q_π\) —— actor-critic method

作于 2026-4-3