【强化学习-读书笔记】表格型有模型和无模型的结合、Dyna-Q、Dyna-Q+、表格型方法的总结

参考 
Reinforcement Learning, Second Edition  
An Introduction 
By Richard S. Sutton and Andrew G. Barto

前面的方法要么是单纯的 model-based ** 方法,要么是 model-free。基于模型的方法将规划作为其主要组成部分,而无模型的方法则主要依赖于学习**。
实际上我们可以是将基于模型的方法和无模型的方法整合起来,推广得到一个广义的学习方式。
在这里插入图片描述

模型选择动作,从环境中得到的经验,一方面用于直接强化学习(无模型思路),另一方面这些经验同时用于环境模型的训练(有模型),然后环境模型用于规划/训练/更新价值或者策略,经验被间接的用于更新价值/策略函数 V , Q V,Q V,Q

间接方法往往能更充分地利用有限的经验,从而获得更好的策略,减少与环境的相互作用(例:RLHF)。
另一方面,直接方法则简单得多,它不受模型的设计偏差的影响。

Model-based : “原理认知”、“主动的预谋性规划”
Model-free:“试错学习”、“被动的反应式决策”

Dyna

一般的 Dyna 架构

在这里插入图片描述
真正的经验在环境和策略之间来回传递,影响策略和价值函数,就像环境模型产生的模拟经验一样。

表格型 Dyna-Q

在这里插入图片描述

注意是每一步都重复 n n n次,而不是每一幕,每走一步就开始(类似于)经验回放

所以将规划和动作融合起来是很简单的,两者都以尽可能快的速度进行。智能体既是反应式的也是预谋式的,它总是立即对最新的传感信息给予反馈回应,但也同时总是在后台不断地进行规划。

考虑到很多情况下,环境的响应也是需要时间的,因此算法如果有多余的计算能力,就可以用于规划部分进行更新。Dyna-Q 里面的这个 Model 有一点像经验回放,在下棋这个场景里面,就是在下了一步棋之后,等对手下的过程中,开始通过随机回放之前自己的动作 ( s , a , r , s ′ ) (s,a,r,s') (s,a,r,s),不断更新自己的Q,等下一步开始的时候(对手行棋完毕),Q实际上已经更新了很多次了。

从走迷宫的例子分析 Dyna-Q 为什么更好

在这里插入图片描述

在书中的例子中, Dyna-Q 进行了 2 幕就找到了一个很不错的策略。我们从这里例子入手,分析为什么 Dyna-Q 能够这么快。

第一幕开始,
	绝大多数动作收益都是0,因此 Q <- 0,算法处于近似随机游走的状态
		每走完一步,算法进行规划更新,for 1:50 随机采样 s,a
			Q(s,a) <- 0
	直到智能体走到 G 点, Q <- 1
		for 1:50 随机采样 s,a
			Q(s,a) <- 大于0的数,if 采样到了靠近 G 点的为位置,
			这个采样概率随着更新为大于0的位置的数量增多,概率也逐渐增大,
			于是表现为箭头开始从 G 点逐渐往起点扩展,从而形成一个较优的策略
第二幕开始,
	同理,在第二幕中间就已经可以得到一个不错的策略了。

Dyna-Q+ :用探索奖励鼓励很久没有探索过的位置

最初,最优路径绕过屏障 (左上) 然而,在 3000 步之后,沿着右侧打开一条较短路径,而它不会影响较长的路径(右上角) 图表显示,普通 Dyna-Q 不会切换到捷径。事实上,它从未意识到新路径的存在它的模型说没有捷径,所以它规划得越多,就越不可能走到右边发现它 即使使用了一个 ϵ \epsilon ϵ-贪心策略,智能体也不太可能采取足够大量的试探动作来发现捷径.
在这里插入图片描述

Dyna-Q+ 在环境不平稳的时候表现更好,因为鼓励了智能体探索很久没有探索过的地方。

Dyna-Q+为动作相关的模拟经验设置的“额外收益”将会提供给智能体。如果模型对单步转移的收益是 r r r,而这个转移在 τ \tau τ时刻内没有被尝试,那么在更新时就会采用 r + κ r r+\kappa \sqrt{r} r+κr 的收益,其中 κ \kappa κ是一个比较小的数字。

类似于UCB,太长时间没有访问了就给额外的奖励,让模型去探索这个位置(探索路径的形成是由于一连串的需要探索的位置奖励都增加了)

总结表格型学习

从更新的宽度与深度看,还有一个维度可以认为是同轨/异轨策略

其他分类标准

回报的定义 任务是分幕式还是持续性的,带折扣的还是不带折扣的?
动作价值 、状态价值还是后位状态价值 需要估计哪种价值?如果是状态价值 则在进行动作选择时,要么有一个模型 要么有个独立的策略(如“行动器-评判器”方法)
动作选择/试探 怎样进行动作选择来确保在试探和开发之间做一个合理的平衡?我们已经讨论了一些很简单的方法: ϵ \epsilon ϵ-贪心、价值的乐观初始化、柔性最大化、置信上界
同步还是异步 对于所有状态来说,更新是同时进行的还是按照某种顺序一个接着一个更新?
真实还是模拟仿真 更新基于真实的经验还是模拟的经验?如果两者都有,它们的比例是怎样的?
更新的位置 哪个状态或“状态-动作“ 二元组应该被更新?无模型的方法只能从真实遇到的状态和“状态 动作“二元组中进行选择,但是基于模型的方法就可以任意选择这里有很多种可能的情况
更新的时机 更新是动作选择的一部分,还是在动作选择之后进行?
更新的记忆 更新的价值应该被保存多久?它们应该被永久保存,还是像在启发式搜索中那样仅仅在动作选择期间保存?

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

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

相关文章

vue javascript tree 层级数据处理

层级数据是有父子关系的数组&#xff0c;示例&#xff1a; const treeData [{id: 1b7e8e98cb1d4a1f81e4fe2dfd9a8458,name: 层级1,parentId: null,children: [{id: 0d45dd5bb4c14d64a3ab0b738add4b24,name: 层级1-1,parentId: 1b7e8e98cb1d4a1f81e4fe2dfd9a8458,children: [{…

Arduino下载、安装及配置(含中文配置步骤)

Arduino下载 官网下载 官网链接---------> Arduino - Home 网盘下载 链接&#xff1a;https://pan.baidu.com/s/1In38y8pinjCL0DEGjRHVTQ?pwdJAYU 提取码&#xff1a;JAYU Arduino安装 直接下一步下一步就行&#xff08;如果不想放在C盘&#xff0c;那就改…

师兄啊师兄第二季开播:男主成海神?玄机是懂联动的!

《师兄啊师兄》动画第二季在12月14日终于正式开播&#xff0c;首播两集&#xff0c;还是很有诚意的。 这部动画改编自言归正传的小说《我师兄实在太稳健了》&#xff0c;原著的知名度不算很高&#xff0c;但玄机制作的动画让这个IP火出了圈。 动画第一季就凭借高颜值的人物建模…

qemu 虚拟机

文章目录 一、参考资料二、QEMU调试参数三、QEMU 命令 一、参考资料 # 查询 qemu 包 apt list | grep qemu# 查询已安装的 qemu 包 apt list --installed | grep qemu # 查询 qemu 版本 qemu-img -V # 安装 sudo apt-get install qemu-system-arm qemu-system-mips qemu-syste…

简洁高效的 NLP 入门指南: 200 行实现 Bert 文本分类 (TensorFlow 版)

简洁高效的 NLP 入门指南: 200 行实现 Bert 文本分类 TensorFlow 版 概述NLP 的不同任务Bert 概述MLM 任务 (Masked Language Modeling)TokenizeMLM 的工作原理为什么使用 MLM NSP 任务 (Next Sentence Prediction)NSP 任务的工作原理NSP 任务栗子NSP 任务的调整和局限性 安装和…

YOLOv8重要文件解读

&#x1f368; 本文为[&#x1f517;365天深度学习训练营学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营 &#x1f356; 原作者&#xff1a;[K同学啊 | 接辅导、项目定制] &#x1f680; 文章来源&#xff1a;[K同学的学习圈子](https://www.yuque.com/m…

js输入框部分内容不可编辑,其余正常输入,el-input和el-select输入框和多个下拉框联动后的内容不可修改

<tr>//格式// required自定义指令<e-td :required"!read" label><span>地区&#xff1a;</span></e-td><td>//v-if"!read && this.data.nationCode 148"显示逻辑<divclass"table-cell-flex"sty…

【CASS精品教程】cass11提示“请不要在虚拟机中运行此程序”的解决办法

文章目录 一、问题提示二、解决办法一、问题提示 按照正常安装教程安装好南方测绘cass 11之后,打开的时候可能会有以下提示:请不要在虚拟机中运行此程序,如下图所示: 遇到问题,咱们就想办法解决问题,下面将自己尝试的方法及最终解决情况跟大家说一下,供参考。 二、解决…

基于ssm图书商城网站的设计和开发论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本图书商城网站就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

【JavaEE】锁的策略

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…

[css] flex wrap 九宫格布局

<div class"box"><ul class"box-inner"><li>九宫格1</li><li>九宫格2</li><li>九宫格3</li><li>九宫格4</li><li>九宫格5</li><li>九宫格6</li><li>九宫格7&l…

【AI工具】GitHub Copilot IDEA安装与使用

GitHub Copilot是一款AI编程助手&#xff0c;它可以帮助开发者编写代码&#xff0c;提供代码建议和自动完成功能。以下是GitHub Copilot在IDEA中的安装和使用步骤&#xff1a; 安装步骤&#xff1a; 打开IDEA&#xff0c;点击File -> Settings -> Plugins。在搜索框中输…

phpstudy是什么?

PHPStudy 是一个集成环境工具&#xff0c;它将 PHP 开发所需的软件&#xff0c;如 Apache&#xff08;Web服务器&#xff09;、MySQL&#xff08;数据库服务器&#xff09;、PHP&#xff08;脚本语言&#xff09;等打包在一起&#xff0c;以便用户能够轻松安装和配置这些软件&a…

【第1期】SpringSecurity基于角色和权限的细粒度接口权限控制

SpringSecurity 细粒度权限控制 一、Role 和 Authority的区别 角色用来表示某一类权限的集合&#xff0c;权限粒度更小&#xff0c;方便细粒度控制 二、创建用户、角色、权限相关表&#xff1a; CREATE TABLE common_user (id bigint(20) NOT NULL COMMENT 主键id,login_na…

详细教程 - 从零开发 鸿蒙harmonyOS应用 第四节 (鸿蒙Stage模型 登录页面 ArkTS版 推荐使用)

在鸿蒙OS中&#xff0c;Ability是应用程序提供的抽象功能&#xff0c;可以理解为一种功能。在应用程序中&#xff0c;一个页面即一种能力&#xff0c;如登录页面&#xff0c;即具有登录功能的能力。以下是对鸿蒙新建项目的登录代码功能的详细解读和工作流程的描述&#xff1a; …

人工智能在红斑狼疮应用主要以下4个方面

人工智能&#xff08;Artificial Intelligence, AI&#xff09;在医学领域的应用已取得了一定的进展。红斑狼疮&#xff08;Systemic Lupus Erythematosus, SLE&#xff09;是一种免疫系统性疾病&#xff0c;对该疾病进行诊断和治疗是一个复杂的过程。人工智能可以发挥作用&…

棒材生产线的7大智能化提升方向 蓝鹏可定制3大类

轧钢智能化控制体系&#xff0c;实行智能化轧钢&#xff0c;提高产品合格率&#xff0c;满足棒材生产线对于产品精度、生产产量、远程集中操控的需求&#xff0c;是钢厂一直致力于实现的目标&#xff0c;目前可从七大方向对棒材产线的智能化方向进行提升。 棒材生产线有以下智…

CRM客户管理系统-超详细介绍

1. CRM概述 CRM&#xff08;Customer Relationship Management&#xff09;客户关系管理&#xff0c;是一种以客户为中心&#xff0c;通过与客户建立持久的、互惠互利的合作关系&#xff0c;从而提高企业整体绩效的管理方法。CRM系统是支持CRM战略的软件工具&#xff0c;用于…

用Pyinstaller打包深度学习算法为独立的可执行程序

前言&#xff1a;随着深度学习算法的流行&#xff0c;在传统工业软件计算领域&#xff0c;传统算法逐渐被深度学习算法给代替&#xff0c;但由于基于python的深度学习算法十分依赖python环境以及例如Pytorch、Scikit-learning、Keras等机器学习库&#xff0c;将深度学习算法运用…

HarmonyOS4.0从零开始的开发教程17给您的应用添加通知

HarmonyOS&#xff08;十五&#xff09;给您的应用添加通知 通知介绍 通知旨在让用户以合适的方式及时获得有用的新消息&#xff0c;帮助用户高效地处理任务。应用可以通过通知接口发送通知消息&#xff0c;用户可以通过通知栏查看通知内容&#xff0c;也可以点击通知来打开应…