机器学习——强化学习中的“策略π”的个人思考

这两天回顾了《西瓜书》中的最后一章——“强化学习”,但是忽然发现之前对于本章中的“策略π”的理解有些偏差,导致我在看值函数公式时有些看不明白。对此,我在网上查了一些资料,但是大部分人都是一笔带过,或者是照本宣科,看的我仍然很迷惑,然后自己琢磨了一下,所以这篇文章主要想分享一下个人对于强化学习中的“策略π”的看法,如果有误请见谅,欢迎一起进行探讨。当然,如果这篇文章还能入得了各位“看官”的法眼,麻烦点赞、关注、收藏,支持一下!

话不多说,进入正文。

相信很多学习强化学习的伙伴们在初期都会有一个疑惑,具体的“策略π”是指什么?

直接我个人的看法,一个具体的策略π”本质上就是一条具体的公式

相信很多学习强化学习的伙伴们都知道,“策略π”分为两种,一种是确定性策略,一种是随机性策略。在我看来,一个具体的“策略π”,不管是确定性策略还是随机性策略,都只是一条具体的公式,两者本质上是没有区别的,只是说两者的输入与输出不同。对于确定性策略,他的输入是“状态”,输出是“动作”,而对与随机性策略,他的输入时“状态”和“动作”,输出是“概率”。

既然,“策略π”是一条具体的公式,那么他的输入和输出就是不固定的,换句话说,就是可以存在多个输入和多个输出的,但是每一个输入都对应一个输出,具体该如何理解呢?我举个路径规划例子,大家直观的感受一下,该例子中的“策略π”为随机性策略:

S0是起点,S3是终点,S1和S2是我们中间可能经过的地方,a0~a4是我们的具体选择,即我们要走哪条路,P0~P4则代表着我们在当前位置选择走某条路的概率,从上图中,我们不难看出,从起点S0出发,到达终点S3,有三种路径:

①S0→S1→S3     ②S0→S2→S3    ③S0→S2→S1→S3

在日常生活中,我们肯定会认为以上三种路径分别对应的是三种不同的策略,但是在强化学习中则不是这样的。在强化学习中,不管我们选择上面三条路径中的哪一条路径,其实都是基于同一个“策略π”

说到这里,可能有些小伙伴会很疑惑,为什么三条种路径都是基于同一个策略?因为“策略π”的本质是一条公式啊,概率P0~P4都是将相对应的S和a带入这条公式算出来的,这条公式是没变的,所以三条路径都是基于同一条“策略π”,也就是说,在同一“策略π”下,只要我们的输入S和a是确定的,那么我们就能得到一个固定的输出P。

另外,这里有一点需要注意

网上很多图片的标注具备误导性,导致广大网友可能会认为上图中的part1部分存在一个策略,part2部分存在一个策略,part3部分存在一个策略,这样其实是不对的。之所以不对,我举个反例大家就清楚了:

我们都知道T步积累状态值函数V是指按照某确定的策略执行T步的平均奖励的期望,定义式如下图所示。假设上图中的第③种路径不存在,只剩①和②两种路径,那么我们要算S0到S3的积累状态值函数,如果认为part1部分存在一个策略,part3部分存在一个策略,那从S0到S3的过程中就是在执行两个策略,那么就直接违背了积累状态值函数V是在执行某确定策略的定义和要求,那么我们就无法求得积累状态值函数V。

说明一下,上述公式中的x就对应第一张图中的S,两者都是表示状态 。

既然说到T步积累状态值函数了,我就紧接着路径规划的这个例子,把这条T步积累状态值函数的公式展开跟大家说说:

 先把P0~P4的值以及相应的奖励给出,如下两表所示:

P0P1P2P3P4
0.810.20.80.2
S0→S1S1→S3S0→S2S2→S1S2→S3
R0=1R1=2R2=3R3=4R4=5

解释一下,为什么第一张表格中的P1=1,因为当我们处于S1位置时,我们只有一条路可以选,所以选择走这条路的概率就是1

根据所列数据,我们可以求出在确定的某一“策略π”下,三种路径各自被选中的概率:

P(S0→S1→S3)=P0*P1=0.8*1=0.8

P(S0→S2→S3)=P2*P4=0.2*0.2=0.04

P(S0→S2→S1→S3)=P2*P3*P1=0.2*0.8*1=0.16

仔细观察上述的三个概率,不难发现:

P(S0→S1→S3)+P(S0→S2→S3)+P(S0→S2→S1→S3)=1

下面,我们计算积累状态值函数V :

 参考文章链接:

强化学习中状态价值函数和动作价值函数的理解-CSDN博客

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

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

相关文章

c++ 设计模式 的课本范例(中)

(10)单例模式 singleton 。整个应用程序执行时,只有一个单例模式的对象。 class GameConfig // 懒汉式,啥时候用单例对象,啥时候创建。 { private:static GameConfig* ptrGameConfig; // 这些函数都作为私有函数&…

Linux编译升级Python 2.7.5到Python3的版本

1.安装编译Python需要的依赖 yum install wget zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline devel tk-devel gcc make zlib zlib-devel2.下载Python3的安装包 wget https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tgz3.解压编译Pyt…

Python爬虫实作篇

本次以Dcard宠物版为例 程式码撰写逻辑 先以宠物版首页将所以文章连结爬下来存到list里,那就会考虑到浏览器往下滑换页,所以要送一个GET从list将连结一个一个取出来组合成正确的网址,并GET下来,寻找图片的标签如果有图片的标签就…

RAG技术:在自然语言处理中的深度融合与创新

在自然语言处理(NLP)领域,随着技术的不断进步,我们见证了各种创新方法的涌现。其中,检索增强生成(Retrieval-Augmented Generation,简称RAG)技术以其独特的优势,逐渐成为…

【wsl2】WIN11借助wsl2挂载ext4磁盘

我有一块ext4文件系统的硬盘,想要在win11上访问,我们可以通过wsl2进行挂载 wsl2的安装就跳过了,可以自行搜索安装。 安装完成后 >>> GET-CimInstance -query "SELECT * from Win32_DiskDrive"通过这个命令,可…

汽车电子工程师入门系列——AUTOSAR通信服务框架(上)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

jad反编译工具笔记

文章目录 下载 反编译 其他官网地址命令参数 反编译是有些应用场景的。 方法也不只一种。 1、jad.exe实现反编译。 2、阿里arthas监控工具带。 3、idea直接打开.class文件就是反编译(是不是很方便)。 这里只说jad.exe这种。 下载 官网下载地址(这是jad158g.win版本)&#xff…

Spring Boot项目如何配置跨域

1、通过SpringSecurity进行配置 2、前端跨域配置:proxy配置项用于设置代理规则,用于前端开发中与后端API交互时使用。

ROS2自定义接口Python实现机器人移动

1.创建机器人节点接口 cd chapt3_ws/ ros2 pkg create example_interfaces_rclpy --build-type ament_python --dependencies rclpy example_ros2_interfaces --destination-directory src --node-name example_interfaces_robot_02 --maintainer-name "Joe Chen" …

Java 基本数据类型【基础篇】

目录 Java 数据类型基本数据类型整数类型【byte、short、int、long】浮点类型【float、double】布尔类型【boolean】字符类型【char】 引用数据类型 Java 数据类型 Java 语言支持的数据类型分为两种:基本数据类型 和 引用数据类型。其数据类型结构如下图所示&#x…

24年hvv前夕,微步也要收费了,情报共享会在今年结束么?

一个人走的很快,但一群人才能走的更远。吉祥同学学安全https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247483727&idx1&sndb05d8c1115a4539716eddd9fde4e5c9&scene21#wechat_redirect这个星球🔗里面已经沉淀了: 《Ja…

【高考志愿】信息与通信工程

目录 一、专业介绍 1.1 专业概述 1.2 学科设置 1.3 课程设置 二、培养目标 三、就业前景 四、志愿填报建议 五、信息与通信工程专业排名 信息与通信工程是一门具有深度与广度的综合性工程学科,它不仅涵盖了信息的传输、处理以及通信系统设计与优化的各个方面…

SQL CASE WHEN语句的使用技巧

SQL CASE WHEN语句的使用技巧 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在SQL查询中,经常需要根据不同的条件进行分支处理,这时就…

30 哈希的应用

位图 概念 题目 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何判断一个数是否在这40亿个整数中 1.遍历,时间复杂度O(N) 2.二分查找,需要先排序,排序(N*logN),二分查找,logN。…

2024年【焊工(初级)】考试及焊工(初级)报名考试

题库来源:安全生产模拟考试一点通公众号小程序 焊工(初级)考试是安全生产模拟考试一点通生成的,焊工(初级)证模拟考试题库是根据焊工(初级)最新版教材汇编出焊工(初级&a…

C++ 史上首次超越 C,仅次于Python!【送源码】

TIOBE 公布了 2024 年 6 月的编程语言排行榜——C 史上首次超越 C,跃至榜二,仅次于 Python。 C 是一种广泛应用于嵌入式系统、游戏开发和金融交易软件等领域的语言,在本月成功超越了 C, 成为了 TIOBE 指数中新的第二名。 这是 C …

Gperftools交叉编译

Gperftools(Google Performance Tools)是由谷歌开发的一组性能分析工具。它包括了多个工 具,其中最为知名的是 tcmalloc(Thread-Caching Malloc)和 CPU Profiler。 相比与其他性能分析工具,gperftools有Pro…

四川省高等职业学校大数据技术专业建设暨专业质量监测研讨活动顺利开展

6月21日,省教育评估院在四川邮电职业技术学院组织开展全省高等职业学校大数据技术专业建设暨专业质量监测研讨活动。省教育评估院副院长赖长春,四川邮电职业技术学院党委副书记、校长冯远洪,四川邮电职业技术学院党委委员、副校长程德杰等出席…

鸿蒙开发设备管理:【@ohos.multimodalInput.inputConsumer (组合按键)】

组合按键 InputConsumer模块提供对按键事件的监听。 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接口均为系统接口,三方应用不支持调用。 导入模块 import inputConsumer …

36.基于多目标螳螂优化算法的微电网优化matlab

微♥关注“电击小子程高兴的MATLAB小屋”获取资源 基于螳螂优化算法的多目标优化算法 求解微电网多目标优化调度 比较不同目标函数寻优对调度结果的影响 第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解并画图 第2种寻找…