强化学习之蒙特卡罗(MC)、动态规划(DP)、时间差分(TD)

news2025/3/1 13:14:28

强化学习笔记

      • 1.马尔可夫决策过程(MDP)
        • 1.马尔可夫性质
        • 2.马尔可夫过程
        • 3.马尔可夫奖励过程(MRP)
        • 4.马尔可夫决策过程(MDP)
      • 2.蒙特卡罗(MC)、动态规划(DP)、时间差分(TD)
        • 1.蒙特卡罗(MC)
        • 2.动态规划(DP)
        • 3.时间差分(TD)
        • 4. MC、DP、TD之间的关系。

1.马尔可夫决策过程(MDP)

1.马尔可夫性质

当且仅当某时候的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质
P ( S t + 1 ∣ S t ) = P ( S t + 1 ∣ S 1 , . . . , S t ) P(S_{t+1}|S_t)=P(S_{t+1}|S_1,...,S_t) P(St+1St)=P(St+1S1,...,St)


2.马尔可夫过程

指具有马尔可夫性质的随机过程被称为马尔可夫过程,通常用元组<S,P>描述。

S表示有限数量的状态集合,终止状态是指它不会再转移到其他状态
S = { s 1 , s 2 , . . . s n } S=\{s_1,s_2,...s_n\} S={s1,s2,...sn}
P是状态转移矩阵,定义所有状态对之间的转移概率,某个状态到其他状态的概率和必须为1。
P = [ P ( s 1 ∣ s 1 ) . . . P ( s n ∣ s 1 ) . . . . . . . . . P ( s 1 ∣ s n ) . . . P ( s n ∣ s n ) ] P=\begin{bmatrix} P(s_1|s_1) & ...& P(s_n|s_1) \\ ... & ... &...\\P(s_1|s_n)&...&P(s_n|s_n) \end{bmatrix} P= P(s1s1)...P(s1sn).........P(sns1)...P(snsn)

3.马尔可夫奖励过程(MRP)

再马尔可夫过程的基础上加入奖励函数r和折扣因子γ,就可以得到马尔可夫奖励过程,通常由<S,P,r,γ>构成。

S是有限状态的集合。

P是状态转移矩阵。

r是奖励函数,某个状态s的奖励r(s)指转移到该状态时可以获得的奖励的期望

γ是折扣因子,取值范围为[0,1)。

(1) 回报:

在马尔可夫奖励过程中,从第t时刻状态St开始,直到终止状态时,所有奖励的衰减之和称为回报。
G t = R t + γ R t + 1 + r 2 R t + 2 + . . . = ∑ i = 0 ∞ r k R t + k G_t=R_t+γR_{t+1}+r^2R_{t+2}+...=\sum_{i=0}^∞r^kR_{t+k} Gt=Rt+γRt+1+r2Rt+2+...=i=0rkRt+k
(2) 价值函数:

在马尔可夫奖励过程中,一个状态的期望回报被称为这个状态的价值。价值函数输入为某个状态,输出为这个状态的价值。
V ( s ) = E [ G t ∣ S t = s ] V ( s ) = r ( s ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s ) V ( s ′ ) V(s)=E[G_t|S_t=s]\\ V(s)=r(s)+γ\sum_{s'∈S}P(s'|s)V(s') V(s)=E[GtSt=s]V(s)=r(s)+γsSP(ss)V(s)
(3)贝尔曼方程:
V = R + γ P V ( I − r P ) V = R V = ( I − r P ) − 1 R V=R+γPV\\ (I-rP)V=R\\ V=(I-rP)^{-1}R V=R+γPV(IrP)V=RV=(IrP)1R
贝尔曼方程的计算复杂度O(n3),求解较大规模的马尔可夫奖励过程的价值函数时,可以使用动作规划(DP)算法,蒙特卡洛方法(MC)和时序差分(TD)

4.马尔可夫决策过程(MDP)

​ 马尔可夫过程和马尔可夫奖励过程都是自发改变的随机过程,在这基础上加一个外界的“刺激”(智能体的动作)来改变这个随机过程,就有了马尔可夫决策过程,通常由<S,A,P,r,γ>。

S是状态的集合。

A是动作的集合。

γ是折扣因子。

r(s,a)是奖励函数,此时奖励可能同时取决于状态s和动作a

P(s’|s,a)是状态转移函数,表示在状态s执行动作a之后到达状态s‘的概率

r’(s)表示在一个MRP状态s的奖励。
r ′ ( s ) = ∑ a ∈ A π ( a ∣ s ) r ( s , a ) r'(s)=\sum_{a∈A}\pi(a|s)r(s,a) r(s)=aAπ(as)r(s,a)
P’(s’|s)表示在一个MRP的状态从s转移至s’的概率。
P ′ ( s ′ ∣ s ) = ∑ a ∈ A π ( a ∣ s ) P ( s ′ ∣ s , a ) P'(s'|s)=\sum_{a∈A}\pi(a|s)P(s'|s,a) P(ss)=aAπ(as)P(ss,a)
(1)策略:

策略Π(a|s)表示输入状态为s的情况下采取动作a的概率。
π ( a ∣ s ) = P ( A t = a ∣ S t = s ) \pi(a|s)=P(A_t=a|S_t=s) π(as)=P(At=aSt=s)
(2)状态价值函数:

从状态s出发遵循策略Π能获得的期望回报,被称为状态价值函数VΠ(s)
V π ( s ) = E π [ G t ∣ S t = s ] V^\pi(s)=E_\pi[G_t|S_t=s] Vπ(s)=Eπ[GtSt=s]
(3)动作价值函数:

从状态s出发,遵循策略Π并执行动作a得到的期望回报,被称为动作价值函数QΠ(s,a)
Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] Q^\pi(s,a)=E_\pi[G_t|S_t=s,A_t=a] Qπ(s,a)=Eπ[GtSt=s,At=a]
状态s的价值等于在该状态下基于策略Π采取所有动作的概率和相应的价值相乘再求和的结果。
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) Q π ( s , a ) V^\pi(s)=\sum_{a∈A}\pi(a|s)Q^\pi(s,a) Vπ(s)=aAπ(as)Qπ(s,a)
状态s下采取动作a的价值等于即时奖励加上经过衰减的所有可能的下一个状态的状态转移概率和相应的价值乘积。
Q π ( s , a ) = r ( s , a ) + r ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) Q^\pi(s,a)=r(s,a)+r\sum_{s'∈S}P(s'|s,a)V^\pi(s') Qπ(s,a)=r(s,a)+rsSP(ss,a)Vπ(s)
(4)贝尔曼期望方程:

由上式推导可得
Q π = r ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) Q π ( s ′ ∣ a ′ ) V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( r ( s , a ) + r ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ) Q^\pi=r(s,a)+γ\sum_{s'∈S}P(s'|s,a)\sum_{a'∈A}\pi(a'|s')Q^\pi(s'|a')\\V^\pi(s)=\sum_{a∈A}\pi(a|s)(r(s,a)+r\sum_{s'∈S}P(s'|s,a)V^\pi(s')) Qπ=r(s,a)+γsSP(ss,a)aAπ(as)Qπ(sa)Vπ(s)=aAπ(as)(r(s,a)+rsSP(ss,a)Vπ(s))
(5)贝尔曼最优方程:

强化学习的目标:通常是找到一个策略,使得智能体从初始状态出能获得最多的期望回报

*最优策略(Π(s)):**在有限状态和动作集合的MDP中,至少存在一个策略比其他所有策略都好或者至少存在一个策略不差于其他所有策略。

最优状态价值函数:
V ∗ ( s ) = max ⁡ π V π ( s ) V^*(s)=\max_{\pi}V^\pi(s) V(s)=πmaxVπ(s)
最优动作价值函数:
Q ∗ ( s , a ) = max ⁡ π Q π ( s , a ) Q^*(s,a)=\max_{\pi}Q^\pi(s,a) Q(s,a)=πmaxQπ(s,a)
为了使用最优动作价值函数最大,需要在当前状态动作对(s,a)之后都执行最优策略。
Q ∗ ( s , a ) = r ( s , a ) + r ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) V ∗ ( s ′ ) = max ⁡ a ∈ A Q ∗ ( s , a ) Q^*(s,a)=r(s,a)+r\sum_{s'∈S}P(s'|s,a)V^*(s')\\V^*(s')=\max_{a∈A}Q^*(s,a) Q(s,a)=r(s,a)+rsSP(ss,a)V(s)V(s)=aAmaxQ(s,a)
根据最优状态价值函数和最优动作价值函数的关系,以及贝尔曼方程,得到贝尔曼最优方程。
V ∗ ( s ) = max ⁡ a ∈ A { r ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) } Q ∗ ( s , a ) = r ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) max ⁡ a ′ ∈ A Q ∗ ( s ′ , a ′ ) V^*(s)=\max_{a∈A}\{r(s,a)+γ\sum_{s'∈S}P(s'|s,a)V^*(s')\}\\Q^*(s,a)=r(s,a)+γ\sum_{s'∈S}P(s'|s,a)\max_{a'∈A}Q^*(s',a') V(s)=aAmax{r(s,a)+γsSP(ss,a)V(s)}Q(s,a)=r(s,a)+γsSP(ss,a)aAmaxQ(s,a)
V*(s)与VΠ(s)的区别:前者会按照获取最多期望回报的动作来取值,其他动作则不会赋予概率,类似于贪心算法;后者会根据策略Π对各个动作的概率分配获取的期望回报来求和, 就是求期望。

2.蒙特卡罗(MC)、动态规划(DP)、时间差分(TD)

这些方法用于找到一个策略,使得智能体从初始状态出能获得最多的期望回报

1.蒙特卡罗(MC)

如图所示,蒙特卡罗需要一个完整的路径。

蒙特卡罗公式的推导:

(1).状态价值的期望回报:当策略在MDP上采样很多条序列,计算从这个状态出发的回报再求其期望
V π = E π [ G t ∣ S t = s ] ≈ 1 N ∑ i = 1 N G t ( i ) V^\pi=E_\pi[G_t|S_t=s]\approx \frac{1}{N}\sum_{i=1}^NG_t^{(i)} Vπ=Eπ[GtSt=s]N1i=1NGt(i)
(2).采用增量式更新来推导。
V N π = 1 N ∑ i = 1 N G t ( i ) = 1 N ( G t + ∑ i = 1 N − 1 G t ( i ) ) = 1 N ( G t + ( N − 1 ) V N − 1 π ( s ) ) = V N − 1 π ( s ) + 1 N ( G t − V N − 1 π ( s ) ) ( V N − 1 π ( s ) 表示 V N π 的前一步的值,都是表示同一状态 ) V^\pi_N=\frac{1}{N}\sum_{i=1}^NG_t^{(i)}\\=\frac{1}{N}(G_t+\sum_{i=1}^{N-1}G_t^{(i)})\\=\frac{1}{N}(G_t+(N-1)V^\pi_{N-1}(s))\\=V^\pi_{N-1}(s)+\frac{1}{N}(G_t-V^\pi_{N-1}(s))\\(V^\pi_{N-1}(s)表示V^\pi_N的前一步的值,都是表示同一状态) VNπ=N1i=1NGt(i)=N1(Gt+i=1N1Gt(i))=N1(Gt+(N1)VN1π(s))=VN1π(s)+N1(GtVN1π(s))(VN1π(s)表示VNπ的前一步的值,都是表示同一状态)
(3).蒙特卡罗公式。
1. 收集 e p i s o d e ( S 1 , A 1 , R 1 , . . . . S t ) 2. 状态 S t 的回报为 G t N ( S t ) ← N ( S t ) + 1 V ( S t ) ← V ( S t ) + 1 N ( S t ) ( G t − V ( S t ) ) 1.收集episode(S_1,A_1,R_1,....S_t)\\2.状态S_t的回报为G_t\\N(S_t)\gets N(S_t)+1\\V(S_t)\gets V(S_t)+\frac{1}{N(S_t)}(G_t-V(S_t)) 1.收集episode(S1,A1,R1,....St)2.状态St的回报为GtN(St)N(St)+1V(St)V(St)+N(St)1(GtV(St))

2.动态规划(DP)

动态规划:将待求解问题分解成若干子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。

基于动态规划的强化学习分为策略迭代(policy iteration)价值迭代(value iteration)

(1).策略迭代

策略迭代由两部分组成:策略评估(policy evaluation)策略提升(policy improvement)

i.策略评估:根据之前学习的贝尔曼期望方程,可以得到,当知道奖励函数r(s,a)和状态转移函数p(s’|s,a)时,可以根据下一个状态的价值来计算当前状态的价值。因此,可以把下一个可能状态的价值当成一个子问题,把当前状态的价值看作成当前问题。公式如下:
V k + 1 ( s ) = ∑ a ∈ A π ( a ∣ s ) ( r ( s , a ) + r ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V k ( s ′ ) ) V^{k+1}(s)=\sum_{a∈A}\pi(a|s)(r(s,a)+r\sum_{s'∈S}P(s'|s,a)V^k(s')) Vk+1(s)=aAπ(as)(r(s,a)+rsSP(ss,a)Vk(s))
当子问题和当前问题之间的差值比较小时,则证明迭代已经收敛,可以结束策略评估。

ii.策略提升:可以贪心地在每一个状态选择动作价值最大的动作。
π ′ ( s ) = a r g max ⁡ a Q π ( s , a ) = a r g max ⁡ a { r ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) } \pi'(s)=arg \max_aQ^\pi(s,a)=arg \max_a\{r(s,a)+γ\sum_{s'∈S}P(s'|s,a)V^\pi(s')\} π(s)=argamaxQπ(s,a)=argamax{r(s,a)+γsSP(ss,a)Vπ(s)}
策略迭代算法:


在这里插入图片描述

(2).价值迭代

价值迭代直接由贝尔曼最优方程来进行动态规划 ,得到最终的最优状态价值函数。


在这里插入图片描述

3.时间差分(TD)

在这里插入图片描述

时序差分:用来估计一个策略的价值函数的方法,它结合了蒙特卡罗和动态规划算法的思想。

  1. 时序差分方法和蒙特卡罗的相似之处在于可以从样本数据中学习,不需要事先知道环境(由他们公式可知,不需要知道P(s’|s,a));
  2. 和动态规划的相似之处在于可以根据贝尔曼方程的思想,利用后续状态的价值估计来更新当前状态的价值估计。

时序差分(TD):
r t + γ V ( s t + 1 ) − V ( s t ) r_t+γV(s_{t+1})-V(s_t) rt+γV(st+1)V(st)

4. MC、DP、TD之间的关系。

右下角表示穷举法。

MC与TD的区别:

  1. TD可以在每一步后在线学习。
    MC 必须等到episode结束才能知道return。
  2. TD 可以从不完整的序列中学习。
    MC 只能从完整序列中学习。
  3. TD 在连续(非终止)环境中工作。
    MC 仅适用于 episodic(终止)环境。
  4. TD利用马尔可夫特性,在马尔可夫环境中更高效。
    MC 不利用马尔可夫特性,在非马尔可夫环境中更有效。

待续。。。强化学习TD的相关算法。

参考资料:
周博磊强化学习课程
张伟楠等动手学深度学习
强化学习相关代码:https://github.com/boyu-ai/Hands-on-RL

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

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

相关文章

【C】Function

系列连载 【python / C / C】 参考 《C语言程序设计&#xff08;第四版&#xff09;谭浩强》【C语言】C语言视频教程《郝斌 C 语言自学教程》 文章目录为什么需要函数什么叫函数如何定义函数函数的分类注意的问题常用的系统函数为什么需要函数 避免重复性操作 有利于程序模…

23种设计模式之建造者模式(黑马程序员)

建造者模式一、概述二、结构三、实现四、总结五、模式扩展在最后一、概述 将一个复杂对象的构建与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 分离了部件的构造&#xff08;由Build来负责&#xff09;和装配&#xff08;Director负责&#xff09;。从而可以…

Spring 的创建和使用

目录 一. 创建 Spring项目 二. 存储 Bean 对象到Spring中 1. 添加Spring配置文件 2. 创建一个 Bean 对象 3. 将 Bean 存储到 Spring 容器中 三. 从 Spring 中获取并使用 Bean 对象 1. 创建 Spring 上下文 1.1 使用 ApplicationContext 作为Spring上下文 1.2 使用 Bea…

ONLYOFFICE 邀请您一起创建插件

文档编辑器中的插件具有高度的便捷性和实用性&#xff0c;这对工作效率的提高至关重要&#xff0c;ONLYOFFICE 功能的强大也离不开丰富的插件资源。 现在&#xff0c;您可以自己制作插件并上架到 ONLYOFFICE&#xff0c;一起帮助广大用户更高效地办公&#xff0c;并获得相应的…

KDMP真实案例之主机 I/O 请求没有正常结束导致系统重启

目录 查看kdump文件 导致系统崩溃的寄存器指向的内存地址 导致重启的汇编指令 导致重启的源码 block/blk-core.c文件简介 导致重启的blk_finish_request函数源码 函数源码解读 系统重启原因 处理意见 查看kdump文件 各字段意思说明 KERNEL&#xff1a;显示内核文件的路…

你真的会用iPad吗,如何使iPad秒变生产力工具?在iPad上用vscode写代码搞开发

目录 前言 视频教程 1. 本地环境配置 2. 内网穿透 2.1 安装cpolar内网穿透(支持一键自动安装脚本) 2.2 创建HTTP隧道 3. 测试远程访问 4. 配置固定二级子域名 4.1 保留二级子域名 4.2 配置二级子域名 5. 测试使用固定二级子域名远程访问 6. iPad通过软件远程vscode…

通俗举例讲解动态链接】静态链接

参考动态链接 - 知乎 加上我自己的理解&#xff0c;比较好懂&#xff0c;但可能在细节方面有偏差,但总体是一致的 静态链接的背景 静态链接使得不同的程序开发者和部门能够相对独立的开发和测试自己的程序模块&#xff0c;从某种意义上来讲大大促进了程序开发的效率&#xf…

Mybatis【环境搭建】

目录 一、Maven 环境配置 1、配置 pom.xml 1.1、依赖的 jar包 1.2、防止资源导出失败 2、在resources下编写 Mybatis核心配置文件 二、搭建结构 1、编写mybatis工具类&#xff08;utils&#xff09; 2、编写实体类&#xff08;pojo&#xff09; 3、Mybatis 的实现&…

一篇搞定Lambda和Stream流

一、Lambda表达式 jdk8中的语法糖&#xff0c;优化某些匿名内部类的写法&#xff0c;函数式编程的重要体现&#xff0c;不再关注对象是什么&#xff0c;更关注数据进行了什么操作 1、练习 练习1 练习2 练习3 练习4 练习5 2、省略规则 参数类型可以省略方法体只有一句代码时…

【Leetcode】消失的数字 [C语言实现]

&#x1f47b;内容专栏&#xff1a;《Leetcode刷题专栏》 &#x1f428;本文概括&#xff1a; 面试17.04.消失的数字 &#x1f43c;本文作者&#xff1a;花 碟 &#x1f438;发布时间&#xff1a;2023.4.10 目录 思想1&#xff1a;先排序再查找 思想2&#xff1a;异或运算 代…

TensorFlow 图像深度学习实用指南:1~3 全

原文&#xff1a;Hands-On Deep Learning for Images with TensorFlow 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#xf…

移动版OpenAI,手机的杀手还是救星?

AI登陆手机&#xff0c;难度因人而异。 原本小编还以为「2023年是属于元宇宙的一年」&#xff0c;实在没想到以ChatGPT为代表的AI技术能在这么短的时间内抢走元宇宙的风头&#xff0c;成为2023年的技术关键词。从OpenAI到搜索引擎、从绘图工具到游戏公司&#xff0c;几乎所有「…

跨境电商的行业现状与发展趋势分析

随着互联网的不断发展&#xff0c;跨境电商作为一种全新的商业模式已经逐渐崭露头角。跨境电商的出现&#xff0c;让越来越多的商家看到了扩大市场的机会&#xff0c;也为消费者提供了更加便利、更加优质的购物体验。本文将从跨境电商的定义、行业现状、发展趋势等方面进行探讨…

windows下的wsl2如何进行docker数据卷挂载

这是数据卷挂载命令 docker run -it -v /宿主机绝对路径目录: /容器内目录 镜像名 在Linux中我们可以直接使用该命令进行挂载&#xff0c;那在windows如何把我们c盘d盘下的目录挂载到容器呢&#xff0c;其实只要在路径前面加上/mnt就好了&#xff0c;下面来演示一下 首先拉取一…

About RadaeePDF Classic SDK for iOS Crack

About RadaeePDF Classic SDK for iOS Crack RadaeePDF iOS版经典SDK可帮助您构建更好的移动应用程序。使用功能强大的PDF阅读器引擎及其一系列专业功能现在是一个快速而简单的过程。适用于iOS的RadaeePDF Classic SDK在智能手机、平板电脑、笔记本电脑、敞篷车和台式机上提供了…

运行时内存数据区之方法区(一)

方法区 栈、堆、方法区的交互关系 方法区的理解 oracle官网上的描述&#xff1a; 《Java虚拟机规范》中明确说明&#xff1a;“尽管所有的方法区在逻辑上是属于堆的一部分&#xff0c;但一些简单的实现可能不会选择去进行拉圾收集或者进行压缩。”但对于HotspotJVM而言&#x…

“影视级”直播呈现,保利威1号演播厅与企业共建行业直播新标准 | 爱分析调研

前言&#xff1a;3月22日&#xff0c;保利威举办了2023春季线上发布会&#xff0c;推出首个企业级直播基地——“1号演播厅”。会上重磅发布了《2023中国企业直播应用标准》并启动“企业直播运营官千英计划”&#xff0c;开启企业直播历史性新篇章。 01 企业直播迈入3.0阶段 …

AB91-1 HESG437479R1 HESG437899

AB91-1 HESG437479R1 HESG437899 以硅为基材的集成电路共有Si BJT(Si-Bipolar Junction Transistor)、Si CMOS、与结合Bipolar与CMOS 特性的Si BiCMOS(Si Bipolar Complementary Metal Oxide Semiconductor)等类。由于硅是当前半导体产业应用最为成熟的材料&#xff0c;因此&am…

Linux基础篇(四)打包和解压

目录 一、打包和压缩 二、zip 和 unzip 三、tar指令 一、打包和压缩 1.是什么&#xff1f; 打包&#xff1a;将东西放到一起。 压缩&#xff1a;采用某种压缩算法&#xff0c;压缩它的存储空间。 2.为什么&#xff1f; 便于传输&#xff0c;或者归档&a…

【pygame游戏开发】这几个经典游戏,勾起了少年的快乐

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 今天给大家分享几个好玩有趣的小游戏&#xff0c; 既提升了学习的兴趣&#xff0c;又提升了学习效率&#xff0c;告别枯燥的学习。 代码软件: python 3.8: 解释器 pycharm: 代码编辑器 一、飞机大战 1. 所需素材 …