DBC 论文阅读

832 阅读2分钟

0 论文信息

1 文章简介

  一开始关注这个方法是因为其将 Invariant Representation 也应用到了强化学习的视觉任务之中。但是强化学习在成功识别到目标特征之后仍需要相应的反馈来完成操作,这点与传统的计算机视觉中的大部分应用场景不同,其对于收敛性、算法的计算复杂度等方面都提出来了更高的要求。

  如图 1 所示,(Deep bisimulation for control, DBC) 希望在画面中排除不相关的信息,只从潜在空间中获取相关的信息。

图 1. 视觉场景的鲁棒表示应该对不相关的对象 (比如云) 或细节 (比如汽车类型) 不敏感,如果它们的相关细节相等 (如道路方向和其他汽车的位置),则等价地编码两个观察结果。

2 方法总览

2.1 预备知识

  假设底层环境是一个马尔可夫决策过程 (MDP),由元组 M=(S,A,P,R,γ)\mathcal{M}=(\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma) 描述,其中 S\mathcal{S} 是状态空间,A\mathcal{A} 是动作空间,P(ss,a)\mathcal{P}\left(\mathbf{s}^{\prime} \mid \mathbf{s}, \mathbf{a}\right) 从状态 sS\mathbf{s}\in\mathcal{S} 过渡到状态 sS\mathbf{s}^{\prime}\in\mathcal{S} 的概率,γ\gamma 是折扣因子。“代理” 根据策略函数 aπ(s)\mathbf{a} \sim \pi(\mathbf{s}) 选择动作 aA\mathbf{a} \in \mathcal{A},该函数更新系统状态 sP(s,a)\mathbf{s}^{\prime} \sim \mathcal{P}(\mathbf{s}, \mathbf{a}),产生奖励 r=R(s)Rr=\mathcal{R}(\mathbf{s}) \in \mathbb{R}。代理的目标是通过学习一个好的策略来最大化预期的累积折扣奖励 : maxπEP[t=0[γtR(st)]\max _\pi \mathbb{E}_{\mathcal{P}}\left[\sum_{t=0}^{\infty}\left[\gamma^t \mathcal{R}\left(\mathbf{s}_t\right)\right]\right.。虽然作者的主要关注点是从图像中学习的,但作者没有明确解决部分可观察性问题 : 相反,作者将堆叠像素观察近似为完全观察到的系统状态 s\mathbf{s}

  Bisimulation 是一种状态抽象形式,它将状态 si\mathbf{s}_isj\mathbf{s}_j 分组为 “行为等效”。对于任何动作序列 a0:\mathbf{a}_{0:\infty}si\mathbf{s}_isj\mathbf{s}_j 的奖励概率序列是相同的。更紧凑的定义具有递归形式 : 如果两个状态在下一个相似状态上共享相同的即时奖励和等效分布,则它们是相似的。


定义 1 (Bisimulation Relations). 给定一个 MDPM\operatorname{MDP} \mathcal{M},状态之间的等价关系 BB 是一个双模拟关系,如果对于所有在 BB 下等价的状态 si,sjS\mathbf{s}_i, \mathbf{s}_j \in \mathcal{S} (记作 siBsj\mathbf{s}_i \equiv{ }_B \mathbf{s}_j),则下列条件成立 :

R(si,a)=R(sj,a)aA,P(Gsi,a)=P(Gsj,a)aA,GSB\begin{align} \mathcal{R}\left(\mathbf{s}_i, \mathbf{a}\right) & =\mathcal{R}\left(\mathbf{s}_j, \mathbf{a}\right) & & \forall \mathbf{a} \in \mathcal{A}, \\ \mathcal{P}\left(G \mid \mathbf{s}_i, \mathbf{a}\right) & =\mathcal{P}\left(G \mid \mathbf{s}_j, \mathbf{a}\right) & & \forall \mathbf{a} \in \mathcal{A}, \quad \forall G \in \mathcal{S}_B \end{align}

其中 SB\mathcal{S}_B 是关系 BB (等价状态的所有组 GG 的集合) 下的 SS 分区,P(Gs,a)=sGP(ss,a)\mathcal{P}(G \mid \mathbf{s}, \mathbf{a})=\sum_{\mathbf{s}^{\prime} \in G} \mathcal{P}\left(\mathbf{s}^{\prime} \mid \mathbf{s}, \mathbf{a}\right)

  具有双模拟关系的精确分区在连续状态空间中通常是不切实际的,因为关系对奖励函数或动力学的无穷小变化高度敏感。出于这个原因,Bisimulation Metrics 弱化了状态分区的概念,而是定义了一个伪度量空间 (S,d)(\mathcal{S}, d),其中距离函数 d:S×SR0d: \mathcal{S} \times \mathcal{S} \mapsto \mathbb{R}_{\geq 0} 测量两个状态之间的 “行为相似性”。

  定义状态之间的距离 dd 需要定义奖励之间的距离 (用来弱化 (1) 式) 和状态分布之间的距离 (用来弱化 (2) 式)。先前的工作 (最初在 van Breugel (2001) 的双模拟度量的文中使用) 对后者使用 Wasserstein 度量。第 pp 个 Wasserstein 度量在两个概率分布 Pi\mathcal{P}_iPj\mathcal{P}_j 之间定义为 Wp(Pi,Pj;d)=(infγΓ(Pi,Pj)S×Sd(si,sj)p dγ(si,sj))1/pW_p\left(\mathcal{P}_i, \mathcal{P}_j ; d\right)=\left(\inf _{\gamma^{\prime} \in \Gamma\left(\mathcal{P}_i, \mathcal{P}_j\right)} \int_{\mathcal{S} \times \mathcal{S}} d\left(\mathbf{s}_i, \mathbf{s}_j\right)^p \mathrm{~d} \gamma^{\prime}\left(\mathbf{s}_i, \mathbf{s}_j\right)\right)^{1 / p},其中 Γ(Pi,Pj)\Gamma\left(\mathcal{P}_i, \mathcal{P}_j\right)Pi\mathcal{P}_iPj\mathcal{P}_j 的所有耦合的集合。这被称为 “推土机” 距离,表示将质量从一个分布转移到另一个分布的成本。最后,双模拟度量是在过渡分布之间的 Wasserstein 距离上加上奖励差 :

定义 2 (双模拟度量).由 Ferns et al.(2011) 中的定理 2.6,其中 c[0,1]c\in[0,1] :

d(si,sj)=maxaA(1c)RsiaRsja+cW1(Psia,Psja;d)\begin{align} d\left(\mathbf{s}_i, \mathbf{s}_j\right)=\max _{\mathbf{a} \in \mathcal{A}}(1-c) \cdot\left|\mathcal{R}_{\mathbf{s}_i}^{\mathbf{a}}-\mathcal{R}_{\mathbf{s}_j}^{\mathbf{a}}\right|+c \cdot W_1\left(\mathcal{P}_{\mathbf{s}_i}^{\mathbf{a}}, \mathcal{P}_{\mathbf{s}_j}^{\mathbf{a}} ; d\right) \end{align}

2.2 DBC 方法 (Learning Representations for Control with Bisimulation Metrics)

图 2.学习双模拟度量表示 : 蓝色部分是主要的模型体系结构,它在两种状态下都被重用,就像暹罗网络一样。损失是奖励和折扣的转移分布距离 (使用 Wasserstein 度量 WW)。

  作者提出了控制的深度双模拟 (DBC),这是一种数据高效的方法,可以从非结构化的高维状态中学习控制策略。与之前的双模拟研究不同,双模拟研究的目标是学习状态之间 d:S×SR0d: \mathcal{S} \times \mathcal{S} \mapsto \mathbb{R}_{\geq 0} 的距离函数,而作者的目标是学习表征 Z\mathcal{Z},其中 1\ell_1-距离对应于双模拟度量,然后使用这些表征来改进强化学习。作者的目标是学习编码器 ϕ:SZ\phi: \mathcal{S} \mapsto \mathcal{Z},它捕获适合控制的状态表示,同时丢弃与控制无关的任何信息。任何依赖于状态重建的表示都不能做到这一点,因为这些不相关的细节对于重建仍然很重要。作者假设双模拟度量可以获得这种类型的表示,而不需要任何重建。

  双模拟度量是一种有用的状态抽象形式,但之前训练距离函数的方法要么不能扩展到像素观测 (根据式(3)中的最大算子),要么只设计用于 (固定的) 策略评估设置。相比之下,随着在线策略的改进,作者学习了策略输入的改进表示。作者的 π\pi^*-双模拟度量是基于梯度学习的,并在一定的假设下证明了它收敛于定理 1 中的一个不动点。为了训练作者的编码器 ϕ\phi 达到作者期望的关系 d(si,sj):=ϕ(si)ϕ(sj)1d\left(\mathbf{s}_i, \mathbf{s}_j\right):=\left\|\phi\left(\mathbf{s}_i\right)-\phi\left(\mathbf{s}_j\right)\right\|_1,作者抽取了一批状态对,并最小化其策略双模拟度量与潜在空间中 1\ell_1-距离的均方误差 :

J(ϕ)=(zizj1rirjγW2(P^(zi,ai),P^(zj,aj)))2\begin{align} J(\phi)=\left(|| \mathbf{z}_i-\mathbf{z}_j \|_1-\left|r_i-r_j\right|-\gamma W_2\left(\hat{\mathcal{P}}\left(\cdot \mid \overline{\mathbf{z}}_i, \mathbf{a}_i\right), \hat{\mathcal{P}}\left(\cdot \mid \overline{\mathbf{z}}_j, \mathbf{a}_j\right)\right)\right)^2 \end{align}

  其中 zi=ϕ(si),zj=ϕ(sj),r\mathbf{z}_i=\phi\left(\mathbf{s}_i\right), \mathbf{z}_j=\phi\left(\mathbf{s}_j\right), r 是奖励,Z\overline{\mathbf{Z}} 表示具有停止梯度的 ϕ(s)\phi\left(\mathbf{s}\right)。式 (4) 还使用输出高斯分布的概率动力学模型 P^\hat{\mathcal{P}}。出于这个原因,作者使用式 (4) 中的 2-Wasserstein 度量 W2W_2,而不是式 (3) 中的 1-Wasserstein,因为 W2W_2 度量具有方便的封闭形式 : W2(N(μi,Σi),N(μj,Σj))2=μiμj22+W_2\left(\mathcal{N}\left(\mu_i, \Sigma_i\right), \mathcal{N}\left(\mu_j, \Sigma_j\right)\right)^2=\left\|\mu_i-\mu_j\right\|_2^2+ Σi1/2Σj1/2F2\left\|\Sigma_i^{1 / 2}-\Sigma_j^{1 / 2}\right\|_{\mathcal{F}}^2,其中 F\|\cdot\|_{\mathcal{F}} 是 Frobenius-范数。对于所有其他距离,继续使用 l1l_1-范数。

Algorithm 1 Deep Bisimulation for Control (DBC)

  1. for Time t=0t = 0 to \infty do
  2.   Encode state zt=ϕ(st)\mathbf{z}_t=\phi\left(\mathbf{s}_t\right)
  3.   Execute action atπ(zt)\mathbf{a}_t \sim \pi\left(\mathbf{z}_t\right)
  4.   Record data : DD{st,at,st+1,rt+1}\mathcal{D} \leftarrow \mathcal{D} \cup\left\{\mathbf{s}_t, \mathbf{a}_t, \mathbf{s}_{t+1}, r_{t+1}\right\}
  5.   Sample batch BiDB_i \sim \mathcal{D}
  6.   Permute batch : Bj=B_j= permute (Bi)\left(B_i\right)
  7.   Train policy : EBi[J(π)]\mathbb{E}_{B_i}[J(\pi)]\quad\quad\triangleright Algorithm 2
  8.   Train encoder : EBi,Bj[J(ϕ)]\mathbb{E}_{B_i, B_j}[J(\phi)]\quad\quad\triangleright Equation (4)
  9.   Train dynamics : J(P,ϕ)=(P(ϕ(st),at)zt+1)2J(\mathcal{P}, \phi)=\left(\mathcal{P}\left(\phi\left(\mathbf{s}_t\right), \mathbf{a}_t\right)-\overline{\mathbf{z}}_{t+1}\right)^2

Algorithm 2 Train Policy (changes to SAC in red\color{red}\text{red})

  1. Get value : V=mini=1,2Q^i(ϕ^(s))αlogπ(aϕ(s))V=\min _{i=1,2} \hat{Q}_i(\hat{\color{red}\phi}(\mathbf{s}))-\alpha \log \pi(\mathbf{a} \mid {\color{red}\phi}(\mathbf{s}))
  2. Train critics : J(Qi,ϕ)=(Qi(ϕ(s))rγV)2J\left(Q_i, {\color{red}\phi}\right)=\left(Q_i({\color{red}\phi}(\mathbf{s}))-r-\gamma V\right)^2
  3. Train actor : J(π)=αlogp(aϕ(s))mini=1,2Qi(ϕ(s))J(\pi)=\alpha \log p(\mathbf{a} \mid {\color{red}\phi}(\mathbf{s}))-\min _{i=1,2} Q_i({\color{red}\phi}(\mathbf{s}))
  4. Train alpha : J(α)=αlogp(aϕ(s))J(\alpha)=-\alpha \log p(\mathbf{a} \mid {\color{red}\phi}(\mathbf{s}))
  5. Update target critics: Q^iτQQi+(1τQ)Q^i\hat{Q}_i \leftarrow \tau_Q Q_i+\left(1-\tau_Q\right) \hat{Q}_i
  6. Update target encoder :ϕ^τϕϕ+(1τϕ)ϕ^\color{red}\text{Update target encoder :} \hat{\phi} \leftarrow \tau_\phi \phi+\left(1-\tau_\phi\right) \hat{\phi}

合并控制 作者将其表示学习方法 (算法 1) 与弱化的演员-评论家 (SAC) 算法相结合,设计了一种实用的强化学习方法。作者在算法 2 中略微修改了 SAC,以允许值函数反向映射到编码器中,这可以进一步提高性能。尽管原则上该方法可以与任何强化学习算法相结合,包括无模型 DQN 或基于模型的 PETS。作者通过依次迭代更新三个组件来训练 DBC:策略 π\pi (在本例中为 SAC)、编码器 ϕ\phi 和动力学模型 P^\hat{\mathcal{P}} (算法 1 的 7-9 行)。同时作者发现单一损失函数的训练稳定性较差。算法 1 中的每个损失函数 J()J(\cdot) 的输入表示更新哪些组件。在每个训练步骤之后,使用策略 π\pi 在环境中进行按步迭代,将数据收集在回放缓冲区 D\mathcal{D} 中,并随机选择一批进行重复训练。

3 泛化界和与因果推断的联系

  作者同时也对于 DBC 的性质进行了更多理论方面的补充。在这里我进行简单赘述 (更多的等我再理解理解看看能不能补充)。

  首先,作者展示了该方法中的 π\pi^*-bisimulation 度量收敛到一个固定点,从初始化的策略 π0\pi_0 开始并收敛到最优策略 π\pi^*

定理 1met\mathtt{met}S\mathcal{S} 上的有界伪度量空间,π\pi 是不断改进的策略。对于 F:metmet\mathcal{F}: \mathtt{met} \mapsto \mathtt{met} 使用如下定义 :

F(d,π)(si,sj)=(1c)rsiπrsjπ+cW(d)(Psiπ,Psjπ).\mathcal{F}(d, \pi)\left(\mathbf{s}_i, \mathbf{s}_j\right)=(1-c)\left|r_{\mathbf{s}_i}^\pi-r_{\mathbf{s}_j}^\pi\right|+c W(d)\left(\mathcal{P}_{\mathbf{s}_i}^\pi, \mathcal{P}_{\mathbf{s}_j}^\pi\right) .

然后 F\mathcal{F} 有一个最小不动点 d~\tilde{d},它是一个 π\pi^*-bisimulation 度量。

定理 2 (基于双模拟度量的值界) 给定一个 MDPMˉ\operatorname{MDP} \bar{\mathcal{M}},通过聚合 ϵ\epsilon-邻域中的状态来构建,以及一个编码器 ϕ\phi,它将原始 MDPM\operatorname{MDP} \mathcal{M} M 中的状态映射到这些集群,两个 MDPs\operatorname{MDPs} 的最优值函数有界为 :

V(s)V(ϕ(s))2ϵ(1γ)(1c)\left|V^*(\mathbf{s})-V^*(\phi(\mathbf{s}))\right| \leq \frac{2 \epsilon}{(1-\gamma)(1-c)}

  MDP 动态与因果推理和因果图有很强的联系,因果图是有向无环图。具体来说,时刻 tt 的状态和动作会对时刻 t+1t+1 的下一个状态产生因果关系。而作者关心所的是对当前和未来奖励产生因果影响的状态空间的组成部分。DBC 与因果特征集相关联,或预测目标变量所需的最小特征集。

定理 3 (与因果特征集的关联) 如果使用双模拟度量对观察结果进行分区,这些集群 (双模拟分区) 对应于观察空间对当前和未来奖励的因果特征集。

定义 3 (因果祖先) 在因果图中,节点对应于父节点 PP 和子节点 CC 之间的变量和有向边是因果关系,节点的因果祖先 AN(C)AN(C) 是从 CC 到根节点的路径中的所有节点。

  如果存在干扰变量的干预,或者控制渲染函数 qq 并因此控制渲染观察但不影响奖励的变量,则因果特征集将对这些干预具有鲁棒性,并在线性函数近似设置中正确预测当前和未来的奖励。例如,在自动驾驶中,干预可以是白天到晚上的变化,它会影响观察空间,但不会影响动态或奖励。最后,作者证明了基于双模拟度量的表示可以推广到具有相同因果祖先的其他奖励函数。

定理 4 (任务泛化) 给定编码器 ϕ:SZ\phi: \mathcal{S} \mapsto \mathcal{Z},其将观察映射到潜在的双模拟度量表示表示,其中 ϕ(si)ϕ(sj)1:=d~(si,sj)\left\|\phi\left(\mathbf{s}_i\right)-\phi\left(\mathbf{s}_j\right)\right\|_1:=\tilde{d}\left(\mathbf{s}_i, \mathbf{s}_j\right)Z\mathcal{Z} 编码关于奖励 AN(R)AN(R) 的所有因果祖先的信息。

定理5 (VV^∗ 是关于 d~\tilde{d} Lipschitz-连续的)VV^* 是给定折扣因子 γ\gamma 的最佳值函数。如果 cγc\ge\gamma,则 VV^∗ 对于 Lipschitz 常数 11c\frac{1}{1-c} 是 Lipschitz-连续的,其中 d~是一个\tilde{d} 是一个 \pi^*$-双模拟度量。

V(si)V(sj)11cd~(si,sj)\left|V^*\left(\mathbf{s}_i\right)-V^*\left(\mathbf{s}_j\right)\right| \leq \frac{1}{1-c} \tilde{d}\left(\mathbf{s}_i, \mathbf{s}_j\right)

4 实验

  略

5 读后感

  感觉是在双模拟度量的基础上做了一些改进,但是我对于双模拟度量还是不是很了解,后续继续精进。以及感觉 AI 方面很多论文会把很多很稀疏平常的数学写得很哈人,对于这些数学要逐渐不要害怕,看清本质。