第九篇:强化学习Q-learning算法 通俗介绍

news2024/11/29 5:31:57

你好,我是郭震(zhenguo)

今天介绍强化学习第九篇:Q-learning算法

前面我们介绍强化学习基本概念,马尔科夫决策过程,策略迭代和值迭代,这些组成强化学习的基础。

从今天开始逐步介绍常用强化学习算法,从最简单的Q-learning算法开始。简单并不代表不常用,有的简单会是经典,Q-learning算法就是这样的例子。

1 迷宫游戏

假设我们有一个迷宫地图,其中包含多个状态(格子),每个格子可以采取上、下、左、右四个动作进行移动。目标是从起始位置找到迷宫的出口,即到达终点位置。

首先,我们需要定义迷宫地图的状态和动作。状态可以表示为迷宫中的每个格子,动作可以表示为上、下、左、右四个方向。

如下图所示,对于图示白色格子,假定智能体走到这里,它只能向上、下运动,因为左右两侧是障碍物:

5851ef52973e85c82ffa4d0474ca3811.png

由此引出Q表,Q表用于存储每个状态动作对的Q值估计。

在图示迷宫中,Q表是一个二维表格,用于存储每个状态动作对的Q值估计。迷宫地图有4行4列,共有16个格子,且每个格子可以采取上、下、左、右四个动作,那么Q表的大小:[16,4] 二维表格。每一行对应着一个状态,每一列对应着一个动作。

Q表样子:

上     下     左     右
0  Q(0,0)  Q(0,1)  Q(0,2)  Q(0,3)
1  Q(1,0)  Q(1,1)  Q(1,2)  Q(1,3)
2  Q(2,0)  Q(2,1)  Q(2,2)  Q(2,3)
3  Q(3,0)  Q(3,1)  Q(3,2)  Q(3,3)
4  Q(4,0)  Q(4,1)  Q(4,2)  Q(4,3)
5  Q(5,0)  Q(5,1)  Q(5,2)  Q(5,3)
6  Q(6,0)  Q(6,1)  Q(6,2)  Q(6,3)
7  Q(7,0)  Q(7,1)  Q(7,2)  Q(7,3)
8  Q(8,0)  Q(8,1)  Q(8,2)  Q(8,3)
9  Q(9,0)  Q(9,1)  Q(9,2)  Q(9,3)
10 Q(10,0) Q(10,1) Q(10,2) Q(10,3)
11 Q(11,0) Q(11,1) Q(11,2) Q(11,3)
12 Q(12,0) Q(12,1) Q(12,2) Q(12,3)
13 Q(13,0) Q(13,1) Q(13,2) Q(13,3)
14 Q(14,0) Q(14,1) Q(14,2) Q(14,3)
15 Q(15,0) Q(15,1) Q(15,2) Q(15,3)

下面图是给每个状态编号后的示意图,更好帮助你理解Q表:

dbc1ac464b063325fa9feef117b1280b.png


Q表里的每个值代表什么意义?

Q值表示在该状态下采取该动作所获得的长期回报估计。比如Q(11,2)表示在状态11下,采取动作编号2后的长期回报值。

2 归纳

借助上面迷宫游戏,我们归纳出Q-learning算法相关的抽象解释。

Q值定义:

Q值是一个表格,用于存储每个状态动作对的估计价值。对于给定的状态s和动作a,Q值表示在状态s执行动作a所获得的长期回报估计。

Q-learning算法核心之更新规则:

Q-learning使用迭代的方式更新Q值,通过不断更新Q值来逐步逼近最优策略。更新规则如下:

其中,表示在状态s执行动作a的值, 是学习率(0 < α <= 1), 是执行动作a后获得的即时奖励, 是折扣因子(0 <= <= 1), 是执行动作a后转移到的下一个状态,是在下一个状态下选择的动作,表示在下一个状态下所有可能动作中选择值最大的动作。

更新规则的含义是,通过将当前Q值与新估计的Q值加权平均,使Q值逐步收敛到最优值。其中, 控制了新估计值的权重, 控制了对未来回报的重视程度。

通过不断地执行更新规则,Q-learning算法能够逐步学习到最优的Q值,并根据Q值选择最佳的动作来达到最优策略。

3 Q-learning算法

下面是完整的Q-learning算法:

Step1:初始化Q表:对于每个状态-动作对(s, a),将Q(s, a)初始化为一个随机值或者初始值。

Step2:迭代更新Q值:

  • Step2.1 选择一个初始状态s。

  • Step2.2 在当前状态s下,根据一定策略选择一个动作a。例如可以使用ε-greedy策略,在一定概率ε内选择随机动作,否则选择具有最大Q值的动作。

  • Step2.3 执行动作a,观察获得的奖励r以及转移到的下一个状态s'。

  • Step2.4 根据Q值的更新规则,更新Q(s, a):

  • 将状态更新为下一个状态s',并重复以上步骤直到到达终止状态。

Step3 重复步骤Step2,直到达到指定的迭代次数或者满足停止条件。

Step4 返回学习到的Q表作为最优策略。

这个算法的核心是通过不断与环境的交互,根据即时奖励和未来奖励更新Q值,从而逐步学习到最优策略。在训练过程中,智能体通过不断尝试并观察结果,不断调整Q值,直到找到最优的动作选择策略。

感谢你的点赞和转发,让我更新更有动力

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

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

相关文章

QT调用linux外部命令或者shell script

目录 原文链接&#xff1a;https://blog.csdn.net/YMGogre/article/details/128973098 0、本文使用的环境配置&#xff1a; 1、新建一个简单的Shell脚本&#xff1a; 2、在Qt中启动外部Shell脚本&#xff1a; 2.1、使用标准库中提供的方法 —— system() 2.2、使用Qt提供…

接口抓包分析与Mock实战

这里写目录标题 一、知识点梳理1、接口抓包需要具备的能力2、接口抓包原理 二、Charles 基础使用三、charles抓包分析四、Charles 使用1、过滤&#xff1a;Filter、Focus2、重发&#xff1a;Repeat、Repeat Advanced3、修改请求&#xff1a;Compose4、弱网&#xff1a;Throttle…

实验3 Tomasulo算法【计算机系统结构】

实验3 Tomasulo算法【计算机系统结构】 前言推荐实验3 Tomasulo算法1 实验目的2 实验平台3 实验内容和步骤4 实验总结与心得 最后 前言 2023-6-9 9:19:50 以下内容源自《【计算机系统结构】》 仅供学习交流使用 推荐 实验2 指令调度和延迟分支【计算机系统结构】 实验3 To…

webgpu之旅03

19854902 319854902 319854902 319854902 webgpu交Q流群我们找个例子看看别人的renderer three.js v152 首先init函数 看见中间有个对象 WebGPURenderPipelines 跟进去看看 这个构造函数里可以看见有这么些数据 get( renderObject ) {const device this.device;const cache …

Meetup 报名|06.17 StarRocks Friends 与你相约上海

StarRocks & Friends 是由 StarRocks 社区发起的城市线下 meetup&#xff0c;旨在联合社区与行业的专家小伙伴们分享基于 StarRocks 的最佳实践、大数据分析的前沿技术和 StarRocks 生态融合等热门话题。 不远千里奔赴&#xff0c;只为与你相聚。这个夏天&#xff0c;让我们…

Vue+springboot小区居民外出登记信息管理系统

系统采用更加便于维护和使用的JAVA语言&#xff0c;其可拓展性高且更富于表现力&#xff0c;方便基本信息、外出申请、健康信息、外来人员等功能。通过Spring Boot框架来进行网页编程&#xff0c;其方便易用、移植适用性广、更加安全可靠。数据库方面则选用的是体积小、速度快、…

【安装教程】Win10上安装Microsoft To-Do客户端(手机端)

这里写自定义目录标题 操作方法操作说明辅助疑难问题 操作方法 此方法是应用于微软商店无法安装、安装不成功等情况 操作说明 原文&#xff1a;手把手教你在Win10上安装Microsoft To-Do客户端:https://www.jianshu.com/p/32a1ea417cba 1.访问微软网站&#xff0c;找到To-Do的…

【深入浅出 Spring Security(七)】RememberMe的实现原理详讲

RememberMe 的实现原理 一、RememberMe 的基本使用二、RememberMeAuthenticationFilter 源码分析RememberMeServicesTokenBasedRememberMeServicesTokenBasedRememberMeServices 中对 processAutoLoginCookie 方法的实现总结原理图式 三、提高安全性PersistentTokenBasedRememb…

【数据分析之道-Matplotlib(八)】Matplotlib箱线图

文章目录 专栏导读1、Matplotlib箱线图boxplot()基本语法2、Matplotlib箱线图boxplot()举例异常值3、Matplotlib箱线图boxplot()样式定义4、Matplotlib箱线图boxplot()举例带缺口5、Matplotlib箱线图boxplot()举例横向显示6、Matplotlib箱线图boxplot()举例显示平均值7、Matplo…

电子企业实施数字化工厂建设之前,需要注意哪些

随着工业4.0时代的到来&#xff0c;数字化工厂建设已成为越来越多电子企业的重要议题。数字化工厂管理系统能够提高生产效率、降低成本、提高产品质量等多个方面的优势&#xff0c;对于企业的可持续发展具有重要意义。然而&#xff0c;在实施电子企业数字化工厂建设之前&#x…

【Flutter】widgets (6) Stateful Widget 有状态组件的生命周期

文章目录 一、前言二、StatefulWidget的生命周期三、State对象的生命周期四、initState(), didUpdateWidget(), dispose()方法的用途五、StatefulWidget和State对象的生命周期六、代码示例七、总结一、前言 在上一篇文章中,我们初步认识了什么是Stateful Widget 有状态组件。…

minigpt4 部署踩坑记录

1&#xff0c;最近看网上minigpt4很火&#xff0c;下载下来试一下&#xff0c;把碰到问题记录一下。 2 访问 GitHub - Vision-CAIR/MiniGPT-4: MiniGPT-4: Enhancing Vision-language Understanding with Advanced Large Language Models 下载代码到 centos服务上。 3&#xf…

九耶丨阁瑞钛伦特-大型计算机硬件组成(一)

​ IBM大型机系统是由主机和多种外围设备组合形成的一个综合系统&#xff0c;上面是一个主机系统组成的例子。 ​以上是OS390操作系统的组成情况&#xff1a; MVS&#xff1a; 大型机操作系统的核心部分&#xff0c;有时又被使用为大型机操作系统的全称。 SMS&#xff1a; S…

文件管理开发指南全新登场,快来了解如何访问各类文件

原文&#xff1a;文件管理开发指南全新登场&#xff0c;快来了解如何访问各类文件&#xff0c;点击链接查看更多技术内容。 在应用开发的过程中&#xff0c;我们经常会用到各种各样的文件&#xff0c;例如文档、图片、音频、视频等&#xff0c;如何管理和访问这些文件&#xff…

【网络】· VTP虚拟局域网中继

目录 &#x1f349;VTP技术 &#x1f349;以太网通道配置 &#x1f352;sw1配置 &#x1f352;sw2配置 &#x1f349;VTP工作原理 &#x1f352;VTP模式 &#x1f352;VTP通告 &#x1f352;VTP的版本 &#x1f352;VTP修改编号 &#x1f352;VTP通告类型 &#x1f352;VTP修剪…

数据分析第16课seaborn可视化

FacetGrid与调色盘(参看语雀) 前言:有针对性的,选择不同的分析方式去整合数据,描述统计学: 对比分析:同期对比,环境对比等。分类分析:字段分为哪些类别,每个类别出现了多少次,哪个类别的权重是最大的。哪个类别是可以忽略的。哪个类别是干扰项。分布分析:例如身高,…

实现一个简单的事件驱动处理框架

点击上方“嵌入式应用研究院”&#xff0c;选择“置顶/星标公众号” 干货福利&#xff0c;第一时间送达&#xff01; 来源 | 嵌入式应用研究院 整理&排版 | 嵌入式应用研究院 事件驱动框架允许程序处理外部事件&#xff0c;如网络连接、文件I/O、超时和信号。事件驱动框架可…

配置office和wps的数学公式编辑工具Mathtype7.4

一、概述 《数学公式编辑器(MathType)》 是一款专业的数学公式编辑工具&#xff0c;理科生专用的工具。mathtype公式编辑器能够帮助用户在各种文档中插入复杂的数学公式和符号。 数学公式编辑器工具可以轻松输入各种复杂的公式和符号&#xff0c;与Office文档完美结合&#xff…

imu预积分处理

VINS-Mono是HKUST的Shen Shaojie团队开源的一套非常优秀的Visual-Inertial融合定位算法。关于算法的介绍以及论文可以通过此链接查看。 IMU、ˆω和ˆa的原始陀螺仪和加速度计测量值由下式给出&#xff1a; 在车身坐标系测量的IMU测量结合了抗重力和平台动力学的力&#xff0c…

[蓝桥杯 2018 国 B] 矩阵求和

题目描述 经过重重笔试面试的考验&#xff0c;小明成功进入 Macrohard 公司工作。 今天小明的任务是填满这么一张表&#xff1a; 表有 n 行 n 列&#xff0c;行和列的编号都从 1 算起。 其中第 ii 行第 jj 个元素的值是 gcd(i,j) 的平方&#xff0c;gcd 表示最大公约数&#xf…