《强化学习的数学原理》学习笔记(9-10)

内容包括策略梯度方法、Actor-Critic 方法,对应《强化学习的数学原理》9-10章。

九、策略梯度方法

1. 用函数表示策略

策略梯度方法直接对策略进行参数化,通过梯度上升法寻求最优参数 $\theta$。
$$
\pi(a|s, \theta)
$$

假设 $J(\theta)$ 是一个衡量指标,
$$
\theta = \theta + \alpha \nabla J(\theta)
$$

2. 定义最优策略指标

(1) 平均价值

$$
v_{\pi} = \sum_{s \in S} d(s) v_{\pi}(s) = E \left[ \sum_{t=0}^{\infty} \gamma^t R_{t+1} \right]
$$

(2) 平均奖励

$$
\overline{r_{\pi}} = \sum_{s \in S} d_{\pi}(s) \overline{r_{\pi}}(s) = E[\overline{r_{\pi}}(s)]
$$

逐层拆解:

$$
\overline{r_{\pi}}(s) = \sum_{a \in A} \pi(a|s) r(s, a)
$$

$$
r(s, a) = E[R|s, a] = \sum_{r} r p(r|s, a)
$$

无穷多步:

$$
\overline{r_{\pi}} = \lim_{n \to \infty} \frac{1}{n} E \left[ \sum_{k=1}^{n} R_{t+k} \right]
$$

(3) 两种度量本质等价
$$
\overline{r_{\pi}} = (1 - \gamma) v_{\pi}
$$

3. 目标函数梯度计算

根据策略梯度定理,目标函数的梯度可以转化为状态分布下的期望形式,从而避免对状态分布梯度的求解:
$$
\nabla_{\theta} J(\theta) = \sum_{s \in S} \eta(s) \sum_{a \in A} \nabla_{\theta} \pi(a|s, \theta) q_{\pi}(s, a)
$$

注:

  • $J(\theta)$ 可以是 $v_{\pi}$、$\overline{r_{\pi}}$ 或 $v_{\pi}$
  • “=” 可以是 相等、约等、成比例等于
  • $\eta$ 对不同目标函数分布不同

用期望表示:

$$
\nabla_{\theta} J(\theta) = E_{S \sim \eta, A \sim \pi(s, \theta)} [\nabla_{\theta} \ln \pi(A|S, \theta) q_{\pi}(S, A)]
$$

4. REINFORCE 算法

$$
\theta_{t+1} = \theta_t + \alpha \nabla_{\theta} \ln \pi(a_t|s_t, \theta_t) q_t(s_t, a_t)
$$

(对 $q_{\pi}$ 进行蒙特卡罗采样估计得到 $q_t$)


十、Actor-Critic 方法

1. QAC

最直接的结合方式,使用神经网络拟合 $q_t$ 值来指导策略(Actor)更新。
$$
\theta_{t+1} = \theta_t + \alpha \nabla_{\theta} \ln \pi(a_t|s_t, \theta_t) q_t(s_t, a_t)
$$

(用网络计算 $q_t$)

2. A2C

对于目标函数梯度:

为了进一步减小方差,引入基准值(Baseline) $b(s)$。
$$
\nabla_{\theta} J(\theta) = E_{S \sim \eta, A \sim \pi} [\nabla_{\theta} \ln \pi(A|S, \theta) (q_{\pi}(S, A) - b(s))]
$$

$b(s)$ 不影响均值,可减小方差,一般取 $b(s) = v_{\pi}(s)$。

优势函数:

$$
A = q_{\pi}(s, a) - v_{\pi}(s)
$$

平衡探索利用:

$$
\theta_{t+1} = \theta_t + \alpha \nabla_{\theta} \ln \pi(a_t|s_t, \theta_t) \delta_t(s_t, a_t)
$$

$$
\theta_{t+1} = \theta_t + \alpha \left( \frac{\delta_t(s_t, a_t)}{\pi(a_t|s_t, \theta_t)} \right) \nabla_{\theta} \pi(a_t|s_t, \theta_t)
$$

不需要额外网络,以 TD 目标代替 $q_{\pi}(s, a)$:

$$
\delta_t = r_{t+1} + \gamma v_t(s_{t+1}) - v_t(s_t)
$$

3. 重要性采样

当行为策略(产生数据的策略 $\beta$)与目标策略(待优化的策略 $\pi$)不同时,需要通过重要性采样比率进行修正,以实现 Off-policy 学习。
$$
E_{x \sim P_0} [x] = \sum_{x} P_0(x) x = \sum_{x} P_1(x) \frac{P_0(x)}{P_1(x)} x
$$

$$
E_{x \sim P_1} [f(x)] = \frac{1}{n} \sum_{i=1}^{n} \frac{P_0(x_i)}{P_1(x_i)} x_i
$$

4. off-policy actor-critic

结合重要性采样,Actor 可以利用非同策数据进行参数更新:
$$
\nabla_{\theta} J(\theta) = E_{S \sim \rho, A \sim \beta} \left[ \frac{\pi(A|S, \theta)}{\beta(A|S)} \nabla_{\theta} \ln \pi(A|S, \theta) (q_{\pi}(S, A) - v_{\pi}(S)) \right]
$$

$$
\theta_{t+1} = \theta_t + \alpha_{\theta} \left( \frac{\delta_t(s_t, a_t)}{\beta(a_t|s_t)} \right) \nabla_{\theta} \pi(a_t|s_t, \theta_t)
$$

5. DPG

对于高维或连续动作空间,输出概率分布(Stochastic)往往效率较低。确定性策略梯度让网络直接输出具体动作 $a$,并通过 $q$ 函数对动作的选择进行链式求导更新:
$$
J(\theta) = E[v_{\pi}(s)] = \sum_{s \in S} d_0(s) v_{\mu}(s)
$$

$$
\nabla_{\theta} J(\theta) = E_{s \sim \rho_{\mu}} [\nabla_{\theta} \mu(s) (\nabla_a q_{\mu}(s, a) |_{a=\mu(s)})]
$$

$$
\theta_{t+1} = \theta_t + \alpha_{\theta} \nabla_{\theta} \mu(s_t) (\nabla_a q_{\mu}(s_t, a) |_{a=\mu(s_t)})
$$