本系列文章主要参考UIUC姜楠老师开设的cs542
根据上一章得到的界限,算法训练需要的样本数和状态空间大小呈多项式关系。对于某些状态空间很大的任务,一个行之有效的方法则是智能体能够利用先验知识从已学习到一个 状态泛化到另一个状态。而最简单的泛化方法就是状态抽象(state abstraction / state aggregation / state compression)。状态抽象是一个映射 ϕ \phi ϕ,能将原始状态空间 S \mathcal{S} S 映射到特定的有限的抽象状态空间 S ϕ \mathcal{S}_\phi Sϕ,即对于 S \mathcal{S} S 下的两个状态 s ( 1 ) s^{(1)} s(1) 和 s ( 2 ) s^{(2)} s(2),在 S ϕ \mathcal{S}_\phi Sϕ 下有 ϕ ( s ( 1 ) ) = ϕ ( s ( 2 ) ) ) \phi(s^{(1)})=\phi(s^{(2))}) ϕ(s(1))=ϕ(s(2))),然后再在 S ϕ \mathcal{S}_\phi Sϕ 下使用之前提及的表格类型方法,等价于增加了样本数量,提高样本效率。
显然,使用状态抽象后再使用之前的确定性等价方法,由于样本数量的增加,评估误差(estimation errors)则降低了。但是另一方面,假设将原始状态空间上两个差异非常大的状态映射为同一个状态,则训练出来的算法的近似误差(approximation error)就会较大。其中,近似误差是指模型的偏差,如对非线性问题用线性回归模型去近似,则存在近似误差;估计误差就是指模型的方差。而这方差会随着样本量的提升而减小。
精确抽象
下面先从松到紧,给出三种不同的状态抽象 ϕ \phi ϕ 的定义:
- 最优策略无关( π ∗ \pi^* π∗-irrelevant)的状态抽象:是指存在一个最优策略 π ∗ \pi^* π∗,使得对 ∀ s ( 1 ) , s ( 2 ) ∈ S \forall s^{(1)},s^{(2)} \in \mathcal{S} ∀s(1),s(2)∈S 且 ϕ ( s ( 1 ) ) = ϕ ( s ( 2 ) ) \phi(s^{(1)}) = \phi(s^{(2)}) ϕ(s(1))=ϕ(s(2)),都有 π M ∗ ( s ( 1 ) ) = π M ∗ ( s ( 2 ) ) \pi_M^*(s^{(1)}) = \pi_M^*(s^{(2)}) πM∗(s(1))=πM∗(s(2))。即要求只要策略相同的两个状态就可以合并;
- 最优值函数无关( Q ∗ Q^* Q∗-irrelevant)的状态抽象:是指对 ∀ s ( 1 ) , s ( 2 ) ∈ S \forall s^{(1)},s^{(2)} \in \mathcal{S} ∀s(1),s(2)∈S 且 ϕ ( s ( 1 ) ) = ϕ ( s ( 2 ) ) \phi(s^{(1)}) = \phi(s^{(2)}) ϕ(s(1))=ϕ(s(2)), ∀ a ∈ A \forall a \in \mathcal{A} ∀a∈A,都有 Q M ∗ ( s ( 1 ) , a ) = Q M ∗ ( s ( 2 ) , a ) Q_M^*(s^{(1)},a) = Q_M^*(s^{(2)},a) QM∗(s(1),a)=QM∗(s(2),a)。即不仅要求策略相同,还要求两个状态上所有动作的值相同才能合并;
- 环境模型无关(model-irrelevant)的状态抽象:是指对 ∀ s ( 1 ) , s ( 2 ) ∈ S \forall s^{(1)},s^{(2)} \in \mathcal{S} ∀s(1),s(2)∈S 且 ϕ ( s ( 1 ) ) = ϕ ( s ( 2 ) ) \phi(s^{(1)}) = \phi(s^{(2)}) ϕ(s(1))=ϕ(s(2)), ∀ a ∈ A \forall a \in \mathcal{A} ∀a∈A 且 x ′ ∈ S ϕ x' \in \mathcal{S}_\phi x′∈Sϕ,都有:
R ( s ( 1 ) , a ) = R ( s ( 2 ) , a ) , ∑ s ′ ∈ ϕ − 1 ( x ′ ) P ( s ′ ∣ s ( 1 ) , a ) = ∑ s ′ ∈ ϕ − 1 ( x ′ ) P ( s ′ ∣ s ( 2 ) , a ) R(s^{(1)},a) = R(s^{(2)},a), \\ \sum_{s' \in \phi^{-1}(x')}P(s'|s^{(1)},a) = \sum_{s' \in \phi^{-1}(x')}P(s'|s^{(2)},a) R(s(1),a)=R(s(2),a),s′∈ϕ−1(x′)∑P(s′∣s(1),a)=s′∈ϕ−1(x′)∑P(s′∣s(2),a)
状态抽象还可用矩阵来表示。用大小为 ∣ S ϕ ∣ × ∣ S ∣ |\mathcal{S}_\phi|\times|\mathcal{S}| ∣Sϕ∣×∣S∣ 的矩阵 Φ \Phi Φ 来表示状态抽象映射,即 Φ ( x , s ) = I [ ϕ ( s ) = x ] \Phi(x,s)=\mathbb{I}[\phi(s)=x] Φ(x,s)=I[ϕ(s)=x],有 Φ P ( s ( 1 ) , a ) = Φ P ( s ( 2 ) , a ) \Phi P(s^{(1)},a) = \Phi P(s^{(2)},a) ΦP(s(1),a)=ΦP(s(2),a)。根据上面三种状态抽象定义,显然有如下定理:环境模型无关则最优值函数无关,同样最优值函数无关则最优策略无关。
下面来分析环境模型无关的状态抽象方法,这种方法在最开始被称为 bisimulations。该状态抽象最为严格,要求在环境模型上两个状态相同才能合并,但注意是指经过映射后转移到 S ϕ \mathcal{S}_\phi Sϕ 的概率相等,并不是指在原环境模型上转移概率相等。这样做的目的是为了提高泛化性,避免映射规则过于严格。例如,对于前两种状态抽象方式,不仅可以将重复的(即重要程度一致的状态)合并,还能将无关的状态合并(即无关状态的策略和值都可用同一个空白值来表示,这样就能合并为同一个状态),但是如果第三种状态抽象方法中是假设 P ( s ′ ∣ s ( 1 ) , a ) = P ( s ′ ∣ s ( 2 ) , a ) P(s'|s^{(1)},a)=P(s'|s^{(2)},a) P(s′∣s(1),a)=P(s′∣s(2),a) 而非 P ( x ′ ∣ s ( 1 ) , a ) = P ( x ′ ∣ s ( 2 ) , a ) P(x'|s^{(1)},a)=P(x'|s^{(2)},a) P(x′∣s(1),a)=P(x′∣s(2),a),则这些无关状态就很难剔除了。
虽然环境模型无关的状态抽象最严格,但是这种方法能够保证下面两个数据集是基本等价的:一个是从映射后的 MDP 模型 M ϕ M_\phi Mϕ 采集的数据;另一个是从原始 MDP 模型 M M M 中采集到数据后再映射,即 ( s , a , r , s ′ ) → ( ϕ ( s ) , a , r , ϕ ( s ′ ) ) (s,a,r,s')\rightarrow(\phi(s),a,r,\phi(s')) (s,a,r,s′)→(ϕ(s),a,r,ϕ(s′))。另一方面,对于最优值函数无关的状态抽象方法,这种方法是不保留原有环境模型的奖励函数和状态转移函数的,虽然某些表格类型方法仍能使用(如 Q-learning),但是对于应用到其他算法环境就需要重新分析。最后对于最优策略无关的状态抽象方法,之前提及的基于值的方法和基于模型的表格类型方法都不能使用。
最后,对于给定的 MDP,存在唯一一种最小的环境模型无关的状态抽象方法,下面将给出其证明。另外,要求出这种状态抽象方法是 NP 难问题,因此后面还会讲到使用近似方法求解。
要证明该定理,首先需要定义两个 bisimulations 的合并(common coarsening):对于任意 s ( 1 ) s^{(1)} s(1) 和 s ( 2 ) s^{(2)} s(2),只有当 ϕ 1 ( s ( 1 ) ) = ϕ 1 ( s ( 2 ) ) \phi_1(s^{(1)})=\phi_1(s^{(2)}) ϕ1(s(1))=ϕ1(s(2)) 或 ϕ 2 ( s ( 1 ) ) = ϕ 2 ( s ( 2 ) ) \phi_2(s^{(1)})=\phi_2(s^{(2)}) ϕ2(s(1))=ϕ2(s(2)) 时,才有 ϕ 1 \phi_1 ϕ1 和 ϕ 2 \phi_2 ϕ2 的合并 ϕ 12 \phi_{12} ϕ12 中 ϕ 12 ( s ( 1 ) ) = ϕ 12 ( s ( 2 ) ) \phi_{12}(s^{(1)})=\phi_{12}(s^{(2)}) ϕ12(s(1))=ϕ12(s(2))。即合并表示如果两种状态抽象方法都将某两个状态映射到同一状态,则合并后也将其映射到同一个状态。下面先证明两个 bisimulations 合并后的结果仍为 bisimulations。由于奖励函数方面显然成立,所以下面证明状态转移函数,有:
P ( y ′ ∣ s ( 1 ) , a ) = ∑ s ′ ∈ ϕ 12 − 1 ( y ′ )