| 第73行: |
第73行: |
| | DreamerV1是一种强化学习方法,通过学习一个紧凑的'''潜在世界模型(世界模型,World model)''',将高维图像输入编码为低维潜在状态,并根据状态预测下一个状态和奖励,从而高效地从图像输入中解决长期目标的任务。其训练过程可以分为多个阶段,每个阶段都有其关键的任务和目标。 | | DreamerV1是一种强化学习方法,通过学习一个紧凑的'''潜在世界模型(世界模型,World model)''',将高维图像输入编码为低维潜在状态,并根据状态预测下一个状态和奖励,从而高效地从图像输入中解决长期目标的任务。其训练过程可以分为多个阶段,每个阶段都有其关键的任务和目标。 |
| | | | |
| − | ====3.2.1 表征学习阶段==== | + | ====表征学习阶段==== |
| | 在训练初期,DreamerV1需要学会从环境中收集的数据中提取出“有用的信息”,即通过一套神经网络将图像、动作以及环境奖励编码成一个较低维度的潜在空间。这个阶段的目标是学习一个世界模型,能够预测智能体在未来的状态和获得的奖励。这个过程是整个系统的基础,因为它为后续的策略优化和长远行为规划提供了所需的潜在表示。 | | 在训练初期,DreamerV1需要学会从环境中收集的数据中提取出“有用的信息”,即通过一套神经网络将图像、动作以及环境奖励编码成一个较低维度的潜在空间。这个阶段的目标是学习一个世界模型,能够预测智能体在未来的状态和获得的奖励。这个过程是整个系统的基础,因为它为后续的策略优化和长远行为规划提供了所需的潜在表示。 |
| | | | |
| 第106行: |
第106行: |
| | 重建奖励:<math>\mathcal{J}_{\text{R}}^{t} \doteq \ln q(r_t|s_t) </math> | | 重建奖励:<math>\mathcal{J}_{\text{R}}^{t} \doteq \ln q(r_t|s_t) </math> |
| | | | |
| − | KL正则化:<math>\mathcal{J}_{\text{D}}^{t} \doteq -\beta \text{KL} \left( p(s_t|s_{t - 1}, a_{t - 1}, o_t) \parallel q(s_t|s_{t - 1}, a_{t - 1}) \right) </math> | + | KL正则化:<math>③ \mathcal{J}_{\text{D}}^{t} \doteq -\beta \text{KL} \left( p(s_t|s_{t - 1}, a_{t - 1}, o_t) \parallel q(s_t|s_{t - 1}, a_{t - 1}) \right) </math> |
| | | | |
| | 其中 <math>\ln q_\theta(o_t|s_t) </math>项衡量根据潜在状态<math>s_t </math>重建观测<math>o_t </math>的对数概率,<math>\ln q_\theta(r_t|s_t) </math>项对应根据<math>s_t </math>预测奖励<math>r_t </math>的对数概率,而<math>D_{KL}(\cdot|\cdot) </math>则是后验分布 <math>p_\theta(s_t|\dots) </math>与先验分布<math>q_\theta(s_t|\dots) </math>的KL散度。<math>\beta </math>:超参数,控制KL散度的权重(通常取1)。 | | 其中 <math>\ln q_\theta(o_t|s_t) </math>项衡量根据潜在状态<math>s_t </math>重建观测<math>o_t </math>的对数概率,<math>\ln q_\theta(r_t|s_t) </math>项对应根据<math>s_t </math>预测奖励<math>r_t </math>的对数概率,而<math>D_{KL}(\cdot|\cdot) </math>则是后验分布 <math>p_\theta(s_t|\dots) </math>与先验分布<math>q_\theta(s_t|\dots) </math>的KL散度。<math>\beta </math>:超参数,控制KL散度的权重(通常取1)。 |
| 第113行: |
第113行: |
| | [[文件:1-3.png|无框|600x600像素]] | | [[文件:1-3.png|无框|600x600像素]] |
| | | | |
| − | ====3.2.2 基于潜在空间的Rollout与策略优化==== | + | ====基于潜在空间的Rollout与策略优化==== |
| | 当表征学习阶段完成后,DreamerV1就能够在潜在空间中进行“想象”,并基于这种想象进行策略学习。这个阶段的核心任务是通过'''Rollout(想象轨迹)来优化策略,具体来说,就是通过价值估计'''来优化策略,使得智能体可以在潜在空间中学到解决长期任务的策略。 | | 当表征学习阶段完成后,DreamerV1就能够在潜在空间中进行“想象”,并基于这种想象进行策略学习。这个阶段的核心任务是通过'''Rollout(想象轨迹)来优化策略,具体来说,就是通过价值估计'''来优化策略,使得智能体可以在潜在空间中学到解决长期任务的策略。 |
| | | | |
| 第120行: |
第120行: |
| | DreamerV1采用了'''actor-critic方法'''来优化策略。其中,策略网络通过采样动作来引导智能体的行为,而价值网络则评估每个状态的“好坏”,并将反馈的价值信息回传给策略网络,从而改进策略。 | | DreamerV1采用了'''actor-critic方法'''来优化策略。其中,策略网络通过采样动作来引导智能体的行为,而价值网络则评估每个状态的“好坏”,并将反馈的价值信息回传给策略网络,从而改进策略。 |
| | | | |
| − | * '''策略网络(Action Model)''':
| + | '''策略网络(Action Model)''': |
| | | | |
| | 该网络通过给定潜在状态<math>s_t </math>来输出一个动作的分布(通常是高斯分布),从中采样动作: | | 该网络通过给定潜在状态<math>s_t </math>来输出一个动作的分布(通常是高斯分布),从中采样动作: |
| 第126行: |
第126行: |
| | <math>a_t \sim \mathcal{N}(\mu_\phi(s_t), \sigma_\phi(s_t)) </math> | | <math>a_t \sim \mathcal{N}(\mu_\phi(s_t), \sigma_\phi(s_t)) </math> |
| | | | |
| − | * '''价值网络(Value Model)''':
| + | '''价值网络(Value Model)''': |
| | | | |
| | 该网络根据潜在状态预测一个期望的累计奖励,即价值估计。优化的目标是通过反馈给策略网络,最大化这些估计的价值: | | 该网络根据潜在状态预测一个期望的累计奖励,即价值估计。优化的目标是通过反馈给策略网络,最大化这些估计的价值: |
| 第136行: |
第136行: |
| | 通过反向传播,DreamerV1会利用梯度信息来更新策略网络和价值网络,从而确保在想象空间中的策略能够最大化预期的累积奖励。 | | 通过反向传播,DreamerV1会利用梯度信息来更新策略网络和价值网络,从而确保在想象空间中的策略能够最大化预期的累积奖励。 |
| | | | |
| − | ====3.2.3 重参数技巧与ELBO目标函数==== | + | ====重参数技巧与ELBO目标函数==== |
| | 在进行策略优化时,DreamerV1使用了重参数化技巧,将随机性引入可微分的路径中,从而使得梯度能够流畅地通过网络,优化潜在状态和策略网络。 | | 在进行策略优化时,DreamerV1使用了重参数化技巧,将随机性引入可微分的路径中,从而使得梯度能够流畅地通过网络,优化潜在状态和策略网络。 |
| | | | |
| 第156行: |
第156行: |
| | ---- | | ---- |
| | | | |
| − | =='''4. 不同版本对比'''== | + | ==='''4. 不同版本对比'''=== |
| | | | |
| | *Planet | | *Planet |
| 第166行: |
第166行: |
| | ---- | | ---- |
| | | | |
| − | =='''5. 应用与性能'''== | + | ==='''5. 应用与性能'''=== |
| | | | |
| | *在Mujoco、Atari、DMC等环境下的表现 | | *在Mujoco、Atari、DMC等环境下的表现 |
| 第175行: |
第175行: |
| | ---- | | ---- |
| | | | |
| − | =='''6. 框架实现'''== | + | ==='''6. 框架实现'''=== |
| | | | |
| | *常用开源实现(如官方Dreamer GitHub仓库) | | *常用开源实现(如官方Dreamer GitHub仓库) |
| 第183行: |
第183行: |
| | ---- | | ---- |
| | | | |
| − | =='''7. 影响与发展'''== | + | ==='''7. 影响与发展'''=== |
| | | | |
| | *对后续研究的启发(如DreamerV3、World Model + LLM等) | | *对后续研究的启发(如DreamerV3、World Model + LLM等) |
| 第191行: |
第191行: |
| | ---- | | ---- |
| | | | |
| − | =='''8. 参考文献与外部链接'''== | + | ==='''8. 参考文献与外部链接'''=== |
| | + | {| class="wikitable" |
| | + | |+ |
| | + | ! |
| | + | !原始论文链接 |
| | + | !开源代码仓库 |
| | + | !相关资料及解读 |
| | + | |- |
| | + | |DreamerV1 |
| | + | |[https://arxiv.org/pdf/1912.01603 DreamerV1论文链接] |
| | + | |[https://github.com/danijar/dreamer DreamerV1 tensorflow版本] |
| | + | |[https://danijar.com/project/dreamer/ DreamerV1项目相关资料及解读] |
| | + | |- |
| | + | |DreamerV2 |
| | + | |[https://arxiv.org/pdf/2010.02193 DreamerV2论文链接] |
| | + | |[https://github.com/danijar/dreamerv2 DreamerV2 tensorflow版本] |
| | + | |[https://danijar.com/project/dreamerv2/ DreamerV2项目相关资料及解读] |
| | + | |- |
| | + | |DreamerV3 |
| | + | |[https://www.nature.com/articles/s41586-025-08744-2 DreamerV3论文链接] |
| | + | |[https://github.com/danijar/dreamerv3 DreamerV3 tensorflow版本] |
| | | | |
| − | *原始论文链接
| + | [https://github.com/NM512/dreamerv3-torch DreamerV3 pytorch复现版本] |
| − | *开源代码仓库
| + | |[https://danijar.com/project/dreamerv3/ DreamerV3项目相关资料及解读] |
| − | *相关综述或解读文章
| + | |} |