Paper-6 精读 Deep Visuomotor Policies (2016 JMLR)

本文探讨了一种端到端训练深度视觉运动策略的方法,适用于未知动力学环境下的视觉控制任务。通过Guided Policy Search框架,结合BADMM优化算法,实现从高维复杂观察到动作的直接映射。

概述

这篇是2016年Journal of Machine Learning Research的期刊Paper:End-to-End Training of Deep Visuomotor Policies。非常完整,特别适合对GPS、Trajectory Optimization、Guided Cost Learning进行整理,形成一个框架。

总的来说,传统方法处理的输入是raw state,这篇期刊的输入是image即observation,处理的是一个POMDP的问题。

一般需要将observation通过state estimation或者perception变成state,然后再用state进行control。End-to-End的意思就是把Perception与Control一起训练了。

文章公式细节有点冗长,看到一半捋不顺,可以直接跳到总结。
1

标记符号的意义,其中 l ( x t , u t ) l(x_t,u_t) l(xt,ut)还是改成用cost function的形式即 c ( x t , u t ) c(x_t,u_t) c(xt,ut)

一、逻辑梳理

1.1 目标

目标是学习一个Visuomotor Policies即 π ( u t ∣ o t ) \pi(u_t|o_t) π(utot)。就是给定一个Image observation,应该做什么动作。

因此现在参数化的对象是 π θ ( u t ∣ o t ) \pi_\theta(u_t|o_t) πθ(utot):

π θ ( u t ∣ x t ) = ∫ π θ ( u t ∣ o t ) p ( o t ∣ x t ) d o t \pi_\theta(u_t|x_t)=\int \pi_\theta(u_t|o_t)p(o_t|x_t)do_t πθ(utxt)=πθ(utot)p(otxt)dot

但轨迹分布仍然是定义在state上的:

π θ ( τ ) = p ( x 1 ) ∏ t = 1 T π θ ( u t ∣ x t ) p ( x t + 1 ∣ x t , u t ) \pi_\theta(\tau)=p(x_1)\prod_{t=1}^T\pi_\theta(u_t|x_t)p(x_{t+1}|x_t,u_t) πθ(τ)=p(x1)t=1Tπθ(utxt)p(xt+1xt,ut)

因此目标为寻找一个参数 θ \theta θ使损失最小:

E π θ ( τ ) [ ∑ t = 1 T c ( x t , u t ) ] E_{\pi_\theta(\tau)}[\sum_{t=1}^Tc(x_t,u_t)] Eπθ(τ)[t=1Tc(xt,ut)]

未知的对象有两个,一个是Dynamics即 p ( x t + 1 ∣ x t , u t ) p(x_{t+1}|x_t,u_t) p(xt+1xt,ut),一个是observation distribution即 p ( o t ∣ x t ) p(o_t|x_t) p(otxt)

参数化的对象只有一个: π θ ( u t ∣ o t ) \pi_\theta(u_t|o_t) πθ(utot)

因此用下面的网络架构建模 π θ ( u t ∣ o t ) \pi_\theta(u_t|o_t) πθ(utot),并确定形式 π θ ( u t ∣ o t ) = N ( μ ( o t ) , Σ ( o t ) ) \pi_\theta(u_t|o_t)=N(\mu(o_t),\Sigma(o_t)) πθ(utot)=N(μ(ot),Σ(ot))
2

1.2 监督信息

确定了目标 π θ ( u t ∣ o t ) \pi_\theta(u_t|o_t) πθ(utot),现在要确定supervision从哪来?就是说给定 o t o_t ot,要做哪个动作 u t u_t ut

Supervision来自RL目标解出来的动作即 p i ( u t ∣ x t ) p_i(u_t|x_t) pi(utxt),系统的状态 x t x_t xt是已知的。(同一时刻,记录 ( x t , o t ) (x_t,o_t) (xt,ot),然后RL训练出一个 p i ( u t ∣ x t ) p_i(u_t|x_t) pi(utxt) o t o_t ot提供supervision)

因此最主要的问题变为:

  1. 怎么训练一个linear-Gaussian controllers p i ( u t ∣ x t ) p_i(u_t|x_t) pi(utxt),目标是什么?
  2. 训练 π ( u t ∣ o t ) \pi(u_t|o_t) π(utot)的目标是什么?
  3. 整体训练过程是怎样的?

1.3 训练框架

3

  1. Unknown Dynamics: p ( x t + 1 ∣ x t , u t ) p(x_{t+1}|x_t,u_t) p(xt+1xt,ut)
  2. Linear-Gaussian Controllers : p i ( u t ∣ x t ) p_i(u_t|x_t) pi(utxt)
    p i ( u t ∣ x t ) p_i(u_t|x_t) pi(utxt)中的 i i i是指从不同initial states开始的Policy
  3. Trajectory distribution:
    p i ( τ ) = p i ( x 1 ) ∏ t = 1 T p i ( u t ∣ x t ) p ( x t + 1 ∣ x t , u t ) p_i(\tau)=p_i(x_1)\prod_{t=1}^Tp_i(u_t|x_t)p(x_{t+1}|x_t,u_t) pi(τ)=pi(x1)t=1Tpi(utxt)p(xt+1xt,ut)

因此从Outer Loop最左侧的循环是用传统方法根据目标 L p L_p Lp将Controllers训练好的,而Inner Loop则是从Controllers那得到Guided Samples根据目标 L θ L_\theta Lθ训练好,得到 π θ ( u t ∣ o t ) \pi_\theta(u_t|o_t) πθ(utot).

  1. Policy Distribution:
    π θ ( τ ) = p ( x 1 ) ∏ t = 1 T π θ ( u t ∣ x t ) p ( x t + 1 ∣ x t , u t ) \pi_\theta(\tau)=p(x_1)\prod_{t=1}^T\pi_\theta(u_t|x_t)p(x_{t+1}|x_t,u_t) πθ(τ)=p(x1)t=1Tπθ(utxt)p(xt+1xt,ut)

因此Trajectory Distribution与Policy Distribution的初始状态是不一样的,要想Policy最后学到初始状态的泛化性,就得迭代Policy,使其与Trajectory distribution的state distribution相同,就有了Inner Loop中 L p L_p Lp L θ L_\theta Lθ交互优化的那一部分了。

流程清楚了,下面请留意两个未知对象的处理:
一个是Dynamics即 p ( x t + 1 ∣ x t , u t ) p(x_{t+1}|x_t,u_t) p(xt+1xt,ut),一个是observation distribution即 p ( o t ∣ x t ) p(o_t|x_t) p(otxt)

二、Dive Into Details

2.1 整体的目标推导

先看看要学习对象 π θ ( u t ∣ o t ) \pi_\theta(u_t|o_t) πθ(utot)的目标应该是什么?
π θ ( u t ∣ x t ) = ∫ π θ ( u t ∣ o t ) p ( o t ∣ x t ) d o t \pi_\theta(u_t|x_t)=\int \pi_\theta(u_t|o_t)p(o_t|x_t)do_t πθ(utxt)=πθ(utot)p(otxt)dot

因此我们看看 π θ ( u t ∣ x t ) \pi_\theta(u_t|x_t) πθ(utxt)
π θ ( τ ) = p ( x 1 ) ∏ t = 1 T π θ ( u t ∣ x t ) p ( x t + 1 ∣ x t , u t ) \pi_\theta(\tau)=p(x_1)\prod_{t=1}^T\pi_\theta(u_t|x_t)p(x_{t+1}|x_t,u_t) πθ(τ)=p(x1)t=1Tπθ(utxt)p(xt+1xt,ut)

因此优化这个目标就能学到 π θ ( u t ∣ x t ) \pi_\theta(u_t|x_t) πθ(utxt)
E π θ ( τ ) [ c ( τ ) ] E_{\pi_\theta(\tau)}[c(\tau)] Eπθ(τ)[c(τ)]

这个经典的RL问题呀,当然可以采用VPG、TRPO、PPO一类的On-Policy算法,抑或是DDPG、TD3、SAC求解,但需要的Samples好像有点多,一般都是在虚拟环境上训练再在现实环境中transfer的,因此采用经典的GPS算法进行Guided,这个Guided的对象为 p ( u t ∣ x t ) p(u_t|x_t) p(utxt)目标变为:
min ⁡ p , π θ E p ( τ ) [ c ( τ ) ] s . t p ( x t ) p ( u t ∣ x t ) = p ( x t ) π θ ( u t ∣ x t ) \min_{p,\pi_\theta}E_{p(\tau)}[c(\tau)]\\ s.t\quad p(x_t)p(u_t|x_t)=p(x_t)\pi_\theta(u_t|x_t) p,πθminEp(τ)[c(τ)]s.tp(xt)p(u

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值