更改

添加15字节 、 2025年5月26日 (一) 10:17
第136行: 第136行:  
随后,智能体在潜在空间中反复执行以下训练循环:
 
随后,智能体在潜在空间中反复执行以下训练循环:
   −
* 1. 从经验回放池中采样一批真实经历对应的潜在状态(即通过编码器将观测<math>o_t</math>编码得到的潜在表示<math>z_t</math>)作为想象轨迹'''Rollout'''的起点;
+
# 从经验回放池中采样一批真实经历对应的潜在状态(即通过编码器将观测<math>o_t</math>编码得到的潜在表示<math>z_t</math>)作为想象轨迹'''Rollout'''的起点;
−
* 2. 在[[世界模型]]内部展开长度为<math>H</math>步的潜在轨迹(通常<math>H \approx 15</math>)扩展流程:
+
# 在[[世界模型]]内部展开长度为<math>H</math>步的潜在轨迹(通常<math>H \approx 15</math>)扩展流程:
−
** ①策略网络(actor)<math>q_\phi(a_\tau\mid s_\tau) </math>根据当前潜在状态<math>z_t</math>采样动作<math>a_t</math>;
+
#* ①策略网络(actor)<math>q_\phi(a_\tau\mid s_\tau) </math>根据当前潜在状态<math>z_t</math>采样动作<math>a_t</math>;
−
** ②RSSM的转移模型<math>q_\theta(s_{\tau+1}\mid s_\tau,a_\tau) </math>根据<math>z_t</math>和<math>a_t</math>生成下一个潜在状态<math>z_{t+1}</math>;
+
#* ②RSSM的转移模型<math>q_\theta(s_{\tau+1}\mid s_\tau,a_\tau) </math>根据<math>z_t</math>和<math>a_t</math>生成下一个潜在状态<math>z_{t+1}</math>;
−
** ③奖励模型<math>q_\theta(r_\tau\mid s_\tau) </math>预测当前步的奖励<math>r_t</math>;
+
#* ③奖励模型<math>q_\theta(r_\tau\mid s_\tau) </math>预测当前步的奖励<math>r_t</math>;
−
** ④终止模型判断是否达到episode结束条件。
+
#* ④终止模型判断是否达到episode结束条件。
   −
<br>通过上述过程,生成一条完全由世界模型预测产生的伪轨迹序列:<math>(z_0, a_0, r_0), (z_1, a_1, r_1), \dots, (z_H)</math>。这样就构造了一个在潜在状态空间中'''完全可观测的马尔可夫决策过程(MDP)''' 。这些生成的轨迹是在潜在空间中进行的,并不需要实际执行在真实环境中。换句话说,DreamerV1在潜在状态空间中“提前演练”其行为。由于潜在状态的维度远小于原始观测(例如图像),且RSSM模块由神经网络实现,因此整个模拟过程可以在GPU上高度并行。DreamerV2的实验报告显示,其可以在单张GPU上并行生成多达2500条潜在轨迹。在这些模拟轨迹上,Dreamer分别训练价值网络(critic)与策略网络(actor),利用想象经验不断优化策略表现。
+
<br>通过上述过程,生成一条完全由[[世界模型]]预测产生的伪轨迹序列:<math>(z_0, a_0, r_0), (z_1, a_1, r_1), \dots, (z_H)</math>。这样就构造了一个在潜在状态空间中'''完全可观测的马尔可夫决策过程(MDP)''' 。这些生成的轨迹是在潜在空间中进行的,并不需要实际执行在真实环境中。换句话说,DreamerV1在潜在状态空间中“提前演练”其行为。由于潜在状态的维度远小于原始观测(例如图像),且RSSM模块由神经网络实现,因此整个模拟过程可以在GPU上高度并行。DreamerV2的实验报告显示,其可以在单张GPU上并行生成多达2500条潜在轨迹。在这些模拟轨迹上,Dreamer分别训练价值网络(critic)与策略网络(actor),利用想象经验不断优化策略表现。
    
=== 价值函数训练 ===
 
=== 价值函数训练 ===
−
在Dreamer框架中,价值网络以潜在状态(<math>z_t</math>)或更完整的隐状态对(<math>h_t</math>,<math>s_t</math>)作为输入,输出一个标量(<math>v_\psi(z_t)</math>),用于近似当前潜在状态下的期望折扣累积回报。为了高效训练价值网络,Dreamer采用了基于想象轨迹的时序差分学习(temporal difference learning),并结合了λ-return方法,在训练中平衡偏差与方差。具体地,给定一条想象轨迹:<math>(z_0, r_0), (z_1, r_1), \dots, (z_H, r_H)</math>,其中<math>z_H</math>为轨迹末状态,可以为每个中间潜在状态构造目标价值<math>R_t^\lambda</math>。<br>λ-return的基本思路是对不同步长<math>n</math>的回报进行加权平均,定义为:<math>R_t^\lambda = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \dots + \gamma^{n-1} r_{t+n-1} + \gamma^n v_\psi(z_{t+n})</math>,式中,<math>\gamma </math>是折扣因子,<math>r_t </math>是每个时刻的奖励。并在<math>n</math>趋近轨迹末端时截断。直观地说,λ-return在有限长度模拟轨迹内考虑累计奖励,并在终点使用价值网络估计<math>v_\psi(z_H)</math>近似未来无穷远回报,从而为每个状态提供全局价值估计。随后,价值网络通过最小化以下均方误差损失进行训练:<math>\frac{1}{2} (v_\psi(z_t) - R_t^\lambda)^2</math>。<br>为进一步提升训练的稳定性与鲁棒性,Dreamer引入了以下优化措施:<br>1. 终止状态折扣修正:对于预测为终止的状态,Dreamer根据折扣因子<math>\gamma_t</math>,对后续步骤的损失贡献进行累积折扣衰减。若模型预测某步后episode结束,相应的价值误差将按<math>\gamma_t</math>的乘积因子递减,避免无意义误差影响训练。<br>2. 回报尺度归一化(Symlog变换与Two-Hot编码):为了适应不同任务环境下回报尺度差异,DreamerV3引入了对称log变换(symlog)与Two-Hot编码结合的方法:Symlog变换压缩回报尺度,公式为:<math>\text{symlog}(x) = \text{sign}(x) \cdot \log(1 + |x|)</math>。训练时,价值网络回归symlog变换后的回报,推理时通过symexp(逆变换)还原实际值。此方法能有效抑制极端大回报带来的梯度爆炸,提升训练稳定性。同时,为了进一步平滑训练目标,DreamerV3将symlog后的目标值离散到相邻的离散桶,并采用Two-Hot编码表示概率分布。价值网络输出每个桶的概率预测,训练时使用交叉熵或KL散度作为损失。相比直接实数回归或One-Hot分桶,Two-Hot编码能减缓因跨度大导致的训练不稳定性,使价值估计更加平滑且精确。<br>3. 目标网络机制(Exponential Moving Average, EMA):为了防止价值估计在训练中发生不稳定震荡,DreamerV3引入了目标价值网络。具体做法是:维护一个价值网络参数的指数滑动平均版本(EMA),并在训练中添加正则项,促使在线价值网络输出逐步向目标网络靠拢。<br>
+
在Dreamer框架中,价值网络以潜在状态(<math>z_t</math>)或更完整的隐状态对(<math>h_t</math>,<math>s_t</math>)作为输入,输出一个标量(<math>v_\psi(z_t)</math>),用于近似当前潜在状态下的期望折扣累积回报。为了高效训练价值网络,Dreamer采用了基于想象轨迹的[[时序差分学习]](temporal difference learning),并结合了λ-return方法,在训练中平衡偏差与方差。
 +
 
 +
具体地,给定一条想象轨迹:
 +
 
 +
<math>(z_0, r_0), (z_1, r_1), \dots, (z_H, r_H)</math>,
 +
 
 +
其中<math>z_H</math>为轨迹末状态,可以为每个中间潜在状态构造目标价值<math>R_t^\lambda</math>。<br>λ-return的基本思路是对不同步长<math>n</math>的回报进行加权平均,定义为:
 +
 
 +
<math>R_t^\lambda = r_t + \gamma r_{t+1} + \gamma^2 r_{t+2} + \dots + \gamma^{n-1} r_{t+n-1} + \gamma^n v_\psi(z_{t+n})</math>,
 +
 
 +
式中,<math>\gamma </math>是折扣因子,<math>r_t </math>是每个时刻的奖励。并在<math>n</math>趋近轨迹末端时截断。直观地说,λ-return在有限长度模拟轨迹内考虑累计奖励,并在终点使用价值网络估计<math>v_\psi(z_H)</math>近似未来无穷远回报,从而为每个状态提供全局价值估计。
 +
 
 +
随后,价值网络通过最小化以下均方误差损失进行训练:<math>\frac{1}{2} (v_\psi(z_t) - R_t^\lambda)^2</math>。<br>为进一步提升训练的稳定性与鲁棒性,Dreamer引入了以下优化措施:
 +
 
 +
# 终止状态折扣修正:对于预测为终止的状态,Dreamer根据折扣因子<math>\gamma_t</math>,对后续步骤的损失贡献进行累积折扣衰减。若模型预测某步后episode结束,相应的价值误差将按<math>\gamma_t</math>的乘积因子递减,避免无意义误差影响训练。
 +
# 回报尺度归一化(Symlog变换与Two-Hot编码):为了适应不同任务环境下回报尺度差异,DreamerV3引入了对称log变换(symlog)与Two-Hot编码结合的方法:Symlog变换压缩回报尺度,公式为:<math>\text{symlog}(x) = \text{sign}(x) \cdot \log(1 + |x|)</math>。训练时,价值网络回归symlog变换后的回报,推理时通过symexp(逆变换)还原实际值。此方法能有效抑制极端大回报带来的梯度爆炸,提升训练稳定性。同时,为了进一步平滑训练目标,DreamerV3将symlog后的目标值离散到相邻的离散桶,并采用Two-Hot编码表示概率分布。价值网络输出每个桶的概率预测,训练时使用交叉熵或KL散度作为损失。相比直接实数回归或One-Hot分桶,Two-Hot编码能减缓因跨度大导致的训练不稳定性,使价值估计更加平滑且精确。
 +
# 目标网络机制(Exponential Moving Average, EMA):为了防止价值估计在训练中发生不稳定震荡,DreamerV3引入了目标价值网络。具体做法是:维护一个价值网络参数的指数滑动平均版本(EMA),并在训练中添加正则项,促使在线价值网络输出逐步向目标网络靠拢。<br>
    
=== 策略网络的训练与优化 ===
 
=== 策略网络的训练与优化 ===
−
在Dreamer框架中,策略网络(actor)的目标是输出能够最大化长期累积奖励的动作。策略的训练完全基于模型想象(imagination)生成的数据,而不是直接从真实环境中采样梯度信号。在一条想象轨迹中,策略网络希望在每一个潜在状态<math>z_t</math>选择动作,使得后继状态的价值<math>v_\psi(z_{t+1})</math>最大化。换言之,策略优化的目标可以简化为在每一步最大化<math>v_\psi(z_t)</math>,因此常通过最小化负的价值估计<math>-v_\psi(z_t)</math>来训练。<br>Dreamer采用策略梯度(policy gradient)方法来优化这一目标。由于世界模型提供了可微分的潜在空间动力系统,Dreamer能够直接在潜在轨迹上进行梯度计算,实现高效的策略更新。<br>'''策略梯度计算与损失构建'''<br>在训练过程中,策略网络根据当前潜在状态<math>z_t</math>输出动作分布<math>\pi_\theta(a_t|z_t)</math>,并通过采样获得动作<math>a_t</math>,一般来说,<math>a_t \sim \mathcal{N}(\mu_\phi(s_t), \sigma_\phi(s_t)) </math>。RSSM根据<math>a_t</math>与<math>z_t</math>生成下一个潜在状态<math>z_{t+1}</math>,并由价值网络估计<math>v_\psi(z_{t+1})</math>。为了统一适配连续与离散动作环境,Dreamer在想象轨迹中使用REINFORCE策略梯度近似目标:<math>\nabla_\theta J \approx \mathbb{E}\left[(R_t^\lambda - v_\psi(z_t)) \nabla_\theta \log \pi_\theta(a_t|z_t)\right]</math>。其中,<math>R_t^\lambda</math>是基于λ-return构建的多步累计回报,<math>v_\psi(z_t)</math>为价值网络提供的基线,二者之差作为优势估计(advantage),用于减少策略梯度估计的方差。策略网络的整体损失函数定义为:<math>L_{\text{actor}} = -\mathbb{E}\left[(R_t^\lambda - v_\psi(z_t)) \log \pi_\theta(a_t|z_t)\right] - \eta \mathbb{E}\left[H(\pi_\theta(\cdot|z_t))\right]</math>。其中,第一项是基于优势的策略梯度项,第二项是熵正则项(<math>\eta</math>为熵系数),用于鼓励策略的随机性与探索。<br>'''鲁棒回报归一化'''<br>为了进一步提升训练稳定性,Dreamer引入了**鲁棒回报归一化(robust return normalization)**机制,以应对不同任务中奖励尺度差异带来的训练不平衡问题。具体做法是:在每个模拟批次中,收集所有<math>R_t^\lambda</math>,取第5百分位<math>P_5</math>与第95百分位<math>P_{95}</math>,定义有效范围:<math>S = P_{95} - P_5</math>。并对<math>S</math>进行指数滑动平均平滑处理。归一化优势的计算公式为:<math>\text{Advantage} = \frac{R_t^\lambda - v_\psi(z_t)}{\max(1, S)}</math>。这种归一化确保了在稀疏奖励或密集奖励环境中,优势尺度大致统一,熵正则项<math>\eta H(\pi)</math>的相对影响力保持一致,有效避免了熵项在不同任务中失衡的问题。此外,Dreamer统一采用固定的小熵系数(如<math>\eta = 3 \times 10^{-4}</math>),无需根据任务单独调整。<br>'''世界模型冻结策略'''<br>为了保证训练的稳定性,Dreamer在策略优化阶段冻结世界模型参数,即策略网络更新过程中不会反向修改RSSM或奖励模型。这种设计保证了策略训练是在一个静态、稳定的模拟环境中进行,符合策略梯度理论假设,避免了模型和策略间相互干扰导致的震荡与不稳定。
+
在Dreamer框架中,策略网络(actor)的目标是输出能够最大化长期累积奖励的动作。策略的训练完全基于模型想象(imagination)生成的数据,而不是直接从真实环境中采样梯度信号。在一条想象轨迹中,策略网络希望在每一个潜在状态<math>z_t</math>选择动作,使得后继状态的价值<math>v_\psi(z_{t+1})</math>最大化。换言之,策略优化的目标可以简化为在每一步最大化<math>v_\psi(z_t)</math>,因此常通过最小化负的价值估计<math>-v_\psi(z_t)</math>来训练。<br>Dreamer采用策略梯度(policy gradient)方法来优化这一目标。由于[[世界模型]]提供了可微分的潜在空间动力系统,Dreamer能够直接在潜在轨迹上进行梯度计算,实现高效的策略更新。<br>'''策略梯度计算与损失构建'''<br>在训练过程中,策略网络根据当前潜在状态<math>z_t</math>输出动作分布<math>\pi_\theta(a_t|z_t)</math>,并通过采样获得动作<math>a_t</math>,一般来说,<math>a_t \sim \mathcal{N}(\mu_\phi(s_t), \sigma_\phi(s_t)) </math>。RSSM根据<math>a_t</math>与<math>z_t</math>生成下一个潜在状态<math>z_{t+1}</math>,并由价值网络估计<math>v_\psi(z_{t+1})</math>。
 +
 
 +
为了统一适配连续与离散动作环境,Dreamer在想象轨迹中使用REINFORCE策略梯度近似目标:
 +
 
 +
<math>\nabla_\theta J \approx \mathbb{E}\left[(R_t^\lambda - v_\psi(z_t)) \nabla_\theta \log \pi_\theta(a_t|z_t)\right]</math>。
 +
 
 +
其中,<math>R_t^\lambda</math>是基于λ-return构建的多步累计回报,<math>v_\psi(z_t)</math>为价值网络提供的基线,二者之差作为优势估计(advantage),用于减少策略梯度估计的方差。
 +
 
 +
策略网络的整体损失函数定义为:
 +
 
 +
<math>L_{\text{actor}} = -\mathbb{E}\left[(R_t^\lambda - v_\psi(z_t)) \log \pi_\theta(a_t|z_t)\right] - \eta \mathbb{E}\left[H(\pi_\theta(\cdot|z_t))\right]</math>。
 +
 
 +
其中,第一项是基于优势的策略梯度项,第二项是熵正则项(<math>\eta</math>为熵系数),用于鼓励策略的随机性与探索。<br>'''鲁棒回报归一化'''<br>为了进一步提升训练稳定性,Dreamer引入了鲁棒回报归一化(robust return normalization)机制,以应对不同任务中奖励尺度差异带来的训练不平衡问题。具体做法是:在每个模拟批次中,收集所有<math>R_t^\lambda</math>,取第5百分位<math>P_5</math>与第95百分位<math>P_{95}</math>,定义有效范围:<math>S = P_{95} - P_5</math>。并对<math>S</math>进行指数滑动平均平滑处理。归一化优势的计算公式为:<math>\text{Advantage} = \frac{R_t^\lambda - v_\psi(z_t)}{\max(1, S)}</math>。这种归一化确保了在稀疏奖励或密集奖励环境中,优势尺度大致统一,熵正则项<math>\eta H(\pi)</math>的相对影响力保持一致,有效避免了熵项在不同任务中失衡的问题。此外,Dreamer统一采用固定的小熵系数(如<math>\eta = 3 \times 10^{-4}</math>),无需根据任务单独调整。<br>'''世界模型冻结策略'''<br>为了保证训练的稳定性,Dreamer在策略优化阶段冻结世界模型参数,即策略网络更新过程中不会反向修改RSSM或奖励模型。这种设计保证了策略训练是在一个静态、稳定的模拟环境中进行,符合策略梯度理论假设,避免了模型和策略间相互干扰导致的震荡与不稳定。
 
----
 
----
  
761

个编辑