Offline RL : StARformer: Transformer With State-Action-Reward Representations for Robot Learning

IEEE PAMI 2023
ECCV 2022
paper
code
额外添加Transformer捕捉单时间步中的关键信息,并作为goal加入到T序列模型中学习策略

Intro

在这里插入图片描述

  1. StARformer由Step Transformer和Sequence Transformer两个基本组件组成,并通过交错连接进行交互。
  2. Step Transformer学习局部表示(即StAR-representations),通过在单个时间步长的窗口内自注意力机制处理状态-动作-奖励token。
  3. Sequence Transformer结合StAR-representations和纯图像状态表示(卷积特征提取),对整个序列进行自注意力操作以进行动作预测。

method

Step Transformer

将一段轨迹按 ( a t − 1 , r t − 1 , s t ) (a_{t-1}, r_{t-1}, s_t) (at1,rt1,st)分成多个group。其中状态图片分解为N个Patch,
在这里插入图片描述

State-Action-Reward Embeddings

对状态,动作以及奖励分别按照如下进行embedding
z s t i = F C ( F l a t t e n ( s t i ) ) + e i s p a t i a l z a t − 1 = F C ( a t − 1 ) , z r t = T a n h ( F C ( r t ) ) . \begin{align} z_{s_t^i}&=\mathrm{FC}(\mathrm{Flatten}(s_t^i))+e_i^\mathrm{spatial}\\z_{a_{t-1}}&=\mathrm{FC}(a_{t-1}),z_{r_t}=\mathrm{Tanh}(\mathrm{FC}(r_t)). \end{align} zstizat1=FC(Flatten(sti))+eispatial=FC(at1),zrt=Tanh(FC(rt)).
其中 e i s p a t i a l e_i^\mathrm{spatial} eispatial表示每个patch的空间位置编码信息。这样,得到轨迹的embedding的集合 Z t 0 = { z a t − 1 , z r t , z s t 1 , z s t 2 , … , z s t n } . Z_t^0=\{z_{a_{t-1}},z_{r_t},z_{s_t^1},z_{s_t^2},\ldots,z_{s_t^n}\}. Zt0={zat1,zrt,zst1,zst2,,zstn}..

Step Transformer Layer

Z t 0 = { z a t − 1 , z r t , z s t 1 , z s t 2 , … , z s t n } . Z_t^0=\{z_{a_{t-1}},z_{r_t},z_{s_t^1},z_{s_t^2},\ldots,z_{s_t^n}\}. Zt0={zat1,zrt,zst1,zst2,,zstn}.编码作为下一个Step Transformer Layer的输入。
Z t l = F s t e p l ( Z t l − 1 ) . Z_t^l=F_{\mathrm{step}}^l(Z_t^{l-1}). Ztl=Fstepl(Ztl1).
同时该层还需输出所有group的StAR-representations给到 Sequence Transformer
g t l = F C ( [ Z t l ] ) + e t t e m p o r a l . g_t^l=\mathrm{FC}([Z_t^l])+e_t^\mathrm{temporal}. gtl=FC([Ztl])+ettemporal.
其中 [ ⋅ ] [ \cdot] []表示将所有group的特征信息进行concatenate, t t e m p o r a l _t^\mathrm{temporal} ttemporal表示时间编码信息。

在这里插入图片描述

Sequence Transforme

对状态进行卷积
h t 0 = C o n v ( s t ) + e t t e m p o r a l , h_t^0=\mathrm{Conv}(s_t)+e_t^\mathrm{temporal}, ht0=Conv(st)+ettemporal,
联合StAR-representations得到Sequence Transformer 的输入序列 : Y i n l = { g 1 l , h 1 l − 1 , g 2 l , h 2 l − 1 , … , g T l , h T l − 1 } . Y_{\mathrm{in}}^l=\{g_1^l,h_1^{l-1},g_2^l,h_2^{l-1},\ldots,g_T^l,h_T^{l-1}\}. Yinl={g1l,h1l1,g2l,h2l1,,gTl,hTl1}.
然后输入到序列模型得到2T个输出,为了保持下一个layer的输入为T个,如图中所示选择index为 2 i 2i 2i的预测结果。
Y o u t l = { y o u t ; 1 l , y o u t ; 2 l , … , y o u t ; 2 T l } h i l : = y o u t ; 2 i l . \begin{aligned}Y_{\mathrm{out}}^{l}&=\{y_{\mathrm{out};1}^{l},y_{\mathrm{out};2}^{l},\ldots,y_{\mathrm{out};2T}^{l}\}\\h_{i}^{l}&:=y_{\mathrm{out};2i}^l.\end{aligned} Youtlhil={yout;1l,yout;2l,,yout;2Tl}:=yout;2il.
最后一层的Layer将以 h h h为输入,通过一层线性映射直接预测动作 : a ^ t = ϕ ( h t l ) . :\hat{a}_{t}=\phi(h_{t}^{l}). :a^t=ϕ(htl).

results

在这里插入图片描述

然后对grouping以及patch进行消融实验
在这里插入图片描述
对sequence transformer如何利用step transformer表征信息进行结构上的消融实验
在这里插入图片描述

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值