- 论文题目:Learning Predictive Models From Observation and Interaction
所解决的问题?
作者在这里所关心的是,智能体采样很难采样到那些表现性能比较好的样本,就是说有些状态动作对根本就采不到,因为很难去学习这么好的策略,但是人类可以很轻松的采样得到这些样本。但是这些样本也是存在一些问题的,比如是没有带注释的,他不会有描述说为什么这么做,如果像模仿学习那样利用这些样本的话,还会存在分布漂移的问题(distributional shift)。对于第一个问题作者用图模型做,第二个问题用domain-dependent prior做。
背景
人类是很容易从别人的trajectory中进行学习,但是由于个体之间的差异,从observation学习action其实是很困难的,比如对于同一个重物,成年人可以很轻松拿起来,而对于婴儿就不是那么容易了。而作者结合历史的观测来解决这个问题。基于模型的强化学习基本上都是要学一个状态-动作的条件概率分布,如果只给observation,其实是很难学习的。而现实生活中却又存在这样大量地数据,你只能获取observation,并不知道具体所采取的动作是什么。比如一个机器人捡东西的视频,你是不可能知道当前时刻输出的电流,扭矩这些东西的。
作者提出了一种既能够从有动作标注的信息中学,也能从只有观测信息总学习model的方法。也就是action是否给定,都能学。当然了学状态转移的概率太多了,也不一一列举,今年争取做个相关的综述, 以后放在公众号的菜单栏吧,方便大家寻找.
除此之外,为了能够处理observational 和interaction data , 作者还需要解决Domain adaptation的问题. 对跨域的不变性进行正则化( regularizing for invariance across domains )是不够理想的。例如,如果人类的观察数据涉及到复杂的操作(例如,工具使用),而交互数据只涉及到简单的操作,我们不希望模型对这些差异保持不变。因此,我们采取了一种不同的方法:我们不对跨域的不变性进行正则化,而是明确地对每个域中的(潜伏)行动变量的分布进行建模( model the distributions over (latent) action variables in each of the domains)。
所采用的方法?
对于作者的设定,手中是有两类数据 [ x 1 , a 1 , x 2 , ⋯ ] [x_{1},a_{1}, x_{2},\cdots] [x1,a1,x2,⋯]和 [ x 1 , x 2 , ⋯ ] [x_{1},x_{2},\cdots] [x1,x2,⋯]. 而这种数据是存在domain shift的,比如从人类的视频数据和从机器人的交互数据学习. 目的就是为了学一个model,预测未来 p ( x c + 1 : T ∣ x 1 : c , a 1 : T ) p(x_{c+1:T}|x_{1:c},a_{1:T}) p(xc+1:T∣x1:c,a1:T).
概率图模型
为了能够从观测和交互数据中都能学习,作者提出的概率图模型框架如下图所示:
生成模型可以表示为:
z t ∼ p ( z t ∣ d ) a t ∼ p ( a t ∣ z t ) x t + 1 ∼ p ( x t + 1 ∣ x 1 : t , z 1 : t ) \begin{aligned} \mathbf{z}_{t} & \sim p\left(\mathbf{z}_{t} | d\right) \\ \mathbf{a}_{t} & \sim p\left(\mathbf{a}_{t} | \mathbf{z}_{t}\right) \\ \mathbf{x}_{t+1} & \sim p\left(\mathbf{x}_{t+1} | \mathbf{x}_{1: t}, \mathbf{z}_{1: t}\right) \end{aligned} ztatxt+1∼p(zt∣d)∼p(at∣zt)∼p(xt+1∣x1:t,z1:t)
z t \mathbf{z}_{t} zt用高斯分布进行拟合,动作解码 p ( a t ∣ z t ) p\left(\mathbf{a}_{t} | \mathbf{z}_{t}\right) p(at∣zt)和状态转移模型都基于高斯分布的输出,用神经网络做. 转移模型用 z t \mathbf{z}_{t} zt作为输入,因此需要后验分布 p ( z t ∣ a t ) p(\mathbf{z}_{t} | \mathbf{a}_{t}) p(zt∣at)去生成action-conditioned的隐变量,比如满足这个采样: p ( x t + 1 ∣ x 1 : t , a 1 : t ) = E p ( z 1 : t ∣ a 1 : t ) [ p ( x t + 1 ∣ x 1 : t , z 1 : t ) ] p\left(\mathbf{x}_{t+1} | \mathbf{x}_{1: t}, \mathbf{a}_{1: t}\right)=\mathbb{E}_{p\left(\mathbf{z}_{1: t} | \mathbf{a}_{1: t}\right)}\left[p\left(\mathbf{x}_{t+1} | \mathbf{x}_{1: t}, \mathbf{z}_{1: t}\right)\right] p(xt+1∣x1:t,a1:t)=Ep(z1:t∣a1:t)[p(xt+1∣x1:t,z1:t)]. 由于有没有action的数据,所以需要 p ( z t ∣ x t , x t + 1 ) p\left(\mathbf{z}_{t} | \mathbf{x}_{t}, \mathbf{x}_{t+1}\right) p(zt∣xt,xt+1)。
由于模型高度复杂和非线性原因,上述这两个后验分布是非常难算的。所以作者设计了两个分布,其网络结构如下所示:
当动作可观察时,依据evidence lower bound (ELBO)
进行优化,同时还需要优化网络框架,和动作编解码框架:
log p ( x 1 : T , a 1 : T ) ≥ E q a d ( z 1 : t ∣ a 1 : t ) [ ∑ t log p ( x t + 1 ∣ x 1 : t , z 1 : t ) ] + E q a c d ( z t ∣ a t ) [ ∑ t log p ( a t ∣ z t ) ] − ∑ t D K L ( q a c t ( z t ∣ a t ) ∥ p ( z t ) ) = − L i ( x 1 : T , a 1 : T ) \begin{aligned} \log p\left(\mathbf{x}_{1: T}, \mathbf{a}_{1: T}\right) \geq & \mathbb{E}_{q_{\mathrm{ad}}\left(\mathbf{z}_{1: t} | \mathbf{a}_{1: t}\right)}\left[\sum_{t} \log p\left(\mathbf{x}_{t+1} | \mathbf{x}_{1: t}, \mathbf{z}_{1: t}\right)\right] \\ &+\mathbb{E}_{q_{\mathrm{acd}}\left(\mathbf{z}_{t} | \mathbf{a}_{t}\right)}\left[\sum_{t} \log p\left(\mathbf{a}_{t} | \mathbf{z}_{t}\right)\right] \\ &-\sum_{t} D_{K L}\left(q_{\mathrm{act}}\left(\mathbf{z}_{t} | \mathbf{a}_{t}\right) \| p\left(\mathbf{z}_{t}\right)\right) \\ =&-\mathcal{L}_{i}\left(\mathbf{x}_{1: T}, \mathbf{a}_{1: T}\right) \end{aligned} logp(x1:T,a1:T)≥=Eqad(z1:t∣a1:t)[t∑logp(xt+1∣x1:t,z1:t)]+Eqacd(zt∣at)[t∑logp(at∣zt)]−t∑DKL(qact(zt∣at)∥p(zt))−Li(x1:T,a1:T)
当动作未知时,优化目标只需要去优化框架,和ELBO
就可以:
log p ( x 1 : T ) ≥ E q inv ( z t ∣ x t , x t + 1 ) [ ∑ t log p ( x t + 1 ∣ x t , z t ) ] − ∑ t D K L ( q inv ( z t ∣ x t , x t + 1 ) ∥ p ( z t ) ) = − L o ( x 1 : T ) \begin{aligned} \log p\left(\mathbf{x}_{1: T}\right) \geq & \mathbb{E}_{q_{\text {inv }}\left(\mathbf{z}_{t} | \mathbf{x}_{t}, \mathbf{x}_{t+1}\right)}\left[\sum_{t} \log p\left(\mathbf{x}_{t+1} | \mathbf{x}_{t}, \mathbf{z}_{t}\right)\right] \\ &-\sum_{t} D_{K L}\left(q_{\text {inv }}\left(\mathbf{z}_{t} | \mathbf{x}_{t}, \mathbf{x}_{t+1}\right) \| p\left(\mathbf{z}_{t}\right)\right) \\ =&-\mathcal{L}_{o}\left(\mathbf{x}_{1: T}\right) \end{aligned} logp(x1:T)≥=Eqinv (zt∣xt,xt+1)[t∑logp(xt+1∣xt,zt)]−t∑DKL(qinv (zt∣xt,xt+1)∥p(zt))−Lo(x1:T)
两部分连立得到优化目标:
J = ∑ ( x 1 ; r , a 1 ; r ) ∼ D i L i ( x 1 : T , a 1 : T ) + ∑ x 1 , r ∼ D ∘ L o ( x 1 : T ) \mathcal{J}=\sum_{\left(\mathrm{x}_{1} ; \mathrm{r}, \mathrm{a}_{1} ; \mathrm{r}\right) \sim D^{i}} \mathcal{L}_{i}\left(\mathrm{x}_{1: T}, \mathrm{a}_{1: T}\right)+\sum_{\mathrm{x}_{1}, \mathrm{r} \sim D^{\circ}} \mathcal{L}_{o}\left(\mathrm{x}_{1: T}\right) J=(x1;r,a1;r)∼Di∑Li(x1:T,a1:T)+x1,r∼D∘∑Lo(x1:T)
除此之外还设计了一个辅助损失函数,用于衡量两种方式提取的提取隐变量是否相同,用JS散度定义:
L J S = ∑ ( x 1 : T , a 1 : T ) ∼ D i D J S ( q a c t ( z t ∣ a t ) ∥ q i n v ( z t ∣ x t , x t + 1 ) ) \mathcal{L}_{J S}=\sum_{\left(\mathbf{x}_{1: T}, \mathbf{a}_{1: T}\right) \sim D^{i}} D_{J S}\left(q_{\mathrm{act}}\left(\mathbf{z}_{t} | \mathbf{a}_{t}\right) \| q_{\mathrm{inv}}\left(\mathbf{z}_{t} | \mathbf{x}_{t}, \mathbf{x}_{t+1}\right)\right) LJS=(x1:T,a1:T)∼Di∑DJS(qact(zt∣at)∥qinv(zt∣xt,xt+1))
最终的损失函数可以表示为:
F = J + α L J S \mathcal{F}=\mathcal{J}+\alpha \mathcal{L}_{J S} F=J+αLJS
Domain Shift
由于数据集是两种类型,所以作者这里还做了Domain Shift。具体做法如下图所示:
将隐变量 z z z分成两部分: z s h a r e s z^{shares} zshares和 z d o m a i n z^{domain} zdomain。通过给不同的先验分布(prior distributions)来让网络能够学地不同。 z s h a r e s z^{shares} zshares的先验分布给相同的。
取得的效果?
所出版信息?作者信息?
论文是2019年12月三十号上传到arXiv上面的,估计今年就能知道投到那了。
参考资料
- 论文主页:https://sites.google.com/view/lpmfoai
- 论文链接:https://arxiv.org/abs/1912.12773
我的微信公众号名称:小小何先生
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!