探究强化学习中循环神经网络的动作编码

arXiv cs.LG 论文

摘要

本文探究如何将动作信息纳入强化学习的循环神经网络架构中,考察了设计选择,并在多个示例域上进行了实证评估。

arXiv:2605.16318v1 公告类型:新 摘要:构建和维护状态以学习策略和价值函数对于在现实世界中部署强化学习(RL)智能体至关重要。循环神经网络(RNN)已成为状态构建问题的关键兴趣点,多个大规模强化学习智能体都采用了循环网络。尽管RNN已成为许多RL应用的主流,但许多对性能提升至关重要的关键设计选择和实现细节往往未被报告。在这项工作中,我们讨论了RNN架构在RL中使用时可以(且已经)进行修改的一个方面。具体来说,我们研究了如何将动作信息纳入循环单元的状态更新函数中。我们讨论了使用动作信息的几种选择,并在一组示例域上对所得到的架构进行了实证评估。最后,我们讨论了未来开发循环单元的工作以及RL设置特有的挑战。
查看原文
查看缓存全文

缓存时间: 2026/05/19 06:40

# 探究强化学习中递归神经网络的动作编码  
**来源**:https://arxiv.org/html/2605.16318  

\sidecaptionvpos figuret  
\undefine@keynewfloatplacement  
\undefine@keynewfloatname  
\undefine@keynewfloatfileext  
\undefine@keynewfloatwithin  

Matthew Schlegel  
[email protected]  
阿尔伯塔大学  

Volodymyr Tkachuk  
[email protected]  
阿尔伯塔大学  

Adam White  
[email protected]  
阿尔伯塔大学  

Martha White  
[email protected]  
阿尔伯塔大学  

###### 摘要  
构建并维护状态以学习策略和价值函数,是将强化学习(RL)智能体部署到现实世界的关键。递归神经网络(RNN)已成为解决状态构建问题的关键关注点,多个大规模强化学习智能体也采用了递归网络。虽然RNN已成为许多RL应用中的核心组件,但许多关键的涉及性能提升的设计选择和实现细节往往未被报告。本文中,我们将讨论RNN架构可(且已经)为RL进行修改的一个维度。具体来说,我们研究如何将动作信息纳入递归单元的状态更新函数。我们讨论了几种使用动作信息的选择,并在一组具有说明性的领域上对由此产生的架构进行了实证评估。最后,我们讨论了开发递归单元的未来工作,并探讨了特定于RL设置的具体挑战。  

## 1 引言  
学习在仅获得部分世界信息的情况下进行行为和预测,对于将强化学习(RL)算法应用于大型复杂领域至关重要。例如,一个已部署的自动航天器,其传感器出现故障,只能间断地读取信号。为了让航天器继续服役,它需要采用一种学习算法,以维护关于间断传感器读数历史的有用信息(或状态),并将这些信息与其他传感器以及航天器的行为方式联系起来。像《星际争霸》(vinyals2019grandmaster)这样的游戏系统提供了另一个很好的例子。一个玩《星际争霸》的智能体必须构建出地图、自己的基地和策略,以及敌方基地和策略的可用表示,同时它需要将观测集中在特定位置以执行动作。  

深度强化学习扩展了强化学习可应用的问题类型,特别是那些具有复杂环境观测的问题(mnih2015human;vinyals2019grandmaster)。尽管在工程设计非递归网络方面已有大量工作(hessel2017;espeholt2018impala),但针对强化学习中的递归架构仍存在若干挑战(hausknecht2015;zhu2017improving;igl2018deep;rafiee2020eye;schlegel2020general)。在将递归架构应用于强化学习问题时,需要做出许多设计与算法决策。我们在第6节(https://arxiv.org/html/2605.16318#S6)中对递归智能体的开放问题进行了更详细的讨论。  

递归神经网络(RNN)已被确立为建模具有时间依赖性数据的重要工具。它们主要应用于语言和视频预测(mikolov2010recurrent;tiang2016;Saon2017;wang2018eidetic;oh2015),但也用于传统时间序列预测(bianchi2017overview)和RL(onat1998recurrent;bakker2002;wierstra2007solving;hausknecht2015;heess2015)。许多专门的架构已被开发出来,以改进带递归的学习。这些架构旨在更好地建模长时间依赖性并避免饱和,包括长短时记忆单元(LSTM)(hochreiter1997)、门控循环单元(GRU)(cho2014;chung2014empirical)、非饱和递归单元(NRU)(chandar2019)等。大多数现代RNN架构通过加性操作整合信息。然而,一些工作也研究了乘性更新(sutskever2011;wu2016),这源于所谓的二阶RNN(goudreau1994)。  

> 参见图注  
> **图1**:在环世界中使用经验回放以及三种将动作纳入RNN的策略时,各种RNN单元的学习曲线。智能体学习20个GVF预测,共300k步,我们报告了均方根值误差,在50次运行上取平均,95%置信区间使用1000步窗口平均。完整细节见第5.1节(https://arxiv.org/html/2605.16318#S5.SS1)。  

一个重要的设计决策是将动作纳入状态更新函数时所采用的策略,这对智能体的预测和控制能力有很大影响(见图1(https://arxiv.org/html/2605.16318#S1.F1))。这一点之前已被注意到,zhu2017improving对这些选择的重要性进行了讨论,并开发了一种架构,该架构通过几层对动作进行编码,然后再与观测编码拼接。在RL的RNN状态更新中,也使用了其他类型的动作编码(schaefer2007recurrent;zhu2017improving;schlegel2020general),但没有深入讨论或重点关注特定架构选择所带来的影响。在其他情况下,动作似乎被忽略了(oh2015;hausknecht2015;espeholt2018impala)。其他状态构建方法也将动作视为一个主要组成部分,状态预测表示将预测编码为给定历史下看到动作-观测对的可能性(littman2002)。  

在认知科学中,动作在感知中扮演着重要角色。noe2004action提出,感知取决于我们能够对周围世界采取以及已经采取的行动。实际上,可以将强化学习智能体的目标视为控制和预测体验(或数据)流,这不可避免地意味着我们必须对数据流上的能动性进行建模。通过共同编码(prinz1990),动作在理解大脑中的表示(或编码)方面也发挥了重要作用,并且在预测与动作在大脑中更广泛的相互作用中也是如此(clark2013whatever)。虽然RNN架构并不完全类似于这些认知模型,但动作在感知中的作用进一步激励我们需要更深入地研究动作在RL智能体感知系统中所起的作用。  

在本文中,我们集中研究几种将动作纳入部分可观测RL设置中RNN状态更新函数的架构。这些架构中的许多是先前为递归架构提出的(即zhu2017improving;schlegel2020general),其他一些则与这些架构相关或为其明显扩展。我们在几个具有说明性的领域上进行了深入的实证评估,并概述了领域与架构之间的关系。最后,我们讨论了为RL问题设计递归架构的未来工作,并探讨了未来需要研究的RL设置特有挑战。  

## 2 问题设置  
我们将智能体-环境交互形式化为部分可观测马尔可夫决策过程(POMDP)。底层动力学由元组 \((S, A, P, f_o, R)\) 定义。给定状态 \(\psi \in S\) 和 \(a \in A\),环境根据状态转移概率矩阵 \(P: S \times A \times S \rightarrow [0, \infty)\) 转移到新状态 \(\psi' \in S\),奖励由 \(R: S \times A \rightarrow \mathbb{R}\) 给出。智能体观测到的序列为 \(o_t, a_t, r_{t+1}, o_{t+1}, a_{t+1}, \ldots\),其中观测是状态的一个有损函数:\(o_t \overset{\tiny def}{=} f_o(\psi_t) \in \mathbb{R}^m\);动作由智能体的当前策略选择:\(a_t \sim \pi(\cdot | o_0, a_0, ..., a_{t-1}, o_t) \rightarrow [0, \infty)\);奖励为 \(r_t \overset{\tiny def}{=} f_r(\psi_0, \psi_1, ..., \psi_t) \in \mathbb{R}\)。  

本文我们进行两类实验:预测和控制。对于预测,通用价值函数(GVF)定义了目标(sutton2011;white2015thesis)。一个GVF是一个元组,包含累积量 \(c_{t+1} = f_c(o_t, a_t, o_{t+1}, r_{t+1}) \in \mathbb{R}\)、延续函数 \(\gamma_{t+1} = f_\gamma(o_t, a_t, o_{t+1}) \in [0, 1]\),以及以历史 \(h_t = [a_0, o_1, a_1, o_2, a_2, ..., o_t]\) 为条件的策略 \(\pi(a_t|h_t) \in [0, \infty)\)。智能体的目标是学习一个价值函数,估计在 \(\pi\) 下的期望累积回报:  
\(\mathbb{E}_\pi \left[ G_t^c | H_t = h_t \right]\),其中 \(G_t^c \overset{\tiny def}{=} c_{t+1} + \gamma_{t+1} G_{t+1}^c\)。  

为了估计价值函数,我们使用离策略半梯度 TD(0)(sutton1988learning;tesauro1995temporal)。对于控制设置,我们学习一个策略,最大化折扣累积奖励或回报:\(G_t \overset{\tiny def}{=} \sum_{i=0}^\infty \gamma^i r_{i+t+1}\)。本文我们使用 Q-learning(watkins1992q)构建动作-价值函数,并根据 epsilon-贪婪策略选择动作。  

## 3 用递归网络构建状态  
为了有效的预测和控制,智能体需要一个状态表示 \(s_t \in \mathbb{R}^n\),它是过去的一个充分统计量:  
\(\mathbb{E}\left[ G^c_t | s_t \right] = \mathbb{E}\left[ G^c_t | s_t, h_t \right]\)。当智能体学到这样的状态时,它无需存储任何历史信息即可构建策略和价值函数。例如,对于预测,它可以学习 \(V(s_t) \approx \mathbb{E}\left[ G^c_t | s_t \right]\)。本节我们将描述本文中用于学习状态的策略。  

RNN 提供了学习 \(s_t\) 及相关状态更新函数的一种解决方案。最简单的 RNN 是学习参数 \(\theta \in \mathbb{R}^d\),递归计算:  
\(s_t = \sigma(\theta x_t + b)\),其中 \(x_t = [o_t, s_{t-1}]\),\(\sigma\) 是任意非线性传递函数(通常为 tanh)。虽然拼接信息(或进行加性操作)已成为 RNN 的标准做法,但乘性操作也被探索过:  
\((s_t)_i = \sigma\left( \sum_{j=1}^M \sum_{k=1}^N \theta_{ijk} (o_t)_j (s_{t-1})_k + b_i \right) \quad \triangleright \text{其中 } \theta \in \mathbb{R}^{|s| \times |o| \times |s|}\)。  
使用这类操作最初被称为二阶 RNN(goudreau1994),并在字符级语言建模任务中取得了里程碑式的成功(sutskever2011)。  

RNN 通常通过时间反向传播(BPTT)进行训练(mozer1995focused)。该算法有效将网络沿时间序列展开,并计算梯度,就好像它是一个具有共享权重的大型网络。这种展开通常在某个步数 \(\tau\) 处截断。虽然这缓解了计算成本问题,但学习性能可能对截断参数敏感(pascanu2013difficulty)。在计算特定样本的时间梯度时,我们遵循(schlegel2020general)的方法,定义损失为:  
\(\mathcal{L}_t(\theta) = \sum_i^N (v_i(s_t(\theta)) - y_{t,i})^2\),  
其中 \(N\) 是批次大小,\(y\) 是由特定算法定义的目标。这实际上意味着我们计算单步的损失,并仅从该步计算梯度。  

简单递归单元(其他递归单元程度较轻)存在几个已知问题。第一个是梯度消失和爆炸问题(pascanu2013difficulty)。梯度在 BPTT 中通过链式法则相乘时,可能会变得非常大或消失为零。无论哪种情况,学习到的网络通常表现不佳,需要应用许多实用技巧来稳定学习(bengio2013)。第二个问题称为饱和。当权重 \(\theta\) 变大,隐藏单元的激活位于传递函数的极端值时,会发生饱和。虽然这对学习稳定性不构成问题,但会限制网络的容量,并使跟踪环境动态变化变得更加困难(chandar2019)。由于这些问题,已开发出几种简单递归单元的变体,包括 LSTM、GRU 和 NSRU。我们的实验集中在简单递归单元(RNN)和 GRU 上。  

最后,为了提高样本效率,我们采用了经验回放(ER),这是深度(递归)系统在 RL 中的关键组成部分(mnih2015human;hausknecht2015)。这里有两个关键选择:状态在缓冲区中如何存储和更新,以及序列如何采样(kapturowski2018recurrent)。我们将单元的隐藏状态作为经验元组的一部分存储在经验回放缓冲区中。当从缓冲区采样以用于目标网络和非目标网络时,该状态用于初始化状态。我们将梯度传回存储的状态,以根据模型参数更新它们,详见第6节(https://arxiv.org/html/2605.16318#S6)的完整讨论。我们还存储了用于每个情节初始状态的独立初始状态,该状态随梯度更新。我们的方法与 kapturowski2018recurrent 的方法略有不同,但预计此架构选择对本文的讨论影响很小。如果从回放中采样到一个情节的开始,我们使用该向量的最新版本来初始化隐藏状态。对于采样,我们允许智能体跨情节采样状态。对于情节末尾的样本,我们简单地使用比 \(\tau\) 更短的序列长度。  

## 4 纳入动作的架构设计  

> 参见图注  
> **图2**:乘性和加性 RNN 的可视化。权重矩阵的维度使用 RNN 状态的大小 \(|s_{t-1}| = n\) 和观测的大小 \(|o_t| = m\)。  

在本文中,我们定义两个大类...

相似文章

重新审视复杂动作空间中的动作分解

arXiv cs.LG

本文提出了一项横断面研究,比较了在混合离散-连续动作空间中三种强化学习算法家族(PPO、SAC、DQN)上的各种动作分解方法(独立网络、共享编码器、VDN、QPLEX、联合、自回归),并引入了两个新的轻量级环境以及变体VDN-PPO和PPO-MIX。

奖励作为具身世界模型的智能体

arXiv cs.AI

本文介绍了奖励作为智能体(Reward as an Agent)和DynDiff-GRPO,以解决具身世界模型中强化学习的奖励黑客攻击和有限探索问题,实现了显著的准确率提升。

流经状态:用于强化学习的神经ODE正则化

arXiv cs.LG

本文提出了一种基于神经ODE的正则化方法,该方法强制强化学习智能体中的潜在嵌入遵循一致的ODE流,使表示学习与环境动态对齐,并在Atari和网格世界基准上取得了性能提升。