DreamerV3阅读笔记

news/2024/7/25 19:57:59/文章来源:https://blog.csdn.net/weixin_44326452/article/details/139161420

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.luyixian.cn/news_show_1053132.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习17

目录 一.System类: 1.System类常见方法 二.BigInteger和BigDecima类: 三.日期类: 1.Date:精确到毫秒,代表特定的瞬间。 2.Calendar: (1)简介: 3.第三代日期类: 1.第三代日期类的常用方…

Java入门基础学习笔记44——String

为什么要学习String的处理呢? 开发中,对字符串的处理是非常常见的。 String是什么?可以做什么? java.lang.String 代表字符串。可以用来创建对象封装字符串数据,并对其进行处理。 1、创建对象 2、封装字符串数据 3…

Linux x86_64 UEFI 启动

文章目录 前言一、UEFI二、Disk device compatibility2.1 GPT 磁盘分区表2.1.1 简介2.1.2 Linux 2.2 ESP(EFI) 文件系统2.2.1 简介2.2.2 LinuxLinux Kernel EFI Boot Stub 三、UEFI GPT grub23.1 简介3.2 引导方式 3.3 BOOTX64.EFI3.4 shimx64.efi3.5 …

Go语言

文章目录 Go语言特点应用领域Go语言和Java语言的对比JavaGo 总结 Go语言安装配置环境变量Hello World Go语言 Go语言全称Golanguage,Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类…

CogVLM2: 智谱开源新一代多模态大模型!

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 汇总合集…

三、自定义信号和槽函数(无参和有参)

需求: 下班后,小明说请小红吃好吃的,随便吃,吃啥买啥 无参:小红没有提出吃啥 有参:小红提出自己想吃的东西,吃啥取决于一时兴起(emit触发) 思路: 1&#xff…

钉钉企业内部H5微应用或小程序之钉消息推送

钉钉简单的推送钉消息 一、钉钉准备工作 首先进入钉钉开放平台 你得有企业内部微应用或者小程序 没有创建的话去看我另一篇文章有说明 钉钉开放平台创建企业内部H5微应用或者小程序-CSDN博客 看不懂话也可以参考官方文档:创建应用 - 钉钉开放平台 二、开发的准备…

微服务项目收获和总结---第5天(定时发布)

延迟任务 目录 延迟任务技术对比: Redis实现定时任务:​编辑新增任务:取消任务:拉取任务:Zset定时刷新数据到List中:分布式锁实现定时任务只刷新一次: 技术对比: Redis实现定时任…

软考数据库系统工程师试题及答案,分享几个实用搜题和学习工具 #媒体#知识分享#知识分享

以下分享的软件提供了各种实用的功能,如数学公式计算、语文阅读辅助等,让大学生们在学习过程中更加高效和便利。 1.众课帮 这是搜题app 一款考试找答案工具 ,支持拍照、语音、文字三种搜题方式。拥有海量题库,覆盖了大学生网课…

二零二四充能必读 | 618火热来袭,编程书单助你提升代码力

文章目录 📘 Java领域的经典之作🐍 Python学习者的宝典🌐 前端开发者的权威指南🔒 并发编程的艺术🤖 JVM的深入理解🏗 构建自己的编程语言🧠 编程智慧的结晶🌟 代码效率的提升 亲爱的…

Spring系列-02-Bean类型, 作用域, 实例化, 生命周期

Bean类型, 作用域, 实例化, 生命周期 Bean类型 在 SpringFramework 中,对于 Bean 的类型,一般有两种设计: 普通BeanFactoryBean 普通Bean 三种方式 Component注解配置类Beanxml <bean> Component public class Child {}Bean public Child child() {return new Ch…

mars3d实现geojson文件xxx.json格式等实现贴地效果

说明&#xff1a; 1.mars3d.js我们的这个sdk内部参数clampToGround是异步计算贴地效果的&#xff0c;最好的贴地方式是&#xff0c;给json数据准确的带高度的经纬度值。 补充前置知识说明&#xff0c;本身的geojson数据格式每个字段代表的意思需要掌握&#xff0c; GeoJSON …

Java super关键字

super代表父类的引用&#xff0c;用于访问父类的属性、方法和构造器。 1、super的访问不限于直接父类&#xff1a; 若爷爷类和本类有同名的成员&#xff0c;也可以使用super去访问。 若多个上级类都有同名成员&#xff0c;使用super则遵循就近原则。 2、super和this比较&…

弘君资本炒股技巧:股票定向增发是什么意思?是好是坏?

股票定向增发是指已上市的公司向指定的组织或者个人投资者额外发行股份募集资金的融资方法&#xff0c;发行价格为发行前某一阶段的平均价的必定比例&#xff0c;增发的价格不得低于前二十个买卖日股票均价的80&#xff05;。 例如&#xff0c;个股定增前二十个买卖股票平均价为…

Generate Anything Anywhere in Any Scene #论文阅读

URL https://arxiv.org/pdf/2306.17154 TD;DR 2023 年 6 月 Wisconsin 的文章。围绕 ip 保持做的扩展任务&#xff0c;核心目标是对指定 ip 可以生成任意大小的&#xff08;指定 ip&#xff09;、任意背景的图片&#xff0c;同时可以通过 bbox 控制物体位置和多物体生成。主…

外卖系统源码解读:校园外卖APP开发全攻略

外卖系统源码解读&#xff1a;校园外卖APP开发全攻略 今天&#xff0c;小编将深入解读外卖系统的源码&#xff0c;详细介绍如何开发一款功能齐全的校园外卖APP&#xff0c;帮助开发者快速上手&#xff0c;打造出高质量的外卖应用。 一、需求分析 应具备以下基本功能&#xff…

vue中的$nextTick和过渡与动画

一.vue中的$nextTick 简述与用法&#xff1a;这是一个生命周期钩子 1.语法&#xff1a;this.$nextTick(回调函数) 2.作用&#xff1a;在下一次DOM更新结束后执行其指定的回调 3.什么时候用&#xff1a;当修改数据后&#xff0c;要基于更新后的新dom进行某些操作时&#xff0c;…

学习笔记之——2D Gaussian Splatting(2DGS)

3DGS在辐射场重建中取得了巨大的成就&#xff0c;实现高质量的新视图合成和快速渲染。最近新出了3DGS的升级版本&#xff0c;2DGS。写下本博文记录本人学习及测试2DGS的过程&#xff0c;本博文仅为本人学习记录用~ Project WebsiteGithub CodeOriginal paper 原理解读 由于3D…

汽车短视频怎么拍?成都科成博通文化传媒公司

汽车短视频怎么拍&#xff1f; 随着短视频平台的兴起&#xff0c;汽车爱好者们纷纷将自己的汽车生活、驾驶体验以及车辆评测等内容以短视频的形式呈现给大众。汽车短视频不仅满足了观众对汽车文化的好奇心&#xff0c;也为汽车品牌和汽车相关行业提供了宣传和推广的新渠道。那…

【机器学习】机器学习基础概念与初步探索

❀机器学习 &#x1f4d2;1. 引言&#x1f4d2;2. 机器学习概述&#x1f4d2;3. 机器学习基础概念&#x1f389;2.1 机器学习的分类&#x1f389;2.2 数据预处理&#x1f308;数据清洗与整合&#x1f308; 特征选择和特征工程&#x1f308;数据标准化与归一化 &#x1f4d2;4. …