尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

智能体信念记忆:在部分可观测环境中构建内部世界模型

智能体信念记忆:在部分可观测环境中构建内部世界模型 1. 项目概述当智能体“看不见”全局时记忆如何塑造信念在构建智能体Agent系统的实践中我们常常面临一个核心挑战现实世界并非一个完全透明的棋局。智能体无法像上帝视角一样随时获取环境的完整状态。这种“部分可观测性”Partial Observability是智能体与真实世界交互的常态——机器人传感器有盲区交易算法无法知晓所有市场参与者的意图游戏角色只能看到视野范围内的敌人。在这种信息受限的困境下智能体如何形成对世界的准确理解并做出明智决策答案的核心就在于“记忆”更具体地说是一种能够处理不确定性、构建并维护内部世界模型的“信念记忆”Belief Memory。“Belief Memory: Agent Memory Under Partial Observability”这个标题精准地指向了强化学习、机器人学乃至通用人工智能中的一个深水区。它探讨的不是简单的“记住过去发生了什么”而是“如何基于零碎、局部的历史观察推断出当前可能处于哪些状态并随着时间推移更新这种推断”。这里的“信念”Belief在概率论中指的是智能体对环境所有可能状态的一个概率分布。信念记忆就是智能体维护和更新这个概率分布的历史轨迹与机制。想象一下你在浓雾中探险只能看到脚下几米的范围。你听到左边有流水声右边有树叶沙沙响。仅凭当前一瞥你无法确定自己的精确位置。但如果你记得十分钟前走过一座桥五分钟前路过一个路标那么结合这些零散的记忆你就能在大脑的地图上将当前位置的可能性缩小到几个区域。这个不断结合新观察、更新位置可能性的“大脑地图”及其历史就是你的信念记忆系统。对于智能体开发者而言构建有效的信念记忆系统是解锁复杂、非完全信息任务的关键。无论是让家庭服务机器人仅凭摄像头在杂乱房间中寻找遥控器还是让交易算法在信息不对称的市场中捕捉套利机会其底层都需要一个能够“于迷雾中见真章”的记忆核心。本文将深入拆解信念记忆的核心原理、主流实现方案、实操中的关键细节并分享我在构建此类系统时积累的实战心得与避坑指南。2. 核心概念拆解信念、记忆与部分可观测性的三角关系要理解信念记忆必须首先厘清三个相互关联的核心概念部分可观测性、信念状态以及记忆的作用。这三者构成了智能体在信息不完备世界中生存的逻辑基础。2.1 部分可观测性智能体的“感官局限”在经典的马尔可夫决策过程MDP中智能体在每个时刻都能直接感知到环境的完整状态State这是一个理想化的假设。而部分可观测马尔可夫决策过程POMDP则更贴近现实。在POMDP中环境有一个真实的隐藏状态s_t但智能体无法直接看到它。相反智能体只能接收到一个观察值o_t这个观察值由隐藏状态通过某个观测概率函数O(o_t | s_t)生成。例如在一个简单的导航网格世界中真实状态是智能体在网格中的精确坐标(x, y)。但在部分可观测条件下智能体的摄像头观察可能只能看到周围3x3格子内的障碍物情况而无法确定自己在这个小视野中的绝对位置。o_t就是这9个格子内容的拼接。多个不同的真实状态s如地图上多个结构相似的角落完全可能产生相同的局部观察o这就导致了不确定性。注意部分可观测性不等于噪声。噪声是观察值相对于真实状态的随机误差如传感器精度误差而部分可观测性本质上是信息维度的缺失——有些状态变量根本观察不到。实践中两者常同时存在但设计信念记忆时主要挑战源于后者。2.2 信念状态从“看见”到“推断”既然看不到真实状态s_t智能体就必须依靠推断。信念状态b_t就是这个推断的数学表示它是一个在所有可能状态空间S上的概率分布。b_t(s)表示在时刻t智能体认为环境处于真实状态s的概率。所有概率之和为1。信念状态是解决POMDP问题的基石。它将被部分观测的、非马尔可夫的历史因为当前观察不足以决定未来转换成了一个完全的、马尔可夫的信念空间中的“状态”。也就是说当前的信念b_t包含了做出最优决策所需的全部历史信息在概率意义下。智能体的策略不再依赖于历史观察序列o_0, o_1, ..., o_t而是依赖于当前的信念状态b_t。信念的更新遵循贝叶斯规则。当智能体执行动作a_t并收到新观察o_{t1}后信念从b_t更新到b_{t1}b_{t1}(s) η * O(o_{t1} | s, a_t) * Σ_{s in S} T(s | s, a_t) * b_t(s)其中T是状态转移函数η是归一化常数。这个公式直观地表达了新信念是对所有可能上一状态s考虑其转移至s的概率并利用新观察o_{t1}对s进行验证和加权最后归一化的结果。2.3 记忆的角色信念的载体与构建者在动态环境中信念b_t不是凭空产生的它是通过对历史观察和动作序列进行加工而形成的。这就是记忆系统的核心职责。记忆在这里扮演了两个关键角色信息存储原始的记忆如循环神经网络的隐藏状态、注意力机制中的键值对、外部记忆库存储了历史的压缩或原始表示(a_0, o_1, a_1, o_2, ...)。信念生成器记忆的读取和加工过程实质上就是信念b_t的生成过程。一个设计良好的记忆模块应能有效地从存储的历史信息中综合出当前对隐藏状态的最佳概率估计。因此“信念记忆”可以理解为一种特殊的内存架构其设计目标不是简单地复现历史而是为了高效、准确地维护和更新信念状态。它连接了原始的、序列化的观察流与决策所需的、概括性的信念表示。3. 主流技术方案解析从理论到实现的四种路径将信念记忆的理论落地有几种主流的技术路径它们在不同复杂度、不同计算资源的场景下各有优劣。理解这些方案的原理和适用边界是进行技术选型的关键。3.1 方案一基于贝叶斯滤波的精确信念维护这是最直接、理论最完备的方法核心是直接实现或近似实现上述的贝叶斯更新公式。适用于状态空间离散且规模不大的情况。原理显式地维护一个概率向量b其长度等于状态数|S|。每一步都根据已知的转移模型T和观测模型O进行预测和更新。实现# 假设离散状态已知T和O import numpy as np class BayesianFilterMemory: def __init__(self, num_states, transition_model, observation_model): self.belief np.ones(num_states) / num_states # 初始均匀分布 self.T transition_model # 形状: [num_states, num_actions, num_states] self.O observation_model # 形状: [num_states, num_actions, num_observations] def update(self, action, observation): # 预测步b_pred(s) Σ_s T(s|s,a) * b(s) b_pred np.dot(self.belief, self.T[:, action, :]) # 简化计算需根据T定义调整 # 更新步b_new(s) η * O(o|s,a) * b_pred(s) likelihood self.O[:, action, observation] b_new likelihood * b_pred b_new b_new / (b_new.sum() 1e-10) # 归一化防止除零 self.belief b_new return self.belief优点数学上最优在模型准确的前提下信念更新精确透明。缺点严重依赖精确的T和O模型而这两个模型在复杂环境中极难获得。并且计算复杂度随状态空间维度指数增长“维数灾难”无法应用于连续或大规模状态空间。适用场景棋盘游戏、小型离散规划问题、理论研究原型。3.2 方案二基于深度学习的端到端信念学习当模型未知或状态空间巨大时我们放弃显式维护概率分布转而让神经网络直接从历史中学习一个“信念表示”这个表示隐含地包含了决策所需的信息。原理使用循环神经网络RNN、长短期记忆网络LSTM或门控循环单元GRU作为记忆单元。网络的隐藏状态h_t被视作对历史(a_0, o_1, ..., o_t)的压缩编码它即作为信念b_t的替代品直接输入给策略网络进行决策。h_t的更新由网络权重在训练中自动学习而非遵循固定的贝叶斯规则。实现这是深度强化学习如DRQN, A3C在部分可观测环境中的标准做法。import torch.nn as nn class BeliefLSTM(nn.Module): def __init__(self, obs_dim, action_dim, hidden_dim): super().__init__() self.lstm nn.LSTM(input_sizeobs_dim action_dim, hidden_sizehidden_dim, batch_firstTrue) # 通常上一时刻的动作也会和当前观察一起输入以提供连贯性 self.hidden None def forward(self, observations, actions, resetFalse): # observations: [batch, seq_len, obs_dim] # actions: [batch, seq_len, action_dim] 或上一时刻动作 if reset or self.hidden is None: self.hidden self._init_hidden(observations.size(0)) # 拼接观察和动作作为LSTM输入 lstm_input torch.cat([observations, actions], dim-1) output, self.hidden self.lstm(lstm_input, self.hidden) # output的最后一个时间步的隐藏状态可作为当前信念表示 belief_rep output[:, -1, :] return belief_rep优点无需环境模型能处理高维连续观察如图像通过训练自动学习历史中的关键模式适用性极广。缺点信念表示不透明是一个“黑箱”难以解释智能体到底“相信”什么。训练需要大量数据且RNN类网络存在长期依赖学习困难的问题。适用场景视觉丰富的环境如Atari游戏、机器人视觉导航、模型未知的复杂任务。3.3 方案三基于注意力机制的显式记忆访问为了克服RNN在长程记忆和精确回忆方面的不足并增加可解释性引入了外部记忆库和注意力机制。原理维护一个可读写的外部记忆矩阵M其中每一行存储了过去某个时间步的观察或观察的编码。当需要形成当前信念或做决策时使用注意力机制如Transformer中的缩放点积注意力来查询这个记忆库。注意力权重直观地显示了当前查询与历史记忆中各项的相关性这种“软检索”过程可以看作是在构建一个基于历史证据的、聚焦的信念。实现类似于Memory Networks或Transformer在强化学习中的应用。class ExternalMemoryWithAttention(nn.Module): def __init__(self, memory_size, key_dim, value_dim): super().__init__() self.memory None # 形状[batch, memory_size, value_dim] self.memory_size memory_size self.key_proj nn.Linear(value_dim, key_dim) self.query_proj nn.Linear(key_dim, key_dim) def write(self, new_value): # 实现记忆写入策略如先进先出(FIFO) # 这里简化为滚动更新 if self.memory is None: self.memory new_value.unsqueeze(1) else: self.memory torch.cat([self.memory[:, 1:, :], new_value.unsqueeze(1)], dim1) def read(self, query): # query: 当前观察/状态的编码 [batch, key_dim] keys self.key_proj(self.memory) # [batch, mem_size, key_dim] queries self.query_proj(query).unsqueeze(1) # [batch, 1, key_dim] # 计算注意力权重 attn_scores torch.bmm(queries, keys.transpose(1, 2)) / (key_dim ** 0.5) attn_weights F.softmax(attn_scores, dim-1) # [batch, 1, mem_size] # 基于注意力加权求和得到信念相关的上下文向量 context torch.bmm(attn_weights, self.memory).squeeze(1) # [batch, value_dim] return context, attn_weights # 返回信念表示和可解释的注意力权重优点记忆容量大且稳定注意力机制提供了某种程度的可解释性通过观察注意力权重可知智能体在关注历史的哪些部分擅长处理需要长程关联的任务。缺点结构相对复杂训练可能更不稳定如何设计有效的记忆写入和遗忘机制是一个挑战。适用场景需要引用遥远历史信息的任务如对话系统、需要多步推理的问答、长序列决策。3.4 方案四世界模型与潜在信念空间这是目前的前沿方向旨在结合学习与模型的优势。智能体学习一个“世界模型”该模型能在潜在空间中预测未来其隐藏状态自然成为理想的信念表示。原理通过自编码器或对比学习等方法将高维观察o_t编码到一个低维的潜在空间z_t。然后训练一个循环的动态模型如RSSM, Recurrent State-Space Model它根据潜在状态z_t和动作a_t来预测下一个潜在状态z_{t1}和可能的观察o_{t1}。这个动态模型的循环状态s_t注意这里的世界模型内部状态不同于POMDP的真实环境状态就是一个紧凑的、预测性的信念表示它编码了为预测未来所需的所有历史信息。实现DreamerV系列算法是典型代表。其信念更新是在潜在空间中进行的编码z_t ~ q(z_t | o_t, s_{t-1}, a_{t-1})(编码器产生当前潜在观察)信念更新s_t f(s_{t-1}, z_t, a_{t-1})(循环动态模型更新内部状态)预测基于s_t可以预测未来的潜在状态和奖励用于规划和策略学习。优点信念表示s_t具有强大的预测能力能进行“想象”规划样本效率高。潜在空间压缩了无关信息使信念更聚焦。缺点架构复杂训练难度大世界模型可能学习到有偏差的动态导致信念失真。适用场景样本珍贵的复杂环境如机器人操控、需要内部模拟和规划的任务。4. 实操构建指南以端到端LSTM信念记忆为例理论方案需要落地。我们以一个相对通用且常见的场景为例在一个视觉输入的部分可观测环境中使用LSTM构建信念记忆并整合进一个标准的演员-评论家Actor-Critic框架。这里假设环境提供图像观察。4.1 系统架构设计我们的智能体由以下几个核心模块组成视觉编码器CNN将原始图像观察o_t压缩为特征向量f_t。信念记忆模块LSTM接收历史特征和动作更新隐藏状态h_t作为信念表示。策略网络Actor基于信念表示h_t输出动作分布π(a_t | h_t)。价值网络Critic基于信念表示h_t评估状态价值V(h_t)。数据流如下o_t- CNN -f_t- (与a_{t-1}拼接) - LSTM -h_t- Actor/Critic。4.2 关键实现步骤与代码剖析步骤1定义网络结构import torch import torch.nn as nn import torch.nn.functional as F class VisualEncoder(nn.Module): 简单的CNN编码器将图像转换为特征向量 def __init__(self, input_channels, feature_dim): super().__init__() self.cnn nn.Sequential( nn.Conv2d(input_channels, 32, kernel_size8, stride4), nn.ReLU(), nn.Conv2d(32, 64, kernel_size4, stride2), nn.ReLU(), nn.Conv2d(64, 64, kernel_size3, stride1), nn.ReLU(), nn.Flatten(), nn.Linear(64 * 7 * 7, 512), # 假设输入84x84计算得到展平后尺寸 nn.ReLU(), nn.Linear(512, feature_dim) ) def forward(self, x): return self.cnn(x) class BeliefMemoryLSTM(nn.Module): 信念记忆核心LSTM单元 def __init__(self, feature_dim, action_dim, lstm_hidden_dim): super().__init__() self.lstm nn.LSTM(input_sizefeature_dim action_dim, hidden_sizelstm_hidden_dim, batch_firstTrue) self.lstm_hidden_dim lstm_hidden_dim self.hidden None # (h_n, c_n) def reset(self, batch_size1): 重置LSTM隐藏状态开始一个新序列 device next(self.parameters()).device self.hidden ( torch.zeros(1, batch_size, self.lstm_hidden_dim).to(device), torch.zeros(1, batch_size, self.lstm_hidden_dim).to(device) ) def forward(self, feature, prev_action): feature: 当前时刻编码后的观察特征 [batch, feature_dim] prev_action: 上一时刻执行的动作one-hot或嵌入[batch, action_dim] 返回: 当前信念表示 [batch, lstm_hidden_dim] # 拼接特征和上一时刻动作 lstm_input torch.cat([feature, prev_action], dim-1).unsqueeze(1) # [batch, 1, feat_dimact_dim] # LSTM前向传播 _, self.hidden self.lstm(lstm_input, self.hidden) # 输出我们不需要只更新隐藏状态 belief_rep self.hidden[0].squeeze(0) # 取h_n并去掉序列维 [batch, lstm_hidden_dim] return belief_rep class ActorCriticWithBelief(nn.Module): 整合了信念记忆的Actor-Critic网络 def __init__(self, obs_shape, num_actions, feature_dim256, lstm_hidden512): super().__init__() self.visual_encoder VisualEncoder(obs_shape[0], feature_dim) self.belief_memory BeliefMemoryLSTM(feature_dim, num_actions, lstm_hidden) self.actor nn.Linear(lstm_hidden, num_actions) self.critic nn.Linear(lstm_hidden, 1) def init_sequence(self, batch_size1): 开始一个新的交互序列如一局游戏开始 self.belief_memory.reset(batch_size) def forward(self, observation, prev_action, doneNone): observation: 当前图像 [batch, C, H, W] prev_action: 上一时刻动作索引整数张量[batch] done: 可选如果提供在done为True时重置LSTM状态 返回: 动作逻辑值 (logits), 状态价值, 信念表示 batch_size observation.size(0) # 如果提供了done信号需要处理状态重置。这是一个关键细节 if done is not None: # 找出batch中哪些环境实例需要重置记忆 reset_indices (done 1).nonzero(as_tupleTrue)[0] if len(reset_indices) 0: # 简单处理对于需要重置的实例将其对应的LSTM隐藏状态置零 # 更精细的做法是为每个环境实例维护独立的隐藏状态 self.belief_memory.hidden[0][:, reset_indices, :] 0 self.belief_memory.hidden[1][:, reset_indices, :] 0 # 编码观察 feature self.visual_encoder(observation) # 将动作索引转换为one-hot作为LSTM输入的一部分 prev_action_onehot F.one_hot(prev_action, num_classesself.actor.out_features).float() # 通过信念记忆模块 belief self.belief_memory(feature, prev_action_onehot) # 产生策略和价值 action_logits self.actor(belief) state_value self.critic(belief) return action_logits, state_value, belief步骤2训练流程适配使用带LSTM的Actor-Critic进行训练如PPO、A2C时需要序列化的数据。不能像处理完全可观测MDP那样随机采样独立的时间步。数据收集在环境中运行智能体按序列收集轨迹τ (o_0, a_0, r_1, o_1, a_1, ..., o_{T-1}, a_{T-1}, r_T, o_T)。同时需要记录每个时间步的done信号。序列化采样从回放缓冲区采样时应采样一个完整序列或一个足够长的片段如长度L64的时间窗口。这是因为LSTM的隐藏状态在序列内是连续的。前向传播将采样的序列片段按时间顺序输入网络。关键点在训练时需要将整个序列一次性输入并利用LSTM的序列处理能力同时要正确处理序列开始和done信号处的状态重置。通常我们会将done信号传入网络在doneTrue的时间步之后将对应环境实例的LSTM隐藏状态手动置零。损失计算与反向传播计算Actor和Critic的损失如PPO的 clipped surrogate loss 和 value loss然后进行反向传播。由于LSTM的存在反向传播会穿越时间BPTT需要注意梯度爆炸/消失问题可以使用梯度裁剪。实操心得在训练初期LSTM的隐藏状态是随机初始化的这会导致一个序列开始部分的输出不稳定。一个常见的技巧是在收集训练数据或评估时让智能体先与环境交互若干步如50步但不学习用这些步骤来“预热”warm-upLSTM的隐藏状态使其达到一个相对稳定的动态然后再开始正式的数据收集或性能评估。这能显著提高训练的稳定性和最终性能。5. 高级技巧与优化策略构建一个鲁棒的信念记忆系统远不止搭好网络结构那么简单。以下是一些提升性能的关键技巧和优化策略。5.1 信念表示的稳定性与一致性训练信念表示h_t应该是环境隐藏状态的稳定函数。但LSTM在训练初期可能产生剧烈波动的隐藏状态。为了促进稳定的信念学习可以引入辅助训练目标下一观察预测让信念表示h_t除了用于决策还通过一个解码器去预测下一时刻的观察o_{t1}或其特征。这迫使h_t编码更多关于环境动态的信息。class BeliefLSTMWithPrediction(BeliefMemoryLSTM): def __init__(self, feature_dim, action_dim, lstm_hidden_dim): super().__init__(feature_dim, action_dim, lstm_hidden_dim) self.observation_decoder nn.Linear(lstm_hidden_dim, feature_dim) def forward(self, feature, prev_action): belief super().forward(feature, prev_action) # 辅助任务用当前信念预测下一时刻的特征需要下一时刻特征作为监督 predicted_next_feature self.observation_decoder(belief) return belief, predicted_next_feature在损失函数中加入下一特征预测的均方误差MSE损失权重可以设为0.1左右避免干扰主任务。信念一致性损失鼓励在相同隐藏状态下智能体应做出相同决策。可以通过在轻微扰动观察或使用数据增强如随机裁剪、颜色抖动后要求产生的信念表示尽可能接近来增加表示的鲁棒性。5.2 处理长期依赖与记忆遗忘标准LSTM在非常长的序列上仍会遗忘。对于需要超长程记忆的任务可以考虑分层记忆结构使用两层LSTM底层处理短期、高频率的模式顶层处理长期、抽象的目标。或者结合外部记忆方案三。显式的记忆写入与检索引入基于内容的寻址机制。当遇到高度显著或新颖的事件如获得关键道具、到达新区域时将其特征“显式”存储到一个固定大小的记忆库中。在决策时除了LSTM的隐藏状态还用当前查询去检索这个记忆库将检索到的信息与LSTM状态融合。定期信念“快照”在训练和部署时定期如每N步将当前的信念表示h_t保存下来。在后续步骤中可以计算当前信念与历史快照的相似度如果发现与某个过去的关键点相似可以“提醒”智能体当时的上下文这模仿了人类的“情景记忆”。5.3 信念的可视化与调试调试一个“黑箱”信念非常困难。以下方法有助于理解智能体“相信”什么注意力可视化如果使用了注意力机制方案三直接绘制注意力权重热力图可以看到当前决策依赖于历史的哪些时刻。信念空间降维使用t-SNE或PCA将大量轨迹中的信念表示h_t降维到2D或3D进行可视化。观察相同隐藏状态如迷宫中的同一位置的信念是否聚类在一起信念的轨迹在空间中是否平滑移动突然的跳跃可能意味着信念更新不稳定或遇到了观测歧义。不同任务或不同阶段的信念分布是否有明显区别扰动分析系统地改变输入观察的某一部分如遮挡图像中的某个物体观察信念表示h_t的变化方向和幅度。这可以定性分析哪些观察特征对信念影响最大。6. 常见问题排查与实战避坑指南在实际项目中信念记忆系统可能会遇到各种棘手问题。下面是一个基于真实项目经验的排查清单。问题现象可能原因排查步骤与解决方案智能体表现不稳定同一局内时好时坏LSTM隐藏状态没有在episode开始时正确重置。1. 检查数据收集和训练代码确保在每个episode开始时调用model.init_sequence()或等效操作。2. 在forward函数中确保done信号被正确接收并用于重置对应环境实例的隐藏状态见4.2节代码示例。3. 可视化几个完整episode的信念表示检查在doneTrue后信念是否回到了一个相似的初始区域。训练初期完全不收敛奖励曲线无增长信念表示h_t的梯度不稳定或消失导致策略网络接收到的信号是噪声。1.梯度裁剪对LSTM和整个网络的梯度进行裁剪如torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm0.5)。2.学习率预热使用较小的初始学习率并逐步增加。3.归一化观察确保输入CNN的图像是归一化的如像素值缩放到[0,1]或[-1,1]。4.先预训练视觉编码器在固定任务上如图像重建或对比学习预训练CNN编码器使其能提取有意义的特征再微调整个网络。智能体似乎“记忆力很短”无法完成需要多步记忆的任务LSTM容量不足或训练数据中长程依赖的样本不足。1.增加LSTM隐藏层维度。2.使用更强大的记忆单元如GRU在某些任务上更简单有效或Transformer层。3.引入课程学习先从记忆要求短的简单任务开始训练逐步增加任务对记忆长度的要求。4.采用分层RL让高层策略制定需要记忆的长期目标底层策略执行短期动作。信念表示可视化显示不同状态聚类混乱没有明显结构信念表示没有学到与环境隐藏状态相关的有用信息可能任务奖励信号太稀疏或辅助任务太弱。1.强化信念的预测能力增加更强的辅助预测任务如不仅预测下一观察还预测奖励、是否终止等。2.使用对比学习构造正负样本对让相同隐藏状态下的信念表示通过数据增强得到彼此接近不同状态的彼此远离。3.检查任务设计确认任务的成功是否真的依赖于对隐藏状态的推断。有时问题可能出在任务本身的可观测性上。在部署时与训练环境有微小差异性能急剧下降信念表示过拟合了训练环境的特定感官特征缺乏泛化能力。1.在训练中使用数据增强对输入图像进行随机裁剪、旋转、颜色变化等迫使信念学习更本质的特征而非像素级细节。2.添加正则化在信念表示上施加Dropout或L2正则化。3.领域随机化在训练时随机化环境的某些视觉或物理参数如纹理、光照、摩擦力让智能体学习到更鲁棒的信念。最后再分享一个小技巧在调试信念记忆系统时一个极其有用的“探针”是构建一个简单的信念线性探测任务。具体做法是在训练好或训练中的主网络旁边冻结主网络的权重仅训练一个简单的线性分类器或回归器输入是信念表示h_t输出是环境真实的隐藏状态s_t如果模拟器能获取的话或一个与之强相关的代理变量如智能体的全局坐标。这个线性探测器的准确率或误差直接反映了信念表示中包含的关于隐藏状态的信息量。如果探测性能很差说明你的信念记忆模块根本没有学到推断隐藏状态你需要重新审视网络结构、训练目标或数据。这个工具能帮你快速定位问题是出在信念表示本身还是出在后续的策略学习上。
返回列表