【强化学习】第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.rhkb.cn/news/367864.html

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

相关文章

大模型对汽车行业意味着什么?_汽车企业大模型

引 言 大模型是一种利用海量数据进行训练的深度神经网络模型&#xff0c;其特点是拥有庞大的参数规模和复杂的计算结构。通过在大规模数据集上进行训练&#xff0c;大模型能够学习到丰富的模式和特征&#xff0c;从而具备强大的泛化能力&#xff0c;可以对未知数据做出准确的预…

Qt实战项目——贪吃蛇

一、项目介绍 本项目是一个使用Qt框架开发的经典贪吃蛇游戏&#xff0c;旨在通过简单易懂的游戏机制和精美的用户界面&#xff0c;为玩家提供娱乐和编程学习的机会。 游戏展示 二、主要功能 2.1 游戏界面 游戏主要是由三个界面构成&#xff0c;分别是游戏大厅、难度选择和游戏…

【LeetCode刷题】3099.哈沙德数

题目链接 3099. 哈沙德数 - 力扣&#xff08;LeetCode&#xff09; 实现代码 int sumOfTheDigitsOfHarshadNumber(int x) {int sum 0;for(int temp x; temp; temp / 10)sum temp % 10;return x%sum ? -1 : sum; }

【C语言】指针经典例题

题1&#xff1a; #include <stdio.h>int main() {int a[5] { 1, 2, 3, 4, 5 };int* ptr (int*)(&a 1);printf("%d,%d", *(a 1), *(ptr - 1));return 0; } //程序的结果是什么&#xff1f; 解答如下&#xff1a; 题2&#xff1a; #include <std…

NSSCTF-Web题目18(反序列化)

目录 [NISACTF 2022]babyserialize 1、题目 2、知识点 3、思路 [SWPUCTF 2022 新生赛]ez_ez_unserialize 4、题目 5、知识点 6、思路 [NISACTF 2022]babyserialize 1、题目 2、知识点 反序列化、绕过过滤、命令执行 3、思路 <?php include "waf.php";…

【ES】--Elasticsearch的翻页详解

目录 一、前言二、from+size浅分页1、from+size导致深度分页问题三、scroll深分页1、scroll原理2、scroll可以返回总计数量四、search_after深分页1、search_after避免深度分页问题一、前言 ES的分页常见的主要有三种方式:from+size浅分页、scroll深分页、search_after分页。…

《昇思25天学习打卡营第7天|函数式自动微分》

文章目录 今日所学&#xff1a;一、函数与计算图二、微分函数与梯度计算三、Stop Gradient四、Auxiliary data五、神经网络梯度计算总结 今日所学&#xff1a; 今天我学习了神经网络训练的核心原理&#xff0c;主要是反向传播算法。这个过程包括将模型预测值&#xff08;logit…

【设计模式】行为型-状态模式

在变幻的时光中&#xff0c;状态如诗篇般细腻流转。 文章目录 一、可调节的灯光二、状态模式三、状态模式的核心组件四、运用状态模式五、状态模式的应用场景六、小结推荐阅读 一、可调节的灯光 场景假设&#xff1a;我们有一个电灯&#xff0c;它可以被打开和关闭。用户可以…

大模型与机器人精彩碰撞-7月5日晚上八点不见不散!

在瞬息万变的科技时代&#xff0c;新兴人工智能和机器人技术的结合正在引领新一轮的创新浪潮。你是否想成为未来科技的领航者&#xff1f;你是否想了解最前沿的AI与机器人技术&#xff1f;行麦科技重磅推出的“AIGC时代的生存法则”AI系列课&#xff0c;将为你揭开大模型与机器…

redis学习(001 介绍)

黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目 总时长 42:48:00 共175P 此文章包含第1p-第p4的内容 文章目录 介绍差异对比事务区别 认识redis 介绍 两种键值对方式对比 差异对比 事务区别 认识redis

Paimon 在汽车之家的业务实践

汽车之家基于Paimon的实践 摘要&#xff1a;本文分享自汽车之家的王刚、范文、李乾⽼师。介绍了汽车之家基于 Paimon 的一些实践&#xff0c;和一些背景。内容主要为以下四部分&#xff1a; 一、背景 二、业务实践 三、paimon 优化实践 四、未来规划 一、背景 在使用Paimon之前…

Java---Mybatis详解二

雄鹰展翅凌空飞&#xff0c; 大江奔流不回头。 壮志未酬心未老&#xff0c; 豪情万丈任遨游。 巍巍高山攀顶峰&#xff0c; 滔滔黄河入海流。 风云变幻凭君舞&#xff0c; 踏遍天涯尽逍遥。 目录 一&#xff0c;环境准备 二&#xff0c;删除 三&#xff0c;删除(预编译SQL) 为什…

无法定位程序输入点Z9 qt assertPKcS0i于动态链接库F:\code\projects\06_algorithm\main.exe

解决方法&#xff1a; 这个报错&#xff0c;是因为程序在运行时没要找到所需的dll库&#xff0c;如果把这个程序方法中对应库的目录下执行&#xff0c;则可正常执行。即使将图中mingw_64\bin 环境变量上移到msvc2022_64\bin 之前也不可以。 最终的解决方法是在makefile中设置环…

RealMAN:大规模真实录制且经过注释的麦克风阵列数据集

在深度学习驱动的多通道语音增强和声源定位系统的开发中&#xff0c;由于缺乏大规模的真实录制数据集&#xff0c;这些系统的训练在很大程度上依赖于房间脉冲响应&#xff08;RIR&#xff09;和多通道扩散噪声的模拟。然而&#xff0c;模拟数据和真实世界数据之间存在的声学失配…

QStringListModel 绑定到QListView

1.QStringListModel 绑定到listView&#xff0c;从而实现MV模型视图 2.通过QStringListModel的新增、删除、插入、上下移动&#xff0c;listView来展示出来 3.下移动一行&#xff0c;传入curRow2 的个人理解 布局 .h声明 private:QStringList m_strList;QStringListModel *m_m…

[译]Reactjs性能篇

英文有限&#xff0c;技术一般&#xff0c;海涵海涵&#xff0c;由于不是翻译出身&#xff0c;所以存在大量的瞎胡乱翻译的情况&#xff0c;信不过我的&#xff0c;请看原文&#xff5e;&#xff5e; 原文地址&#xff1a;https://facebook.github.io/react/docs/advanced-per…

Servlet_Web小结

1.web开发概述 什么是服务器&#xff1f; 解释一&#xff1a;服务器就是一款软件,可以向其发送请求,服务器会做出一个响应. 可以在服务器中部署文件,让他人访问 解释二&#xff1a;也可以把运行服务器软件的计算机也可以称为服务器。 web开发&#xff1a; 指的是从网页中向后…

Android LayoutInflater 深度解析

在 Android 开发中&#xff0c;LayoutInflater 是一个非常重要的工具。它允许我们从 XML 布局文件中动态地创建 View 对象&#xff0c;从而使得 UI 的创建和管理更加灵活。本文将深入解析 android.view.LayoutInflater&#xff0c;包括它的基本用法、常见问题以及高级用法。 什…

idea xml ctrl+/ 注释格式不对齐

处理前 处理后 解决办法 取消这两个勾选

【UE5.3】笔记6-创建可自由控制Pawn类

搭建场景 搭建一个场景&#xff1a;包含地板、围墙。可以根据喜好加一些自发光的效果。 增加食物 创建食物蓝图类&#xff0c;在场景里放置一些食物以供我们player去吃掉获取分值。 创建可控制的layer 我们先右键创建一个蓝图继承自pawn类&#xff0c;起名BP_Player&#xf…