DreamerV3阅读笔记

news2024/9/17 8:39:33

DreamerV3

在这里插入图片描述

  • 文章希望解决的一个挑战是用固定的hyperparameter来同时处理不同domain的任务。
  • 文章发现,通过结合KL balancing 和free bits可以使得world model learn without tuning(是指上面这件事,即不需要对不同任务改变hyperparameter),还发现把large returns 给scaling down(而非amplifying small returns)可以使用固定的policy entropy regularizer。所以从两方面出发可以使得不同domain的任务都可以用相同的一套hyperparameter来train,从而降低tuning的成本。

symlog

  • 这里介绍了一个normalize target的技术。是这样的,如果我们使用神经网络来拟合一些映射,然后当target值都是些很大的值比如几百上千的时候,直接用L2 loss会导致损失发散无法收敛,用L1 Loss或Huber loss同样无法使得模型train得很好。通常我们需要对这些target值进行归一化,处理到0-1附近。文章提出使用一个symlog函数来归一化target值比直接用running statistics(可能指的是在强化学习的过程中统计见过数据的均值和方差,减去均值除以方差,这导致归一化过程在训练前期的不稳定从而导致训练前期的不稳定)好 。
  • symlog其实就是ln函数配合绝对值,如下:
    在这里插入图片描述
    在这里插入图片描述
  • 可以看到,过了单调的symlog函数后,数值范围被scaling down了,同时也不影响原先的小数值的区分度,这是非线性scaling down的优势。使用symlog进行归一化还有一个好处是当遇到新domain数据具有不同范围时,也无需重新计算归一化,保持symlog函数即可。

world model

  • dreamerV3的world model是一个Recurrent State-Space Model (RSSM),它包括以下几个部分:
  • 首先当然是一个encoder,把输入的数据 x x x 编码成 z z z,然后在 z z z空间进行其它的处理。然后有一个sequence model编码隐状态 h h h,用来记录历史特征,从公式看,前面的encoder也用到了隐状态来编码 z z z。除了这两个主要的encoder,其它的就是predictor和decoder了,一个预测reward的predictor,一个是预测是否继续的continue predictor,一个用来train sequence model的dynamic predictor,还有一个是用来train encoder的decoder。
    在这里插入图片描述
    在这里插入图片描述
  • encoder和decoder用的是CNN(处理图像)和MLP(处理其它低频输入),其它predictor都是MLP。
  • 损失函数由3部分组成,一是pred loss,用来计算decoder的输出和x之间的symlog loss,以及reward predictor的输出与label之间的symlog loss,以及continue predictor与label之间的binary classification loss;二是dynamic loss,用来计算dynamic predictor的输出与encoder的输出之间的KL 散度,从而训练dynamic encoder编码更好的h;三是representation loss,同样是计算dynamic predictor的输出与encoder的输出之间的KL 散度,但这个loss是为了训练encoder编码更可预测的z。dynamic loss和representation loss的区别在于,两者都加了一个stop-gradient operator s g ( ⋅ ) sg(\cdot) sg(),不过一个加在dynamic predictor上一个加在encoder上:
    在这里插入图片描述
  • 可以看到,其实dynamic loss和representation loss不是简单的KL 散度,加了一个clip,这个是free bits策略,因为dynamic encoder不包含输入的信息,因此很难预测得和z一模一样。作者认为两者可以有1 nat的距离,加了这个clip,当他们之间的距离小于 1 nat时,不再计算这两个损失,使模型更专注于pred loss,毕竟这才是主要的,其它两个都是辅助而已。作者认为这里用free bits还有利于提高模型的适应性。对3D场景来说,x中包含了很多多余的信息,因此rep loss和dyn loss会很难降到很低,因为要顾及很多多余的信息,而2D场景则相反。因此,其实这两个损失可以看成是两个regularizer。在不同的场景下由于不同的训练难度,这两个regularizer产生的作用会有强弱之分,通常来说权重需要根据不同的场景进行调整。因此当使用free bits时,可以不需要调整,因为当损失低于1时,已经不算这两个损失了。
  • 训练初期,encoder和dynamic predictor的输出有可能非常接近导致KL 散度有极端值,从而训练不稳定,为了避免这个,使用的技巧是把他们的输出以0.01:0.99的比例混合一个随机向量,从而使得KL loss保持在正常范围内。

Actor Critic Learning

  • 未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1704480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣239. 滑动窗口最大值

Problem: 239. 滑动窗口最大值 文章目录 题目描述思路复杂度Code 题目描述 思路 1.编写实现优先队列类: 1.1.实现push(int n):将元素n添加到队列尾,同时将n前面大于n的元素删除 1.2.实现int max():将队列头元素取出(由于实现了push所以此时队…

【Python性能优化】取最值的差异

取最值的差异 测试Windows 测试结果Linux 测试结果 测试 测试内容:从一组 x, y, z 坐标值中获得每个维度(x、y、z)的值域范围。此处不考虑将数据临时存放到内存,再整组获取值域的操作(因为对单文件这么做问题不大&…

多线程基本常识

多线程的状态 在Java中,一个线程的生命周期有以下几种状态: 新建(New):当线程对象被创建时,线程处于新建状态。此时线程对象存在,但还没有调用start()方法启动线程。 运行(Runnable…

Prometheus Operator创建告警规则并接入钉钉报警

prometheus之钉钉报警 前言1. 添加prometheus报警规则1.2 添加自定义报警规则文件 2. 配置钉钉报警2.2 部署dingding插件 3. 编写alertmanager配置文件 前言 在kubenetes上安装了kube-promethues(包含Prometheus Operator),程序正常跑起来了&#xff0c…

【找出缺失的观测数据】python

思路: 主要在于分配剩余的部分分配问题 代码: class Solution:def missingRolls(self, rolls: List[int], mean: int, n: int) -> List[int]:m len(rolls)total_sum (n m) * meantoset total_sum - sum(rolls)# 检查 toset 是否在可能的范围内i…

影响所有股票、债券和ETF交易!一文看懂美国“T+1”结算新规

T1对投资者有何好处?有哪些风险?T1已经到来,T0还远吗? 美股将在本周迎来历史性时刻。 从当地时间5月28日开始,美股交易结算周期将由T2缩短至T1,即投资者当天卖出的股票,在交易后一个工作日就能…

C# Chart图表应用

1,Chart简介 Chart控件是微软自带的一种图形可视化组件,使用简单灵活。在.NET4.0之后(即VS2010之后)已集成在了VS里面,直接拖拽控件到窗体即可使用。 需要使用命名空间:using System.Windows.Forms.DataVis…

NDIS驱动程序堆栈

NDIS 6.0 引入了暂停和重启驱动程序堆栈的功能。 若要支持 NDIS 6.0 提供的堆栈管理功能,必须重写旧版驱动程序。 NDIS 6.0 还引入了 NDIS Filter驱动程序。 Filter驱动程序可以监视和修改协议驱动程序与微型端口驱动程序之间的交互。 与 NDIS 5 相比,F…

AI智能体研发之路-模型篇(四):一文入门pytorch开发

博客导读: 《AI—工程篇》 AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效 AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署 AI智能体研发之路-工程篇(三&am…

Vue中,点击提交按钮,路由多了个问号

问题 当点击提交按钮是路由多了问号: http://localhost:8100/#/ 变为 http://localhost:8100/?#/原因 路由中出现问号通常是由于某些路径或参数处理不当造成的。在该情况下,是因为表单的默认行为导致的。提交表单时,如果没有阻止表单的默…

完全背包洛谷题单

[USACO08NOV] Buying Hay S 题解:这题看到每个都可以卖出无限多个干草包,就应该想到完全背包,但又不同于普通的完全背包,普通的完全背包是让你通过对应的背包求出最大的价值,但是在这题理解上却是知道能够达到背包容量…

EPSON爱普生RTC RA8900CE/RA8000CE+松下Panasonic电池组合

RTC是一种实时时钟,用于记录和跟踪时间,具有独立供电和时钟功能。在某些应用场景中,为了保证RTC在断电或者其他异常情况下依然能够正常工作,需要备份电池方案来提供稳定的供电。本文将介绍EPSON爱普生RTC RA8900CE/RA8000CE松下Pa…

【Linux】升级GCC(版本9.3),补充:binutils

GCC:GNU Compiler Collection 。编译器,几乎Linux中所有程序(包括内核)都是gcc编译的,包括libc。 gcc不仅仅是编译器,gcc也有很多库,依赖libc。gcc和libc互相依赖。 GCC官网:GCC, …

【B站 heima】小兔鲜Vue3 项目学习笔记Day05

Day05 文章目录 Day05登录1. 整体认识和路由设置2. 表单校验实现3. 表单-统一校验4. 基础登录业务实现5. Pinia管理用户数据6. Pinia 数据持久化7. 登录和非登录状态下的模板适配8. 请求拦截器携带Token9. 退出登录功能的实现10. Token失效401拦截处理 购物车1. 流程梳理2. 本地…

ubuntu下vscode的安装包

1.引言 ubuntu下面安装vscode,编码调用接口时可以跳到接口api的位置,因此在ubuntu下安装vscode还是非常有意义的。 2.下载地址 链接:https://pan.baidu.com/s/1j3XNmvbL574p_hYeBqO6dg?pwdryr7 提取码:ryr7 --来自百度网盘超…

【考研数学】线代除了「李永乐」,还能跟谁?

考研线代,除了利用了老师,我觉得还有一个宝藏老师的课程值得听! 那就是喻老,这个是我在b站上面新发现的老师,听完他的课程发现真的喜欢 他不仅在B站上开设了课程,还编写了配套的线性代数辅导讲义&#xff…

网页图片加载慢的求解指南

网页/图片加载慢的求解指南 一、前言与问题描述 今天刚换上华为的HUAWEI AX3 Pro New,连上WIFI后测速虽然比平时慢,但是也不算太离谱,如下图所示: 估计读者们有也和作者一样,还没意识到事情的严重性😁。 …

智能客服新突破:大型模型训练助力提升客户服务体验

项目场景:训练大模型智能客服 智能客服新方法在金融服务领域的科技前沿应用 ** 一、 引言 随着科技的飞速发展,智能客服作为金融服务领域的一大创新点,正在逐渐改变传统的客户服务模式。特别是在自然语言处理(NLP)等…

马斯克:AI时代人人高收入,不需要工作,商品服务不再短缺,可能性80%

当前人工智能现状和未来如何?AI时代下,人类未来会发生哪些变化? 埃隆马斯克(Elon Musk)在2024 VivaTech大会上分享了关于地球未来的诸多愿景。 投资作业本课代表摘录了其中的要点,分享给大家&#xff1a…

传承的智慧:故事里的人生启示

传承的智慧:故事里的人生启示 在你的书中,通过故事元素来呈现自己的经历、教训和见解。通过情节、角色发展和冲突展示知识和经验,对主人公的影响和变化,以及对读者的启发和教育作用。 一、故事写作的“三种格式” 要创造一个引人入胜的故事,能够吸引读者,同时有效地传达…