深入理解强化学习——马尔可夫决策过程:马尔可夫过程和马尔科夫链

分类目录:《深入理解强化学习》总目录


马尔可夫过程是一组具有马尔可夫性质的随机变量序列 S 1 , S 2 , ⋯ , S t S_1, S_2, \cdots, S_t S1,S2,,St,其中下一个时刻的状态 S t + 1 S_{t+1} St+1只取决于当前状态 S t S_t St 。我们设状态的历史为 h t = { S 1 , S 2 , ⋯ , S t } h_t=\{S_1, S_2, \cdots, S_t\} ht={S1,S2,,St} h t h_t ht包含了之前的所有状态),则马尔可夫过程满足条件:
p ( S t + 1 ∣ S t ) = p ( S t + 1 ∣ S 1 , S 2 , ⋯ , S t ) = p ( S t + 1 ∣ h t ) p(S_{t+1}|S_t)=p(S_{t+1}|S_1, S_2, \cdots, S_t)=p(S_{t+1}|h_t) p(St+1St)=p(St+1S1,S2,,St)=p(St+1ht)

从当前 S t S_t St 转移到 S t + 1 S_{t+1} St+1 ,它是直接就等于它之前所有的状态转移到 S t + 1 S_{t+1} St+1

离散时间的马尔可夫过程也称为马尔可夫链(Markov Chain)。马尔可夫链是最简单的马尔可夫过程,其状态是有限的。例如,下图里面有4个状态,这4个状态在 s 1 , s 2 , s 3 , s 4 s_1, s_2, s_3, s_4 s1,s2,s3,s4之间互相转移。比如从 s 1 s_1 s1开始, s 1 s_1 s1有0.1的概率继续存留在 s 1 s_1 s1状态,有0.2的概率转移到 s 2 s_2 s2,有0.7的概率转移到 s 4 s_4 s4。如果 s 4 s_4 s4是我们的当前状态,它有0.3的概率转移到 s 2 s_2 s2,有0.2的概率转移到 s 3 s_3 s3,有0.5的概率留在当前状态。
马尔可夫过程
我们通常用元组 ( S , P ) (S, P) (S,P)描述一个马尔可夫过程,其中是 S S S有限数量的状态集合, P P P是状态转移矩阵(State Transition Matrix)。假设一共有 n n n个状态,此时。状态转移矩阵定义了所有状态对之间的转移概率,即:
P = [ p ( s 1 ∣ s 1 ) ⋯ p ( s n ∣ s 1 ) ⋮ ⋱ ⋮ p ( s 1 ∣ s n ) ⋯ p ( s n ∣ s n ) ] P=\left[\begin{array}{c} p(s_1|s_1) & \cdots &p(s_n|s_1) \\ \vdots & \ddots & \vdots\\ p(s_1|s_n) &\cdots &p(s_n|s_n) \end{array}\right] P= p(s1s1)p(s1sn)p(sns1)p(snsn)

矩阵 P P P中第 i i i行第 j j j列元素 p ( s i ∣ s j ) = p ( S t + 1 = s j ∣ S t = s j ) p(s_i|s_j)=p(S_{t+1}=s_j|S_t=s_j) p(sisj)=p(St+1=sjSt=sj)表示从状态 s i s_i si转移到状态 s j s_j sj的概率,我们称 P ( s ′ ∣ s ) P(s'|s) P(ss)为状态转移函数。从某个状态出发,到达其他状态的概率和必须为1,即状态转移矩阵的每一行的和为1。状态转移矩阵类似于条件概率(Conditional Probability),它表示当我们知道当前我们在状态 s t s_t st时,到达下面所有状态的概率。所以它的每一行描述的是从一个节点到达所有其他节点的概率。

给定一个马尔可夫过程,我们就可以从某个状态出发,根据它的状态转移矩阵生成一个状态序列(Episode),这个步骤也被叫做采样(sampling),生成这些序列的概率和状态转移矩阵有关。

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022

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

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

相关文章

计算机毕业设计 基于SpringBoot的在线考试系统的研究与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

伦敦金冬令时开市时间怎样调整

在刚刚过去的一周,欧美的金融市场已经正式进入了冬令时,这对伦敦金市场的交易时间也产生了影响。由于美国于今年11月5日(星期日)开始正式实施冬令时间,所以香港的伦敦金平台的交易时间也随之而有所调整。 从今年11月6日开始&#…

二十七、W5100S/W5500+RP2040树莓派Pico<iperf 测速示例>

文章目录 1 前言2 简介2 .1 什么是网络测速技术?2.2 网络测速技术的优点2.3 网络测速技术数据交互原理2.4 网络测速应用场景 3 WIZnet以太网芯片4 示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链接 1 前言…

[Android]新建项目使用AppCompatActivity后运行闪退

报错 日志: Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. FATAL EXCEPTION: main Process: com.example.gatestdemol, PID: 26071 java.lang.RuntimeException: Unable to start a…

《QT从基础到进阶·二十三》弹窗提示框QMessageBox和QCloseEvent事件

1、正常信息提示 QMessageBox::information(NULL, "Title", "Content", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);消息框按钮判断: if(QMessageBox::Ok QMessageBox::warning(this,"温馨提示","是否保存设置?…

ACM练习——第二天

今天又是一天课,满课,很累哈,计组真的挺难的,但是多学学还是可以学明白。行吧,继续进入今天的ACM练习,现阶段都是主要练习Java到C的语言过渡。 因为今天的题目多半都是昨天的延伸,我就不提供Jav…

Leetcode—4.寻找两个正序数组的中位数【困难】

2023每日刷题(二十九) Leetcode—4.寻找两个正序数组的中位数 直接法实现代码 int mid, mid1, mid2; bool findmid(int n, int k, int x) {if(n % 2 1) {if(k n / 2) {mid x;return true;}} else {if(k n / 2 - 1) {mid1 x;} else if(k n / 2) {…

【Linux】Ubuntu16.04系统查看已安装的python版本,及其配置

前情提示:我已经在Ubuntu16.04里用源码安装了python3.8.11,Ubuntu16.04系统默认安装2.7.12与3.5.2 1.查看已安装版本 python2 --version #查看python2安装版本 python3 --version #查看python3安装版本 python3.5 --version #查看python3.5安装…

【C++】:STL——标准模板库介绍 || string类

📚1.什么是STL STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库,而且 是一个包罗数据结构与算法的软件框架 📚2.STL的版本 原始版本 Alexander Stepanov、Meng Lee 在…

基于 Redis 实现的分布式锁

获取锁 互斥:确保只有一个线程获得锁 # 添加锁 利用setnx的互斥性 127.0.0.1:6379> setnx lock thread1释放锁 手动释放锁 超时释放:获取锁时设置一个超时时间 #释放锁 删除即可 127.0.0.1:6379> del lock两步合成一步 help setSET key value …

hive里因为列名用了关键字导致建表失败

代码 现象 ParseException line 6:4 cannot recognize input near percent String COMMENT in column name or primary key or foreign key 23/11/13 11:52:57 ERROR org.apache.hadoop.hive.ql.Driver: FAILED: ParseException line 6:4 cannot recognize input near percent …

Linux C 进程编程

进程编程 进程介绍进程的定义进程和线程以及程序的区别进程块PCB进程的状态相关指令 进程调度算法先来先服务调度算法 FCFS短作业(进程)优先调度算法 SJF优先权调度算法 FPF优先权调度算法的类型非抢占式优先权算法抢占式优先权算法 优先权类型静态优先权动态优先权 高响应比优…