离线强化学习——Decision Transformer论文代码笔记

文章介绍了一种新的方法DecisionTransformer,它将RL问题转化为基于Transformer的条件序列建模,通过预测return-to-go来指导动作选择。与传统的RL方法不同,DecisionTransformer能学习state、action和reward的关系,实验显示其在多种环境中优于行为cloning和传统TD学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

动机

Transformer在语言建模方面获得了巨大的成功,比如GPT-x和BERT。于是作者就想,能否把RL问题转换成条件序列建模问题,而不是像之前之前的RL方法那样来拟合价值函数(Q-value)或者计算策略梯度(policy-gradient)。于是作者提出了Decision Transformer,将agent的历史action、state、reward(return-to-go)用transformer序列建模。

方法

将return-to-go, state,action序列作为token输入到一个自回归模型中(代码里用的是GPT2架构),然后让模型去预测下一个action。其中return-to-go是作者自创的一个概念,表示从当前状态到结束时希望agent获得的reward总和,相当于一个目标。至于为什么要用return-to-go代替reward,作者说第一是因为它可以更好的学到pattern,第二是因为这样可以在测试时条件性地预测action。其实我觉得还有一个原因就是return-to-go表示的信息量大,它既能表示出历史reward(return-to-go之间相减即可得到),也能表示未来想要得到的reward之和。

伪代码

模型

输入R(return-to-go序列),s(state序列),a(action序列),t(timestep序列)。先给timestep做embedding,将时间整数映射成向量(当做Transformer输入里的positional embedding)。然后再依次将s、a、R也映射到向量空间,并将它们stack起来组成$r_{t-1},s_{t-1},a_{t-1},r_t,s_t,a_t$ 序列,输入到Transformer里。注意这里的Transformer不能直接用,要将里面的positional embedding注释掉,因为之前我们已经对不同时间步的s,a,R做过了。最后transformer输出一个hidden_states,它是一个shape为(batchsize,maxlen,hidden_dim)的向量,将它作为特征再输入到一个线性层里去预测action。

训练

从离线数据集里取出trajectory的一段轨迹,输入到Decision Transformer里,预测出action,如果是连续的动作就用MSELoss。

这里是我比较有疑问的一点,就是它在训练输入的时候其实是输入了trajectory里这次的action的,然后目标又是让模型输出这个action。官方代码如下:

然而在evaluate的时候,模型是不知道这次要做的action的,所以evaluate时,action要做padding(比如设置成全0向量),这就导致了训练和验证时输入的不一致性。

针对这个问题,我尝试了一下在训练时,把输入的action序列的最后一个,也就是这次要预测的action改成全0向量。然后在gym的hopper环境里,我发现效果会比原来好5-10%。

验证

要注意的就是要记得将return-to-go减去这次获得的reward,更新return-to-go。

实验:相比behavior cloning

发现效果在各个环境上都比behavior cloning好,和传统TD也是comparable,在稀疏奖励环境效果遥遥领先。

其实Decision Transformer的损失函数的形式就是做的behavior cloning,但是和模仿学习的区别就在于模仿学习是用当前state去预测action,而Decision Transformer是根据state和return-to-go来预测action,其实是能学习到state、action、reward之间的关系的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值