[RL Notes] 使用监督学习估计价值函数
1. 参数化函数
之前介绍的学习算法都是基于表格的,问题涉及的状态和动作空间都很小,价值函数可以用表格保存下载。而实际场景中,往往涉及大量的状态和动作,难以用表格来保存价值函数。
除了用表格的方式,我们可以用任意实现状态到价值的映射的函数对价值函数进行估计,但如果仅仅是映射,每个状态对应一个固定的价值,就无法在学习过程中更新对价值进行更新。由此引入参数化的函数
\begin{equation}
\hat{v}(s, \boldsymbol{\mathrm{w}}) \approx v_\pi(s) \tag{1}
\end{equation}
其中 $\boldsymbol{\mathrm{w}}$ 表示一组实数权重,用来调整函数的输出。
2. 线性价值函数逼近
使用参数化函数近似价值函数的一种最简单的方法是使用权重的线性函数来表示状态的价值,称为线性价值函数逼近(linear value function approximation),即使用权重乘以状态的某些属性(称为特征),表示为
\begin{equation}
\hat{v}(s, \boldsymbol{\mathrm{w}}) \doteq \sum w_i x_i(s) = \langle \boldsymbol{\mathrm{w}}, \boldsymbol{\mathrm{x}}(s) \rangle \tag{2}
\end{equation}
其中 $\boldsymbol{\mathrm{x(s)}}$ 是状态 $s$ 的特征向量。
表格型价值函数可以表示为线性函数的形式。例如对于价值函数 $v(s)$,只需构造特征 $\boldsymbol{\mathrm{x}}(s_i)$ 为状态 $s_i$ 的指示函数,即 $\boldsymbol{\mathrm{x(s_i)}}$ 中只有第 $i$ 个元素为 $1$,其余元素为 $0$,如
\begin{equation}
\boldsymbol{\mathrm{x}}(s_i) = \begin{bmatrix}0 & 0 & \cdots & 1 & 0 & \cdots & 0\end{bmatrix}^\mathsf{T}
\end{equation}
此时权重 $\boldsymbol{\mathrm{w}}$ 的第 $i$ 个元素即为 $v(s_i)$。
对特征的选择决定了价值函数的形式,线性价值函数逼近依赖于好的特征选择。
3. 非线性价值函数逼近
类似的参数化函数还有很多,例如神经网络就是一种非线性的函数逼近,网络的输入为状态,输出为状态的价值。
4. 泛化和区分
函数逼近的一个关键问题是如何在状态间泛化(generalization)。在策略评价过程中,泛化指的是在更新一个状态的价值估计时,也对另一个状态的价值估计产生影响。例如对于回收机器人,机器人可能位于目标西方 5 米,或者位于目标东方 5 米,这是两个不同的状态,在没有障碍物的情况下,机器人从这两个状态到达目标的耗时相同,这两个状态具有相同的价值,我们希望价值函数能够在这两个状态间泛化。通过泛化,可以更好地使用已有的经验,从而加速学习。虽然机器人没有访问过目标南方 5 米的位置,但只要到过西方 5 米或东方 5 米的位置,并能进行泛化,就可以得到南方 5 米状态的价值。
除了要泛化,函数还应该能根据其他信息对状态进行区分(discrimination),即通过状态价值区别两个状态。例如上面回收机器人的例子,机器人可以从目标西方 5 米直接到达目标处,而从东方 5 米的位置到目标之间存在障碍物,此时西方 5 米和东方 5 米这两个状态应具有不同的价值。
通过泛化和区分能力的程度,可以对各种方法进行分类。表格方法具有高区分能力,但每个状态对应一个价值,完全不能泛化。另一个极端是让所有状态具有相同的价值,完全泛化但状态间没有区分。理想的方法具有高泛化和高区分,但通常难以达到,需要在泛化和区分间做出取舍,例如将相似的状态合并并赋予相同的价值。
5. 使用监督学习进行价值估计
策略评价过程可以表示为监督学习的形式。例如蒙特卡洛方法使用回报的样本估计价值函数,对于一系列状态和回报
\begin{align}
\{(S_1, G_1), (S_2, G_2), (S_3, G_3), \cdots \}
\end{align}
将状态作为输入,将价值作为目标,价值估计就变成了监督学习的问题。我们期望在使用足够多的样本进行训练后,能够得到对状态期望回报的足够好的估计。
时序差分也可以用类似的方式转换为监督学习问题,此时的数据为状态和单步自举回报
\begin{align}
\{\big(S_1, \gamma \hat{v}(S_2, \boldsymbol{\mathrm{w}})\big), \big(S_2, \gamma \hat{v}(S_3, \boldsymbol{\mathrm{w}})\big), \big(S_3, \gamma \hat{v}(S_4, \boldsymbol{\mathrm{w}})\big), \cdots \}
\end{align}
在强化学习中,智能体与环境交互,不断地产生新数据,数据之间具有相关性,这就需要所使用的监督学习方法可以在线学习,并适用于时间上相关的数据。因此,虽然原则上监督学习中所有函数逼近的方法都可以用于策略评估,但有一些并不适合。例如时序差分方法可以自举,其目标 $\gamma \hat{v}(S, \boldsymbol{\mathrm{w}})$ 依赖于本身的估计,权重 $\boldsymbol{\mathrm{w}}$ 在学习的过程中会不断更新,目标也会随之不断变化,而监督学习通常会使用固定的真实值作为目标,并不适合不断变化或根据自身估计产生的目标。