离线强化学习(离线RL) (Levine et al.,2020)旨在从一组不访问环境的行为策略收集的轨迹中学习最优策略。这种数据驱动的方法在许多情况下是必不可少的,在这些情况下,在线交互可能是昂贵的(如机器人或教育代理)和危险的(如自动驾驶或医疗保健)。最近的一些研究表明,这种方法在支持数据驱动的游戏环境政策学习(Chen等人,2021年)、机器人操作行为(Ebert等人,2018年;Kalashnikov等人,2018年)和机器人导航技能(Kahn等人,2021年)。
然而,我们发现离线RL的内在困难之一是无法推广到看不见的任务。虽然代理可能能够从训练任务中获得良好的状态覆盖,但由于分布的转移,它仍然很难在测试任务中找到一个好的策略。因此,Mitchell等人(2021)最近的工作考虑了旨在解决离线RL中的泛化问题的离线元RL设置。提出了使用优势加权回归(Peng et al., 2019)作为子例程RL算法的Meta-Actor批评家优势加权(Meta-Actor Critic with Advantage weighted, MACAW)算法,并以元学习目标优化agent的适应能力(Finn et al., 2017a)。
虽然元学习方法通过算法学习的视角解决了这个问题,但我们的目的是在这项工作中调查架构归纳偏差的力量。众所周知,Transformer (Vaswani et al., 2017)模型在对大规模数据集进行预训练时,能够进行少镜头或零镜头学习。此外,自然语言处理(NLP)最近的工作(Liu et al., 2021;Brown et al., 2020)认为,==基于提示的框架是适应新任务的有效范式,如翻译和问题回答。在基于提示的框架中,提示包含关于任务的有价值的信息,并作为输入的前缀预先挂起。因此,它将少镜头或零镜头的泛化问题转化为条件序列生成,这是这些大型Transformer模型的优势所在。==最近,Chen等人(2021)表明,除了自然语言之外,Transformer体系结构还可以对轨迹数据具有强大的序列建模能力,在离线RL上实现了最先进的结果。在这项工作中,我们的目标是解决这样一个问题:我们能否利用NLP中的基于提示的框架,并将其适应于离线RL的环境,以实现对不可见任务的少镜头泛化?
离线强化学习。离线RL (Levine et al., 2020)使用预收集的数据集学习策略,其中包含在行为策略下采样的轨迹。正如Levine等人(2020年)所指出的那样,离线RL问题已被证明比在线RL更具挑战性,因为学习代理需要仅使用离线数据来估计保单的价值。与在线RL类似,我们可以采用基于模型或无模型的方法。当使用基于模型的方法时,我们可以用离线数据估计奖励和过渡函数。然而,我们需要修改RL算法,以避免利用估计模型中的误差(Yu et al, 2020b;基坦比等人,2021年;Yu等人,2021年)。或者,在选择无模型方法时,我们可以将q学习算法或pol policy梯度算法应用于离线设置,但需要显式纠正离线数据中的行为策略与我们想要优化的策略之间的分布不匹配(Kumar等人,2020;伊斯兰等人,2019)。
作为序列建模的策略学习。RL算法需要处理长期信用分配的挑战,这通常是通过时间差异(TD)学习完成的(Sutton & Barto, 2018)。然而,为NLP设计的模型,如Transformer (Vaswani et al., 2017),可以固有地处理长期信用分配问题。最近,Decision Transformer (Chen等人,2021年)提出将RL问题建模为序列预测问题,在Transformer模型中使用状态、行动、奖励作为令牌。并发工作采用类似的方法,使用Transformer预测环境的动态(Janner等人,2021年)。与经典的RL算法相比,这些基于变压器的方法在基准测试领域取得了类似或更好的性能。最近,Furuta等人(2021)论证了决策转换器模型正在进行事后信息匹配。
Few-Shot学习。少镜头学习(FSL)旨在快速推广到只包含少量样本和监督信息的新任务(Wang et al., 2020)。FSL可以通过开发可以复制人类行为的代理来推进机器人技术。例子包括一次性模仿(Wu & Demiris, 2010)、多武装匪徒(Duan等,2017)、视觉导航(Finn等,2017a)和连续控制(Yoon等,2018)。FSL的应用包括图像分类(Vinyals等人,2016)、对象跟踪(Bertinetto等人,2016)、视觉问题回答解析(Dong等人,2018)、语言建模(Vinyals等人,2016)和神经结构搜索(Brock等人,2017)。FSL可以减少数据密集型应用程序的数据收集工作。另一个经典的FSL场景是,由于安全或伦理问题,带有监管信息的考试组很难获得(Altae-Tran等人,2017年)。
Prompt-based学习。对于自然语言处理来说,基于提示的学习是建立在直接模拟文本概率的语言模型的基础上的。与训练模型接受输入
x
x
x并预测输出
y
y
y为
P
(
y
∣
x
)
P(y|x)
P(y∣x)的传统监督学习不同,基于提示的方法使用模板将原始输入
x
x
x修改为文本字符串提示
x
′
x'
x′,其中有一些未填充的空白,然后使用语言模型将答案
y
y
y概率地填充为空白(Liu等人,2021年)。通过这种方式,通过选择适当的提示,我们可以操纵模型来预测所需的输出,有时甚至不需要任何额外的任务特定训练(Brown et al., 2020;Radford等人,2019;高等人,2020)。潜在的假设是,经过预训练的语言模型已经从预训练语料库中学习了足够的知识,我们只需要找到正确的方法来提取这些知识。然而,在RL设置中,我们没有足够大的和通用的训练前语料库来覆盖不同的环境和任务。因此,在这项工作中,我们建议以一种不同的方式使用提示。RL代理被要求模仿提供的轨迹提示,而不是我们提供提示来从预先训练的模型中提取知识,这样它就可以再现生成这些轨迹的策略。
预赛
在线和离线元强化学习
强化学习 (RL) 问题是一个顺序决策问题,其中学习代理与环境交互并优化其控制策略以获得最优值。 动态环境中的每个顺序决策任务通常建模为马尔可夫决策过程 (MDP)(Sutton & Barto,2018),由元组
M
=
(
S
,
A
,
P
,
R
,
µ
)
M = (S, A, P, R, µ)
M=(S,A,P,R,µ) 表示。
S
S
S 和
A
A
A 是状态空间和动作空间。
P
:
S
×
A
×
S
→
R
P : S × A × S → R
P:S×A×S→R 是转移模型,其中
P
(
s
,
a
,
s
′
)
P(s, a, s')
P(s,a,s′) 是在状态
s
s
s 采取行动
a
a
a 到达状态
s
′
s'
s′ 的概率。
R
:
S
→
R
R : S → R
R:S→R 是奖励函数。
µ
µ
µ 是初始状态分布。 在每一步,RL 智能体通过基于当前状态
s
s
s 采取行动
a
a
a 与环境交互,观察奖励
r
r
r 和从环境中产生的下一个状态
s
′
s'
s′。 顺序决策任务的目标是找到一个策略
π
:
S
×
A
→
R
π : S × A → R
π:S×A→R 来优化预期的累积奖励
通常,RL 是在线执行的,其中代理迭代地采取行动并从环境中接收反馈。 然而,这可能并不总是可行的,因为 RL 算法由于样本效率普遍较低而可能需要大量训练数据。 这使得在线环境中的培训非常耗时。 在一些现实世界的安全关键环境中,在训练阶段在线部署代理可能会导致灾难性的失败。 我们考虑离线 RL 设置(Levine 等人,2020),其目的是从使用(可能未知的)行为策略预先收集的数据中学习策略。 在此设置中,代理可以访问包含一组轨迹的数据集
D
D
D。 轨迹
{
s
0
,
a
0
,
r
0
,
s
1
,
a
1
,
r
1
,
.
.
.
,
s
T
,
a
T
,
r
T
}
\{s_0, a_0, r_0, s_1, a_1, r_1, . . . , s_T , a_T , r_T \}
{s0,a0,r0,s1,a1,r1,...,sT,aT,rT} 使用环境中的行为策略进行采样。 agent 需要在不与环境本身交互的情况下,仅使用数据集
D
D
D 找到最优策略。
最初提出在线和离线 RL 设置是为了在一项任务中找到最优策略。 如果设计的学习代理能够在学习了一些任务后用少量新收集的数据适应类似任务,则可以进一步提高 RL 的效率,这主要是在元 RL 下开发的(Finn 等人,2017a) . 最近,meta-RL 已扩展到离线设置,旨在通过预先收集的数据快速适应新任务。 在 Mitchell 等人 (2021) 提出的离线元强化学习设置中,代理被赋予一组任务
T
T
T,其中任务
T
i
∈
T
T_i ∈ T
Ti∈T 定义为
(
M
i
,
π
i
)
(M_i, π_i)
(Mi,πi),包含 MDP
M
i
M_i
Mi 和行为策略
π
i
π_i
πi . 对于每个任务
T
i
T_i
Ti,代理都提供了一个数据集
D
i
D_i
Di,其中包含使用
π
i
π_i
πi 采样的轨迹。 该代理使用表示为
T
t
r
a
i
n
T^{train}
Ttrain 的训练任务子集进行训练,并期望在与
T
t
r
a
i
n
T^{train}
Ttrain 不相交的一组测试任务
T
t
e
s
t
T^{test}
Ttest 中找到最优策略。
决策Transformer
已在 NLP(De vlin 等人,2018 年)和计算机视觉(Carion 等人,2020 年)中广泛研究的 Transformer 表现出优于基于 RNN 的架构。 它最近被用于解决 RL 问题,因为它在对长序列数据建模时具有效率和可扩展性。 离线强化学习的决策转换器 (Chen et al., 2021) 将学习策略视为顺序建模问题。 它建议使用在不同时间步长
t
t
t 收集的状态
s
t
s_t
st、动作
a
t
a_t
at 和 reward-to-go
r
^
t
\hat r_t
r^t 元组对轨迹进行建模。 reward-to go 是从当前时间步到 episode 结束的累积奖励。 这种新颖的表示不包括单步奖励
r
t
r_t
rt,而是有助于指导行动选择以优化回报。 在时间步
t
t
t,Decision Transformer 将自回归轨迹序列
τ
τ
τ 作为输入,其中包含最近的
K
K
K 步历史记录。
当使用离线收集的数据进行训练时,
。 在测试过程中, 其中 G*是一集的目标总回报。 每个轨迹
τ
τ
τ 对应于标准 Transformer 模型中的
3
K
3K
3K 个令牌。 为了对序列时间步信息进行编码,Decision Transformer 将相同的时间步嵌入连接到
s
t
s_t
st、
a
t
a_t
at 和
r
^
t
\hat r_t
r^t 的嵌入。 对应于状态标记的每个头都被训练为通过在连续动作空间时最小化均方损失来预测动作。
图 1. 用于小样本策略泛化的 Prompt-DT。 左边显示了每个任务
T
i
∈
T
t
r
a
i
n
∪
T
t
e
s
t
T_i ∈ T^{train} ∪ T^{test}
Ti∈Ttrain∪Ttest的少量样本演示数据集
P
i
P_i
Pi。 轨迹提示定义为从存储在
P
i
P_i
Pi 中的各种事件中采样的长度为
K
K
K 的轨迹序列。 在预训练和小样本评估中,Prompt-DT 将轨迹提示增强和最近的
K
K
K 步历史作为输入,并自回归输出与输入序列中每个状态对应的动作。
4.1 问题表述
在使用离线数据对一组任务进行训练后,我们将离线少样本 RL 问题形式化为针对新任务的少样本策略泛化问题。 训练集
T
t
r
a
i
n
T^{train}
Ttrain 中的每个任务
T
i
T_i
Ti 都与数据集
D
i
D_i
Di 相关联,其中包含使用未知行为策略
π
i
π_i
πi 预先收集的轨迹。 与使用特定于任务的离线数据或在线交互更新模型权重的离线元 RL 相比,我们希望在没有微调或梯度更新的情况下实现泛化,从而保持高效率并避免由于参数移动而导致的灾难性遗忘。
为了在 RL 的上下文中实现少样本学习,我们假设存在一个数据集
P
i
P_i
Pi,其中包含每个任务
T
i
∈
T
t
r
a
i
n
∪
T
t
e
s
t
T_i ∈ T^{train} ∪ T ^{test}
Ti∈Ttrain∪Ttest 的少样本演示。 对于训练任务
T
i
∈
T
t
r
a
i
n
T_i ∈ T^{train}
Ti∈Ttrain,我们让
P
i
P_i
Pi 是离线数据集
D
i
D_i
Di 的一个子集。 测试任务
T
i
∈
T
T_i ∈ T
Ti∈T 测试的
P
i
P_i
Pi 可以通过人类实验者或行为策略获得。 在这项工作中,我们希望设计一种架构,可以直接提取存储在演示数据集
P
i
P_i
Pi 中的独特任务特定信息,并利用这些信息来指导策略生成。
相反,我们将 RL 的轨迹提示定义为由几个轨迹段组成的序列。 每个轨迹段包含多个状态
s
∗
s*
s∗、动作
a
∗
a*
a∗ 和 reward-to go
r
^
∗
\hat r*
r^∗ 元组
(
s
∗
,
a
∗
,
r
^
∗
)
(s*, a*, \hat r*)
(s∗,a∗,r^∗),遵循 Decision Transformer 中的轨迹表示。 每个带有上标的元素都与轨迹提示相关联。 由于每个顺序决策任务
T
i
T_i
Ti 都可以建模为 MDP
M
i
M_i
Mi,因此轨迹提示可以存储部分到完整的信息,以通过隐式捕获转换模型和奖励函数来指定任务。 通过直接从少镜头演示数据集
P
i
P_i
Pi 中采样轨迹段,与文本提示相比,轨迹提示相对容易获得。 形式上,我们将任务
T
i
T_i
Ti 的轨迹提示
τ
i
τ_i
τi 定义为
K
∗
K*
K∗ 是提示中存储的环境步骤数。 请注意,我们选择的
K
∗
K*
K∗ 比任务的范围短得多。 因此,轨迹提示仅包含帮助识别任务所需的信息,但没有足够的信息供智能体模仿。
4.3 提示 DT 体系结构
我们的 Prompt-DT 架构建立在 Decision Transformer (Chen et al., 2021) 的基础上,并通过提示增强序列建模问题的视角解决了离线小样本 RL 问题。 建议的轨迹提示允许对 Decision Transformer 进行最小的架构更改以进行泛化。 对于每个任务
T
i
T_i
Ti,Prompt-DT 将
τ
τ
τ 输入作为输入,其中包含从
P
i
P_i
Pi 获得的
K
∗
K*
K∗步轨迹提示和从
D
i
D_i
Di 采样的最近
K
K
K 步历史记录。 形式上
τ
i
n
p
u
t
=
(
τ
∗
i
,
τ
i
)
τ^{input} = (τ*_i, τ_i)
τinput=(τ∗i,τi)。 由于每个时间步的数据对是一个三元组
(
s
,
a
,
r
^
)
(s, a, \hat r)
(s,a,r^),因此输入序列对应于 Transformer 中的
3
(
K
∗
+
K
)
3(K* + K)
3(K∗+K) 个标记。 Prompt-DT 自回归地输出与输入序列中的状态标记相对应的头部
K
∗
+
K
K* + K
K∗+K 动作。
在实现中,我们利用随机轨迹提示
τ
∗
i
τ*_i
τ∗i 来提高训练稳定性并避免算法 2 中的过度拟合。任务
T
i
T_i
Ti 的随机轨迹提示
τ
∗
i
τ*_i
τ∗i 由长度为
H
H
H 且
K
∗
=
J
H
K* = JH
K∗=JH 的
J
J
J 个轨迹段组成。
在训练期间,Prompt-DT 最大限度地减少预测动作与提示和最近历史数据中的动作之间的误差。 通过学习存储在轨迹提示中的目标动作,Prompt-DT 被激励提取存储在轨迹提示中的特定于任务的信息,并将其与最近的历史记录相结合以预测未来的动作。 在连续设置中,Prompt-DT 通过梯度下降最小化均方损失。 在每个训练步骤中,我们对包含每个训练任务的提示历史对的批次
B
B
B 进行采样。 我们的批次
B
B
B 不是使用从一个训练任务中采样的数据批次迭代地进行梯度更新,而是通过聚合
T
t
r
a
i
n
T^{train}
Ttrain 中所有任务的梯度估计来帮助稳定训练。
在测试时,我们假设离线预训练的 Prompt DT 可以针对
T
t
e
s
t
T^{test}
Ttest 中的每个评估任务与模拟器进行交互。 这种在线评估假设类似于训练有素的 RL 代理的实际部署。 我们基于演示集
P
i
P_i
Pi 采样随机轨迹提示,用于类似于训练过程的任务
T
i
∈
T
t
e
s
t
T_i ∈ T^{test}
Ti∈Ttest。 Prompt DT 然后生成将提示和最近的上下文作为输入的操作。 在每一集的开始,我们用全零初始化最近的历史
τ
τ
τ 用于 Prompt-DT 预测,并用流式收集的数据更新它。
一、前言
JMobile软件提供了一个调度器引擎,通过设定的时间计划表自动执行特定动作,从而赋予HMI/网关调度器功能,减少现场操作人员的工作压力。本文主要介绍如何实现JMobile软件的调度器功能。
二、工具
1. Windows PC
2. JMobile Studio…
留个笔记自用
DeepSFM: Structure From Motion Via Deep Bundle Adjustment
做什么
首先是最基础的,Structure-from-Motion(SFM),SFM可以简单翻译成运动估计,是一种基于dui8序列图片进行三维重建的算法。简单来说就…