离线强化学习的决策Transformer训练
决策Transformer将强化学习转向序列建模
决策Transformer将强化学习(RL)视为一种条件序列建模问题,而非传统的策略优化任务。它不再通过拟合价值函数来最大化累计奖励,而是使用序列建模算法(Transformer)根据期望的回报、过去的状态和过去的动作生成未来的动作。
这种方法通过利用生成式轨迹建模——对状态、动作和奖励的联合分布进行建模——实现了强化学习范式的转变,以取代传统的RL算法。模型并非以传统意义上最大化回报,而是生成被预测能够实现特定目标回报的动作。
模型架构与流程
决策Transformer的架构遵循以下步骤:
- 输入序列:模型接收最近的 $K$ 步时间步,每一步包含三个组成部分:返回值(Return-to-go)、状态和动作。
- 嵌入:对令牌进行嵌入,向量状态使用线性层,图像帧使用CNN编码器。
- 预测:基于GPT-2的模型处理这些输入,并通过自回归建模预测未来的动作。
实现离线决策Transformer
离线决策Transformer在由其他代理或人类示范收集的数据集上进行训练,训练期间不与环境进行任何直接交互。
数据集准备与自定义数据收集器
要训练决策Transformer,需要将原始RL数据预处理为适合序列建模的格式。使用来自 Hugging Face Hub 的 halfcheetah-expert-v2 数据集,需要进行以下预处理步骤:
- 归一化:对每个特征减去均值再除以标准差进行归一化。
- 回报计算:为每条轨迹预先计算折扣回报。
- 缩放:将奖励和回报乘以 1000 的因子进行缩放。
- 采样分布:增强采样分布以考虑专家代理轨迹的长度。
这些步骤通过自定义的 Data Collator 实现,该收集器返回包含状态、动作、奖励、返回值(returns-to-go)、时间步和注意力掩码的批次。
使用 Hugging Face Trainer 进行训练
训练使用 Hugging Face 的 Trainer 类进行。由于标准的 DecisionTransformerModel 本身不返回损失值,使用包装类(TrainableDT)来计算模型的动作预测与数据集目标动作之间的 L-2 范数(均方误差)。
关键训练超参数:
- 训练轮数:120
- 批大小:64
- 学习率:$1e-4$
- 权重衰减:$1e-4$
- 预热比例:0.1
- 优化器:AdamW
- 最大梯度范数:0.25
Transformer 中强化学习的未来方向
Hugging Face 计划通过多项举措扩大对深度强化学习社区的支持:
- 在线训练:扩展仓库,包含在在线环境中训练或微调的决策Transformer模型。
- 工具集成:将
sample-factory2.0 版集成到其生态系统中。