【强化学习】第01期:绪论

笔者近期上了国科大周晓飞老师《强化学习及其应用》课程,计划整理一个强化学习系列笔记。笔记中所引用的内容部分出自周老师的课程PPT。笔记中如有不到之处,敬请批评指正。

文章目录

  • 1.1 概述
  • 1.2 Markov决策过程
    • 1.2.1 Markov Process (MP) 马尔科夫过程
    • 1.2.2 Markov Reward Process (MRP) 马尔科夫回报过程
    • 1.2.3 Markov Decision Process (MDP) 马尔科夫决策过程
  • 1.3 强化学习


1.1 概述

强化学习:通过与环境互动,获取环境反馈的样本;回报(作为监督),进行最优决策的机器学习。
强化学习的过程可以用下图进行描述:在状态S1下选择动作a1,获取回报R1的同时跳转到状态S2;在状态S2下选择动作a2,获取回报R2的同时跳转到状态S3……如此循环下去。
强化学习的目标就是:对于给定的状态S,我们能选一个比较好的动作a,使得回报最大。
在这里插入图片描述

1.2 Markov决策过程

1.2.1 Markov Process (MP) 马尔科夫过程

一个马尔科夫过程是一个元组<S,P>,其中S表示一个有限的状态集合,P表示一个状态转移矩阵。
比如:下图矩阵P中的P1n表示,t时刻状态为n的情况下,t+1时刻转移到状态1的概率。矩阵P中的第一行表示从状态1转移出去的概率,最后一行表示从状态n转移出去的概率,所以矩阵中每一行的和都是1。
在这里插入图片描述
这是Markov过程的一个例子:
在这里插入图片描述
在这个例子中,假设初始状态为C1(即class1),进行4次采样,可以得到4个采样结果:
在这里插入图片描述

1.2.2 Markov Reward Process (MRP) 马尔科夫回报过程

马尔科夫回报过程也是一个元组 < S , P , R , γ > <S,P,R,\gamma> <S,P,R,γ>,相比于马尔科夫过程MP,MRP多了 R R R γ \gamma γ。其中, R R R表示在给定状态 s s s的情况下,未来回报的期望。 γ \gamma γ则是折扣因子。

在这里插入图片描述
那么,该怎么计算回报呢?假设当前时间为 t t t,要计算从时间 t t t开始获得的奖励 G t G_t Gt。最直接的方法是计算 G t = R t + 1 + R t + 2 + R t + 3 . . . . . . G_t=R_{t+1}+R_{t+2}+R_{t+3}...... Gt=Rt+1+Rt+2+Rt+3......,但是这样计算是不好的。
第一,如果这么算,就认为未来的奖励和当前的奖励同等重要,这在许多现实问题中并不合理。例如,在金融和经济领域,时间越长的不确定性越高,因此更倾向于重视当前的收益。
第二,在无限时间步长的过程中,累积奖励的和可能是发散的,这会导致价值函数无法计算和优化。
所以,引入了折扣因子 γ \gamma γ。奖励计算方法如下图公式所示。 γ \gamma γ趋向于0时,表示更注重当前奖励, γ \gamma γ趋向于1时,表示更具有远见。
在这里插入图片描述
下面是一个MRP的计算实例。首先进行采样得到几个观测序列。然后套上面的公式得到观测序列的回报,初始状态为 C 1 C1 C1 γ \gamma γ取值为1/2(每一个动作对应的回报值在下一张图片上有)。
在这里插入图片描述
在MRP中还有一个要提的概念是估值函数(value function),它表示以状态s为起始,所有回报的平均。就像下图中所画的一样,假设从状态c1起始进行采样,得到多个观测序列,每一个观测序列都有对应被采样到的概率 P t P_t Pt,以及获得的回报 G t G_t Gt。将 P t ∗ G t P_t*G_t PtGt再求和就是估值函数v(s)。
所以,当MRP确定的时候,v(s)就是确定的值。
在这里插入图片描述

那么v(s)该如何计算呢?
Bellman方程将这个估值函数表示为即时奖励和后续状态价值的和,其公式如下图所示。
在这里插入图片描述
然后可以通过解方程解求出v(s),如下图所示。下图中的 R R R g a m m a gamma gamma P P P都是MRP中的已知量,只有v(1)~v(n)是未知量。也就是说,当 MRP(环境参数)已知时,理论上通过求解 Bellman 方程式可以计算 v(s)。
在这里插入图片描述

1.2.3 Markov Decision Process (MDP) 马尔科夫决策过程

MDP的定义:相比于MRP,MDP多了一个有限的动作集A。可以理解为:MDP 是一个多层的 MRP,每一层对应一个行动 a。
在这里插入图片描述
那么给定一个状态s,我们该选择怎样的行动a呢?这就要提到策略 π π π(policy π π π)了,策略 π π π表示在状态s情况下,跳转到动作a的概率。
在这里插入图片描述
这是一个MDP示意图。图中每一层代表了一个MRP,也隐含了一个动作a。选择a的过程其实就是在不同层之间跳转。
在这里插入图片描述
通过推导可以得出下面两个结论:
(1)MDP by a policy is a MP
这意味着,一旦我们固定了策略 𝜋,在任意状态 𝑠下采取动作 𝑎 的概率就确定了,这样原来的MDP就变成了一个不再依赖动作选择的过程,即一个Markov Process (MP)。
在这里插入图片描述

(2)MDP by a policy is also a MRP
这意味着,在有了策略 𝜋 后,MDP中的奖励也可以固定下来,即从状态 𝑠 到状态 𝑠′ 的转移的期望奖励。
在这里插入图片描述
再补充几个概念:
(1)state-value function v π ( s ) v_π(s) vπ(s):从状态s开始,按照策略 π π π进行决策得到的期望回报
(2)action-value function q π ( s , a ) q_π(s,a) qπ(s,a):从状态s开始,采取动作a,按照策略 π π π进行决策得到的期望回报
(3) v π ( s ) v_π(s) vπ(s) q π ( s , a ) q_π(s,a) qπ(s,a)的关系如下图中红色方框中的公式所示。
在这里插入图片描述
此时,有了MDP by a policy is a MP、MDP by a policy is also a MRP这两个结论后,我们可以进一步推导出:
在这里插入图片描述
从而得到贝尔曼期望方程:
在这里插入图片描述
Bellman期望方程有啥用呢?
(1)策略评估。用于评估一个给定策略 𝜋 的价值函数 V π ( s ) V^π(s) Vπ(s) Q π ( s , a ) Q^π(s,a) Qπ(s,a)。通过迭代的方法,可以逐步逼近真实的值函数。
(2)策略改进。在策略迭代和值迭代算法中,Bellman期望方程用于评估当前策略,并根据评估结果改进策略,从而逐步找到最优策略。

1.3 强化学习

再回想一下强化学习的目标,在强化学习中,我们的目标是对于给定的状态S,我们能选一个比较好的动作a,使得回报最大。即:学习一个策略 π π π,让 v π ( s ) v_π(s) vπ(s) q π ( s , a ) q_π(s,a) qπ(s,a)最大。为了达到这个目标,引入了optimal state-value function v π ( s ) v_π(s) vπ(s)和optimal action-value function q π ( s , a ) q_π(s,a) qπ(s,a)
在这里插入图片描述
在此基础上推导出了贝尔曼最优方程:
在这里插入图片描述
推导过程详见这篇博文:贝尔曼最优方程推导,这篇文章写得挺好的,所以笔者在此就不多赘述啦,大家直接看这篇文章就好!

贝尔曼最优方程定义了最优值函数最优动作值函数。最优值函数表示从状态 𝑠 出发,按照最优策略所能获得的最大期望回报。最优动作值函数表示在状态 𝑠 采取动作 𝑎 后,按照最优策略所能获得的最大期望回报。
贝尔曼最优方程在强化学习中可以用来定义和求解最优策略,使得在每个状态下的累积回报最大化。它为我们提供了一种系统的方法,通过动态规划和迭代更新来逼近最优解,是解决强化学习问题的核心工具。

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

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

相关文章

数据结构速成--排序算法

由于是速成专题&#xff0c;因此内容不会十分全面&#xff0c;只会涵盖考试重点&#xff0c;各学校课程要求不同 &#xff0c;大家可以按照考纲复习&#xff0c;不全面的内容&#xff0c;可以看一下小编主页数据结构初阶的内容&#xff0c;找到对应专题详细学习一下。 这一章…

C语言中常用的运算符、表达式和语句

C语言是一种通用的、高级的编程语言&#xff0c;其历史可以追溯到20世纪60年代末至70年代初。C语言最初是由丹尼斯里奇&#xff08;Dennis Ritchie&#xff09;在贝尔实验室为开发UNIX操作系统而设计的。它继承了许多B语言的特性&#xff0c;而B语言则是由迷糊老师&#xff08;…

安全与加密常识(0)安全与加密概述

文章目录 一、信息安全的基本概念二、加密技术概述三、常见的安全协议和实践四、加密的挑战与应对 在数字时代&#xff0c;信息安全和加密已成为保护个人和企业数据不受侵犯的关键技术。本文将探讨信息安全的基础、加密的基本原理&#xff0c;以及实用的保护措施&#xff0c;以…

RAG一文读懂!概念、场景、优势、对比微调与项目代码示例

本文结合“基于 ERNIE SDKLangChain 搭建个人知识库”的代码示例&#xff0c;为您讲解 RAG 的相关概念。 01 概念 在2020年 Facebook AI Research(FAIR)团队发表一篇名为《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》的论文。这篇论文首次提出了 RA…

Java应用cpu过高如何分析

1. 查看进程cpu使用情况 top 2. 根据PID查看指定进程的各线程的cpu使用情况 top -H -p PID 线程分析&#xff1a; jstack&#xff1a;生成Java线程堆栈&#xff0c;用于分析是否有线程处于忙等待状态或死循环。命令&#xff1a; shell jstack -l <pid> > threaddu…

机器人控制系列教程之关节空间运动控制器搭建(1)

机器人位置控制类型 机器人位置控制分为两种类型&#xff1a; 关节空间运动控制—在这种情况下&#xff0c;机器人的位置输入被指定为一组关节角度或位置的向量&#xff0c;这被称为机器人的关节配置&#xff0c;记作q。控制器跟踪一个参考配置&#xff0c;记作 q r e f q_{re…

免费翻译API及使用指南——百度、腾讯

目录 一、百度翻译API 二、腾讯翻译API 一、百度翻译API 百度翻译API接口免费翻译额度&#xff1a;标准版&#xff08;5万字符免费/每月&#xff09;、高级版&#xff08;100万字符免费/每月-需个人认证&#xff0c;基本都能通过&#xff09;、尊享版&#xff08;200万字符免…

学习阳明心学,需要下真功夫,持续用功

阳明心学是功夫之学&#xff0c;看到善的就发扬光大&#xff0c;看到恶的就立即改正&#xff0c;这才是真功夫

Java基础(五)——ArrayList

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 ⚡开源项目&#xff1a; rich-vue3 &#xff08;基于 Vue3 TS Pinia Element Plus Spring全家桶 MySQL&#xff09; &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1…

centos7 xtrabackup mysql 基本测试(5)mysql 建立 测试 数据库及内容

centos7 xtrabackup mysql 基本测试&#xff08;5&#xff09;mysql 建立 测试 数据库及内容 登录 mysql -u etc -p 1234aA~1创建数据库 名字是company show databases ; create database company;在 company里面 创建表employee use company; DROP TABLE IF EXISTS employ…

linux中的各种指令

按文件的大小进行查找 find / usr -size 100M 在home路径下创建txt文件 touch test.txt 查看test.txt文件中的内容&#xff1a; cat test.txt通过指令pwd可以查看当前所处路径。 切换超级用户的指令&#xff1a; su - root 离开时可以使用指令&#xff1a;exit grep指…

20240629在飞凌开发板OK3588-C上使用Rockchip原厂的SDK跑通I2C扩展GPIO芯片TCA6424ARGJRR

20240629在飞凌开发板OK3588-C上使用Rockchip原厂的SDK跑通I2C扩展GPIO芯片TCA6424ARGJRR 2024/6/29 18:02 1、替换DTS了&#xff1a; Z:\repo_RK3588_Buildroot20240508\kernel\arch\arm64\boot\dts\rockchip viewproviewpro-ThinkBook-16-G5-IRH:~/repo_RK3588_Buildroot2024…

网易云音乐数据爬取与可视化分析系统

摘要 本系统采用Python语言&#xff0c;基于网易云音乐&#xff0c;通过数据挖掘技术对该平台的音乐数据进行了深入的研究和分析&#xff0c;旨在挖掘出音乐市场的规律&#xff0c;为音乐人、唱片公司、音乐爱好者等提供数据支持。系统的开发意义在于&#xff1a;一方面为音乐…

C#基于SkiaSharp实现印章管理(3)

本系列第一篇文章中创建的基本框架限定了印章形状为矩形&#xff0c;但常用的印章有方形、圆形等多种形状&#xff0c;本文调整程序以支持定义并显示矩形、圆角矩形、圆形、椭圆等4种形式的印章背景形状。   定义印章背景形状枚举类型&#xff0c;矩形、圆形、椭圆相关的尺寸…

mathcup大数据竞赛论文中集成学习(或模型融合)的运用分析

ps: (模型融合和集成学习是两个紧密相关但又有所区别的概念。集成学习是一种更广泛的范式&#xff0c;而模型融合可以被视为集成学习的一种特殊形式或策略。) 1.集成学习原理 图1 如图1所示&#xff0c;集成学习是一种通过结合多个机器学习模型的预测来提高整体性能的策略。其…

20240629在NanoPi R6C开发板的预编译的Android12下使用iperf3测试网速

20240629在NanoPi R6C开发板的预编译的Android12下使用iperf3测试网速 2024/6/29 11:11 【表扬一下】友善之臂没有提供update.img的预编译固件&#xff0c;我心里一凉&#xff0c;这么多IMG文件&#xff0c;得一个一个选择呀&#xff01; 但是别人友善之臂特别急人之所急&#…

6.27-6.29 旧c语言

#include<stdio.h> struct stu {int num;float score;struct stu *next; }; void main() {struct stu a,b,c,*head;//静态链表a.num 1;a.score 10;b.num 2;b.score 20;c.num 3;c.score 30;head &a;a.next &b;b.next &c;do{printf("%d,%5.1f\n&…

Flink 从入门到放弃

0 写在前面 程序员闯荡江湖的一生都在与数据打交道&#xff0c;初入江湖时基于 MySQL 的 CRUD&#xff0c;渐入佳境后利用 Redis 实现查询加速及分布式控制&#xff0c;本质上都是数据处理&#xff1b;无论主动/被动&#xff0c;都在利用数据来达成业务/技术目的。自然而然的&a…

javaSE知识点整理总结(下)、MySQL数据库

目录 一、异常 1.常见异常类型 2.异常体系结构 3.异常处理 &#xff08;1&#xff09;finally &#xff08;2&#xff09;throws 二、JDBC 1.JDBC搭建 2.执行SQL语句两种方法 三、MySQL数据库 1.ddl 2.dml 3.dql &#xff08;1&#xff09;字符函数 &#xff08;…

Linux开发讲课22---I2C读写 EEPROM 实验(含代码)

EEPROM 是一种掉电后数据不丢失的存储器&#xff0c;常用来存储一些配置信息&#xff0c;以便系统重新上电的时候加载之。 EEPOM 芯片最常用的通讯方式就是 I2C 协议&#xff0c;本小节以 EEPROM的读写实 验为大家讲解 STM32 的 I2C 使用方法。实验中 STM32 的 I2C 外设采用主模…