【源头活水】RL Transformer之Trajectory Transformers
“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。
最近RL的大佬们又开始整活了,前有Pieter Abbeel放出Decision Transformers(DT)[1],后有Sergey Levine放出Trajectory Transformers(TT)[2],两者的motivation都是一样的:能不能尝试将RL问题(序列决策问题)看成一个序列生成任务,再借助modern architecture(e.g. Transformer)去完成此序列生成任务。
这样做其实就完全抛弃了传统RL用Bellman方程TD求解或者policy gradient求解的方式,但也有潜在好处,比如直接通过transformer里面的self-attention完成RL信度分配问题而不需要用Bellman回溯的方式缓慢地传播reward,同时对稀疏奖励更加effective(这是Pieter的statement,但我觉得没有足够的证据,更多的是实验证明),也不再需要像Offline RL那样加各种约束(这是Sergey的statement)。
Pieter和Sergey的motivation虽然一样,但是做法却迥然。可解释性上,个人觉得Sergey的TT做得更好,故本篇先从TT说起。
01
Offline RL, GPT (不懂GPT的可以先去看一下,简单说就是GPT只用了Transformer decoder来做序列任务) and Beam search.
02
在Trajectory Transformers(TT)中,核心是如何表示trajectory。表示完了之后就用GPT transformer来做sequence modeling的训练。在实际测试时,给定一个初始状态,transformer自回归地生成trajectory,结合beam search找到最可能、reward最大的trajectory(自然就有了下一个动作,相当于做了决策了)。
03
A trajectory
假设state的维度是N,action的维度是M,reward是一个标量,T个transition。这里要注意的是state或者action的每个维度按理说应该是标量,但这里表示成矢量是因为实际输入的时候时该维度value对应字典里面的index,所以是一个one-hot向量((别问什么是字典,问就是先去看最原始的Transformer做机器翻译,或者去参考GPT))。
构建字典
如果state和action离散的,则可以正常构建字典;但如果是连续的,则需要先做离散化处理。先设置每个维度一个bin的数量V,假设
作者在离散时设置了offset,为了保证所有维度不重叠(方便output,后续会说)。这样,action tokens
04
GPT中的attention是causal的,即当前token只跟在它之前的token做attention。训练时因为有grountruth trajectory,所以我们可以直接并行输入trajectory tokens,然后输出所有的预测节点,每个节点是一个V维的向量,经过softmax,得到概率分布,再和groundtruth做交叉熵,得到log似然值(最小化交叉熵,相当于在最大化log似然),于是training loss可以写成
这个式子看上去很长,不好理解,但其实很好理解。先不看t维度的求和,先看括号里面。括号里面有三部分,即为三种case(预测state, action和reward)下的log似然,然后可以仔细观察下这三个条件概率,其实就是给定在当前时刻之前的trajectory和当前时刻当前维度之前的token,当前时刻的token的条件概率(如果把input tokens按照时间顺序从左到右展开,那么就是给定当前token所有左边的token,当前时刻的token的概率)。
05
如果transformer训练好了,该怎么测试?因为GPT结构只用transformer decoder,所以来了一个state,transformer decoder可以自回归向后预测trajectory,这自然include下一个动作,相当于做了决策。具体地,先用beam search搜索似然概率最大的B个预测的trajectory,再从中选取reward+reward-to-go最大的那个trajectory作为最终的预测结果。
Beam search算法:
讲道理这算法的伪代码写得... 感觉没有对符号、表示做充分的说明,本来很简单的东西,被搞得就很迷幻。这里,
06
作者在3种setting(imitation learning,goal-conditioned RL和offline RL)上验证TT的效果。
Trajectory Prediction Accuracy
Reference指的是groundtruth,中间的TT预测的结果,最后一行是SOTA planning算法预测的结果,可以看出TT对于这种长时空的预测效果还是很好的,作者后面也分析了,这得益于transformer architecture powerful capacity。
此为量化比较,从log似然(左边curves)可以观察到Transformer和Markovian Transformer(将attention的感受野限制在有限的窗口种,不再是之前所有的token)的长时空预测效果很好,同时error propagation没有那么严重。也就是在full-observed的环境中其实缩短感受野并不是特别影响性能,那么可以推出可能transformer的architecture起了重要作用。右边curves是在ablation当我们把input state以50%的概率在每个维度上随机mask时的效果,这种setting下,全感受野(Transformer)的效果要好于有限窗口感受野(Markovian Transformer)。
Attention Patterns
这里作者想研究transformer到底在干些什么,于是可视化token之间的响应图(颜色越深,对应的两个token响应越大)。左边是根据第一层attention layer得到的,右边是第三层得到的。作者观察到这两种不同形式的响应图。从左边这种可以发现,transformer发现了Markovian strategy(因为任意一个state或者action的维度只跟它之前的token有较大响应)。在右边这种中,当前state的各维度跟之前state的相同维度响应较大,当前action跟之前的action响应较大(作者说让人联想起trajectory optimization algorithms中的action smoothing,不明觉厉,我只觉得像action sticking,哈哈哈)。
Offline RL
对比了Offline RL的SOTA method CQL,behavior cloning(BC),以及model-based方法MOPO和MBOP,可以发现Trajectory Transformers Optimization (TTO)的效果不亚于/好于这些方法。这里我也对比了TTO和Decision Transformer(DT)的效果,发现DT的效果似乎好一点。如果从理论上分析,TTO一定比BC好,因为BC其实可以认为假设了一阶马尔可夫性质,就是拿当前state就能推断出action,但实际环境中很难完全满足这种性质,TTO相当于建模了之前的trajectory,是一种Markovian-orthogonal的方法,不对马尔可夫性质有要求。
Imitation and Goal-reaching/conditioned RL
(1) imitation:作者尝试只用最大化似然配合beam search来control(也就是在标准TTO中不考虑reward-maximizing),然后发现这种情况下TTO做imitation learning的效果略好于专家。behavior cloning其实也能重现专家的效果。这暗示了用TTO这种decoding algorithm也能有效用于控制。
用一个pretrained goal-conditioned agent采集trajectory用作Offline data来训练TTO,然后做anti-causal goal-state conditioning的TTO training(这里不展开了,文章里有写,主要是说把goal state放到trajectory最前面,s_goal, s_t, a_t, r_t,..., 这种非因果的建模其实是在算给定之前的trajectory以及期望发生的状态的条件下,最大化下一个state/action/reward token的似然概率)。上图都是TTO产生的trajectory,也不知道作者放上去这个能说明啥,没有对比,啥也不是。。。
07
Limitation: inference的时候速度慢,在连续环境上做离散化有点麻烦。
参考
2. Reinforcement Learning as One Big Sequence Modeling Problem https://arxiv.org/abs/2106.02039
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“源头活水”历史文章
差分卷积在计算机视觉中的应用
ICML2021 | Self-Tuning: 如何减少对标记数据的需求?
MaskFormer: 语义分割是像素分类问题吗?
原型学习在Few-Shot语义分割中的使用
协作学习中的非预期特征泄露研究
基于对抗的迁移学习方法: DANN域对抗网络
TIP2021—重访CV经典: 首个无监督深度学习图像拼接框架
自步对比学习: 充分挖掘无监督学习样本
无监督学习: Kaiming一作 动量对比(MoCO)论文笔记
Mutual Mean-Teaching:为无监督学习提供更鲁棒的伪标签
Few-shot object detection论文整理(CVPR2021)
图神经网络也可以很快——Cluster-GCN
基于3D卷积神经网络的人体行为识别(3D CNN)
CVPR2021 | Variational Relational Point Completion Network
更多源头活水专栏文章,
请点击文章底部“阅读原文”查看
分享、在看,给个三连击呗!