如何处理 Advantage Actor-Critic 算法中的剧集终止?

人工智能 强化学习
2021-11-05 05:13:02

Advantage Actor-Critic 算法可以使用以下表达式来获得优势的 1 步估计:

A(st,at)=r(st,at)+γV(st+1)(1donet+1)V(st)

在哪里donet+1=1如果st+1是一个终端状态(剧集的结尾)和0否则。

假设我们的学习环境有一个目标,收集这个目标就会得到奖励r=1并结束这一集。代理也收到r=0.1每一步,鼓励它更快地收集目标。我们正在学习γ=0.99我们在之后终止这一集T如果没有收集到目标,则为时间步长。

对于收集目标之前的状态,我们有以下优势,这似乎很合理:A(st,at)=1V(st).

对于时间步T1,无论状态如何,我们都有:A(sT1,aT1)=r(sT1,aT1)V(sT1)0.10.11γ=0.1+10=9.9 (在我们还不能经常可靠地收集目标的假设下,这是正确的,因此价值函数收敛到接近于ravg1γ10)。

通常,T不是状态的一部分,所以价值函数无法预测reward-to-go的突然变化。所以,突然之间,我们在时间步采取的任意行动获得了(相对)很大的优势T1. 遵循策略梯度规则,我们将显着增加在剧集结束时采取任意行动的概率,即使我们没有取得任何成果。这会很快破坏学习过程。

人们在实践中如何处理这个问题?我的想法:

  1. 区分实际情节终止和由时间限制引起的情节终止,例如,对于它们,我们不会将下一步值估计替换为0.
  2. 不知何故添加t状态使得价值函数可以学习预测情节的终止。

正如我所注意到的,OpenAI 基线中的 A2C 实现似乎并不关心这些:

3个回答

首先是一个小提示:我不认为你的表达A(sT1,aT1)看起来正确。如果我们假设V(sT)=0(即,假设我们不可能一步达到目标sT1), 我们有:

A(sT1,aT1)=r(sT1,aT1)+γV(sT)(1doneT)V(sT1)=r(sT1,aT1)V(sT1).

在这个表达式中,我们通常会有r(sT1,aT1)=0.1, 而你似乎误拿了+0.1在你的帖子里。


撇开这些细节不谈;是的,正如您所描述的,可能会突然出现积极的优势估计。但这不是问题,这正是我们期望根据您对环境的描述发生的情况。

您描述了一个环境,其中代理可能会随机游荡(至少在它还没有学习好的策略时),并且一遍又一遍地产生负奖励。这自然会导致所有遇到的状态的负值估计。突然,它做了一些事情,这一集结束了;它收到了不错的奖励0而不是另一个负面奖励(这实际上“感觉”像奖金,正面奖励,超出预期)。当你的代理还没有学到一个可以达到更好奖励的好策略时1,这确实是一个很好的结果,一个很好的行动,理所当然应该得到加强。

因为这一情节终止的事件大多与状态无关(我说“大部分”,因为理论上它可能最终在接近目标的状态中比在远离目标的状态中稍微少一些),它会最终(在足够的训练时间之后)最终在所有州几乎同样频繁地发生。从忽略当前时间步长的代理的角度来看,这将被视为在非确定性环境中纯粹偶然发生的事件。

这不一定是个问题。由于奖励观察的差异增加(这可以通过使用低学习率/大批量大小来解决),它可能会减慢学习速度,但是强化学习算法几乎总是自然地构建来处理不确定性环境,它可以解决这个问题,它可以对相同状态+动作对观察到的所有不同结果进行平均。这不是一个需要处理的问题


我的想法:

  1. 区分实际情节终止和由时间限制引起的情节终止,例如,对于它们,我们不会将下一步值估计替换为0.
  2. 不知何故添加t状态使得价值函数可以学习预测情节的终止。

第一个想法从根本上改变了你的算法正在学习的数量,它本质上会使你的学习算法不正确。总有可能它似乎仍然可以学习到一些有用的东西(即使存在错误/技术上不正确的部分,许多机器学习/强化学习算法仍然看起来没问题),但它很可能表现更差。

第二个想法,虽然如我上面的回答中所解释的那样没有必要,但只要做得好,它仍然可能有助于学习速度它可能会有所帮助,因为它可以增加算法“解释”其观察结果的能力,更重要的是“解释”其观察结果的差异。

我看到的主要问题是添加t您的输入是它自然不是二进制变量。很多时候你会发现我们只是在(深度)强化学习算法中使用了一堆二进制输入。当所有输入都具有相同的量级时,更容易让学习过程运行良好,调整学习率等超参数。如果你突然插入一个额外的输入,它可以取更大的值(比如直接加起来t作为输入),这将更加困难。添加tT作为输入可能会更好,因为它仍然会在01.

我想指出这篇论文:https ://arxiv.org/pdf/1712.00378.pdf ,它正好回答了这个问题。

然后我们表明,当学习时间无限任务的策略时,有必要进行正确的价值估计,当终止是由于时间限制或除环境因素之外的任何提前终止原因时,在部分情节结束时继续引导.

因此,作者认为,目标y对于单步 TD 更新,在转换到一个状态之后s并获得奖励r, 应该:

y={rif environment terminatesr+γv^π(s)otherwise (including timeouts)

实际需要一个T或者tmax是基于谨慎怀疑作为成本控制措施的重要性。在某个时刻,放弃一个无法确定其解决方案的目标是明智的。这是一种用于最小化与寻求学习目标的业务相关的更广泛的损失函数的技术。

忽略容易保留的独立过程变量状态的知识t在其领域的背景下[1,T]无关紧要就像在没有项目管理的情况下从事项目一样。无法准确评估要跳过的内容和要承担的风险,从而降低了与最佳状态相关的成功概率。

当然,在任何一步获得的价值都是当前路径优势的指标,这种肯定会影响之前取得有利结果的可能性t达到T. 当然,任何可用于预测路径上的可能值的知识都应该影响该选择。

问题作者的直觉是批评者应该意识到利益相关者可能很快就会停止项目,这是正确的。就数学而言,紧迫性是否可以表述为u(t)1Tt+1并用作术语或因素需要考虑所涉及的概率。优势表达式应该反映概率的基本关系在概率分布中的应用,正如考虑到在追求目标的任何时间点上已知的所有信息所看到的那样。

唯一可以从优势表达式中排除已知变量的情况是,如果它可以被证明是绝对不相关的,或者它的相关性足够小以保证排除以提高计算速度以换取准确性的损失和/或可靠性。