机器学习——强化学习状态值函数V和动作值函数Q的个人思考

news2024/11/17 22:29:12

最近在回顾《西瓜书》的理论知识,回顾到最后一章——“强化学习”时对于值函数部分有些懵了,所以重新在网上查了一下,发现之前理解的,包括网上的大多数对于值函数的描述都过于学术化、公式化,不太能直观的理解值函数以及值函数的推导,我琢磨了一下,所以这篇文章想通过流程图的形式跟大家分享一下我个人对值函数的思考,如果有误,请见谅。当然,如果这篇文章还能入得了各位“看官”的法眼,麻烦点赞、关注、收藏,支持一下!

一、概念简述

状态值函数V(s):表示智能体从当前状态s出发,按照指定策略π执行直至终止的累积奖励

动作值函数Q(s,a):表示智能体从当前状态s出发,执行指定动作a后,再按照指定策略π执行直至终止的积累奖励

PS:建议小伙伴们去看一下我之前写的文章——《机器学习——强化学习中的“策略π”的个人思考》,这样可能更好的帮助大家理解“指定策略”这一概念

二、值函数详解及推导

为方便大家直观的了解值函数的相关概念,我先从最特殊的情况跟大家进行讲解,如下图1所示:

图1 

图1中S表示状态,a表示动作,R表示执行某一动作后获得的奖励,r表示执行某一动作所对应的奖励

图1是一种最特殊的情况,即当智能体状态为S0时,必然执行a0动作,执行a0动作后状态必然会改变至S1……其中,必然代表着概率是100%。从图中不难发现最后执行完毕后智能体的状态由S0变到了S4,状态值函数V(S0)=动作值函数(S0,a0),即:

进一步的,当只能体为状态S0时,其可执行的动作不仅仅是a0时,怎么办?我将结合图2继续说明:

 图2

图2中S和Y表示状态,a和c表示动作,R表示执行某一动作后获得的奖励,r和q表示执行某一动作所对应的奖励,π(S0,a0)表示按照策略π执行时,在当前状态S0选择执行动作a0的概率,π(S0,c0)同理,不做过多解释。

从图2中,可以很直观的看出,状态值函数V(S0)不再等于单一的动作值函数Q(S0,a0)或者Q(S0,c0),而是按照给定的概率由两个状态值函数构成,即如下所示:

图2中,智能体状态为S0时,可以执行的动作有两个,观察公式不难发现,此时,状态值函数V=不同的动作值函数Q与执行该动作的概率π的乘积累加和,因此,我们就可以将一个状态、两个动作推广到一个状态、多个动作,并得到相应的值函数,如下所示:

符号说明:上式中的s对应图2中的S0,表示当前状态,a对应的是图2中的a0和c0,表示当状态所要执行的动作,π(s,a)表示当前状态s下执行动作a的概率

既然一个状态可执行的动作不唯一,那么一个动作产生的状态是否也是不唯一的呢?我的答案是:是的!!!对此,我们依然采用从特殊到普遍的推导方法,来帮助大家更加直观的理解,直接上图:

 图3

图3中S和X表示智能体状态,a和b表示动作,R表示执行某一动作后获得的奖励,r和z表示执行某一动作所对应的奖励,P0表示智能体在状态S0时执行动作a0后状态变为S1的概率,P1同理,不做过多解释。

从图3中,可以很直观的得到如下几条等式:

因此,通过观察上述的公式,我们就可以将一个动作、两个状态推广到一个动作、多个状态,并得到相应的动作值函数,如下所示:

符号说明:上式中的s对应图3中的S0,表示当前状态,a对应的是图3中的a0,表示当状态所要执行的动作,s'对应图3中的S1和X1,表示下一个状态,P对应图3中的P0和P1,表示执行当前动作后状态变化的概率,Rs对应图3中的r0和z0,表示执行动作a且当前状态由s变到s'时环境返回的奖励,V(s')对应图3中的V(S1)和V(X1),表示智能体从下一状态s'出发,按照指定策略π执行直至终止的累积奖励,π(s,a)表示当前状态s下执行动作a的概率

上面已经讲了一个状态可能执行多个动作,以及一个动作可能产生多个状态的情况,那么有些脑子非常非常灵活的小伙伴可能已经想到,我们是否可以将两者结合,来推导出一下多个状态,多个动作的情况呢?我的答案是:可以!!!直接上图:

 图4

通过对比图2、图3和图4,不难发现,图4是图2和图3的有机结合,图4中既存在一个状态可能执行两个动作,又存在一个动作可能产生两个状态的情况,因此,我们可以从图4中得到如下公式:、

通过观察上述的公式,我们就可以得到多个状态,多个动作下的状态值函数,即如下所示:

符号说明:上式中的s对应图4中的S0,表示当前状态,a对应的是图4中的a0和c0,表示当状态所要执行的动作,s'对应图4中的S1、X1以及Y1,表示下一个状态,P对应图4中的P0和P1,表示执行当前动作后状态变化的概率,Rs对应图4中的r0、z0以及q0,表示执行动作a且当前状态由s变到s'时环境返回的奖励,V(s')对应图4中的V(S1)、V(X1)以及V(Y1),表示智能体从下一状态s'出发,按照指定策略π执行直至终止的累积奖励,π(s,a)表示当前状态s下执行动作a的概率

三、T步积奖例累函数推导说明

一些细心的小伙伴可能发现了,我上面列的一些公式可能跟市面上的大部分参考书不一样,但是内部的机理是一致的,为了防止有些朋友会存在困惑,所以我解释一下:

1、符号不一样:为了增加区分度,让各位的更清楚,所以自己增设了一些符号

2、奖励函数不一样:很多人在参考书上看到的奖励函数应该都是T步平均奖励,或者γ折扣奖励,而上文以T步的累计和作为奖励,之所以采用T步的累加和作为奖励,是因为这样大家可以更加的直观了解两个值函数之间的关系与转换

为了跟广大的参考书籍保持一致,下面这一小节,我主要对T步积累奖励函数及其相关推导进行说明。

这里给出的T步积累奖励函数的原公式来源于周志华老师的《西瓜书》

先给出《西瓜书》中的公式:

看到《西瓜书》上的公式,我相信大部分小伙伴都发现了,我上文中推导出来的黄色高亮公式与《西瓜书》中的公式非常像,唯一区别就在于《西瓜书》中的公式中多出了为什么会这样呢?

其实原因很简单,《西瓜书》中的公式是以T步的平均值作为奖励,而上文中是以T步的累加和作为奖励。

当我们以T步的平均值作为奖励,也就是说,我们可以将每步的奖励看做是原来每步奖励的T分之一,于是图1将转换成下图5:

图5 

声明:本文中的 和《西瓜书》公式中的的表达式是不一致的,查看下面式子中红色标记部分即可知晓

于是,图5中的信息可表示为:

通过对比上面的公式,我们不难发现,其中中的T主要是因为每步的奖励变为了原来的T分之一,而主要是为了保证的显示格式统一。

通过上文,我想我应该讲清楚了T步积累奖励函数,如果有小伙伴还有不明白的,欢迎评论,另外,因为本人有点懒,又累了,所以就不对γ折扣奖励函数进行说明,原理跟T步积累奖励函数一致

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

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

相关文章

完美世界|单机版合集(共22个版本)

前言 我是研究单机的老罗,今天给大家带来的是完美世界的单机版合集,一共22个版本。本人亲自测试了一个版本,运行视频如下: 完美世界|单机版合集 先看所有的版本的文件,文件比较大,准备好空间,差…

振动分析-6-轴承数据库之时频域短时傅里叶变换STFT

Python轴承故障诊断 (一)短时傅里叶变换STFT 1 短时傅里叶变换 1.1 基本原理 傅里叶变换的基本思想: 将信号分解成一系列不同频率的连续正弦波的叠加;或者说,将信号从时间域转换到频率域。 由于傅里叶变换是对整个信号进行变换,将整个信号从时域转换到频域,得到一个整体…

【笔记】如何在gitee仓库上传idea代码

在你已经有gitee账号以及仓库的基础上 如果在gitbash中输入git push -u origin master 返回显示remote: [session-7542218c] 13123489737: Incorrect username or password (access token) fatal: Authentication failed for https://gitee.com/你的gitee用户名/你的仓库名.g…

【0基础学爬虫】爬虫基础之scrapy的使用

【0基础学爬虫】爬虫基础之scrapy的使用 大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到…

快团团团长如何导出自提点订单?免费教程一学就会

快团团团长如何导出自提点订单? 一、xcx端如何导出自提点订单? 进入团购页面,在订单管理——订单导出中,可导出自提点商品汇总单和自提点订单 注意:只有自提团才能导出自提点商品汇总表 二、电脑端如何导出自提点订…

算法入门<三>:升级平衡二叉搜索树之AVL 树

1、前言 二叉搜索树在多次插入和删除操作后,可能退化为链表。在这种情况下,所有操作的时间复杂度将从 O(logn)劣化为 O(n)。如图 所示,经过两次删除节点操作,这棵二叉搜索树便会退化为链表; 完美二叉树中插入两个节点后&#xff0…

MSYS2教程(windows环境下使用linux工具)

MSYS2教程(windows环境下使用linux工具) 1.msys2简介 MSYS2(Minimal SYStem 2)是一个集成了大量的GNU工具链、工具和库的开源软件包集合。它提供了一个类似于Linux的shell环境,可以在Windows系统中编译和运行许多Linux应用程序和工具。 MS…

Unity 解包工具(AssetStudio/UtinyRipper)

文章目录 1.UtinyRipper2.AssetStudio 1.UtinyRipper 官方地址: https://github.com/mafaca/UtinyRipper/ 下载步骤: 2.AssetStudio 官方地址: https://github.com/Perfare/AssetStudio 下载步骤:

Python学习路线图(2024最新版)

这是我最开始学Python时的一套学习路线,从入门到上手。(不敢说精通,哈哈~) 一、Python基础知识、变量、数据类型 二、Python条件结构、循环结构 三、Python函数 四、字符串 五、列表与元组 六、字典与集合 最后再送给大家一套免费…

Ubuntu离线安装vsftpd

1.使用lsb_release -a命令查看当前系统的版本信息 2. 使用联网计算机下载对应系统版本的deb安装包 https://pkgs.org/download/vsftpd 3.安装 dpkg -i vsftpd_3.0.5-0ubuntu1_amd64.deb 没有安装dpkg的请到我博客查看,链接如下: Ubuntu20.04离线安装…

AI智能剪辑发展到哪种地步?来看看云微客就知道了!

不是短视频团队招不起,而是矩阵账号更有性价比。企业做短视频有反思过为什么干不过同行吗?我们来看看大佬是怎么做的。云微客AI智能剪辑系统用几百个账号做矩阵布局,系统每天自动进行批量剪视频、写文案、一键自动化发布视频,一个…

小程序API介绍及常用API

一、小程序API介绍 小程序开发框架提供丰富的微信原生API,可以方便的调起微信提供的能力,例如:获取用户信息、微信登录、 微信支付等,小程序提供的API几乎都挂载在wx对象下,例如:wx.request()、wx.setStor…

欧盟《净零工业法案》通过,全球清洁能源市场迎来新格局

2024年5月27日,欧盟理事会正式通过《净零工业法案》,这意味着欧盟在推动工业绿色转型方面迈出了具有决定性的一步。这一法案的通过,不仅对欧盟的净零排放目标具有深远影响,也将对全球清洁能源市场产生重大影响。 《净零工业法案》…

分体式天线的应用介绍

分体式天线的主要应用广泛且多样化,以下是对其主要应用的归纳: 1、仓储管理 在RFID仓储项目中,使用性能好的RFID分体式天线可以确保系统的稳定性,更能够降低整个项目的成本。 分体式天线通过其多个天线接口与分体式读写器连接&…

助你疯狂涨点!16种注意力机制魔改模型!

【注意力机制模型】是近年来在深度学习领域中备受关注的一项技术。它通过为输入数据中的重要部分分配更高的权重,从而增强模型对关键特征的识别能力。注意力机制在神经网络的不同层次上应用,可以动态调整注意力权重,从而提高模型的性能。该技…

前端学习二(JavaScript上)

JavaScript的学习笔记分享,帮助我自己和大家一起建立对JavaScript的了解和学习。Life need to share. ##文章内容:JavaScript 定义和的实现 ##编写内容:1.html实现平台 2.HTML简介 3.HTML语言解析 ##编写人:贾雯爽 ##最后更新…

TikTok直播限流与网络的关系及解决方法

TikTok作为一款热门的社交平台,其直播功能吸引了大量用户。然而,一些用户可能会遇到TikTok直播限流的问题,例如直播过程中出现播放量低、直播画面质量差等情况。那么,TikTok直播限流与所使用的网络线路是否有关系?是否…

如何使用命令提示符查询电脑相关序列号等信息的操作方法

如何使用命令提示符查询硬盘的序列号? 如果出于保修或其他目的,你想知道硬盘驱动器的序列号,你不想使用第三方应用程序,或者如果你更喜欢命令行方法,则可以使用带有命令提示符的命令来显示硬盘驱动器的序列号。 1. 按…

AutoHotKey自动热键(二)中文版帮助手册下载和自定义一般键盘快捷键

所有的操作其实在开发者手册中已经交待完了,所以我们要使用中文的手册来进行使用 autohotkey1.1.15中文手册下载 好了,为什么有了中文手册,这里还要进行一些具体的介绍呢,就是为了让大家少踩坑,能够快速形成生产力 这里先讲一下自定义快捷键WIN键和ALT键和CTRL键和SHIFT键的组…