马尔科夫决策过程(MDP)
聊一聊我对强化学习的理解
对应的代码请访问我的GitHub:fxyang-bupt(可能你进去之后发现什么都没有,那是因为我注册了新的账号还在整理,这并不影响你先follow一下我的GitHub~)
目前正在把我的文字内容和代码整理成网络书籍的方式发布出来,敬请期待…
我很想把它做成一套简单易懂的白话系列,奈何做这种事真的不简单。我参考了很多资料,比如:
《白话强化学习与PyTorch》
《深入浅出强化学习:原理与入门》
《强化学习入门:从原理到实践》
“莫烦Python”
博客园 “刘建平Pinard” 的博客
北大 “ShusenTang” 的GitHub
……
这是一门比较前言的理论,目前正在发光发热。我并不推荐大家一开始就阅读大部头的《Reinforcement Learning》这本书,假期我花了一个月的时间去啃,效果并不好。反而是这种“平易近人”的教程更适合入门。不过各种“平易近人”的教程都会充斥着笔者自己的理解,这种事容易陷入到自嗨的怪圈,笔者自认为自己举了一个特别通俗的例子,而读者却一头雾水。
所以我把我在学习和实践过程中遇到的困惑,又做了二次解读的加工。有了这个系列的文章,希望能够有所贡献。成为帮助你入门的N多资料的其中之一。
我的代码用的框架比较杂,PyTorch TensorFlow1 TensorFlow2……都有。有人会在意TensorFlow2出来以后,1不是被淘汰了,为什么还要用?
5G都出了多长时间了,你那个卡的要死的4G手机换了吗?企业也是一样的。所以还是得用…
希望毕业后我也能成为像 莫烦 和 Charlotte77 一样的知识分享者~这是自己的一个小兴趣
马尔可夫性
系统的下一个状态只与当前状态有关。
马尔可夫过程
是一个二元组(S,P)(S,P)(S,P),SSS是有限状态集合,PPP是状态转移概率
P=[P11⋯P1n⋮⋮Pn1⋯Pnn]P=\begin{bmatrix}P_{11} &\cdots&P_{1n}\\ \vdots&&\vdots\\P_{n1}&\cdots&P_{nn}\end{bmatrix}P=⎣⎢⎡P11⋮Pn1⋯⋯P1n⋮Pnn⎦⎥⎤
如一个学生的状态S=娱乐,课程1,课程2,课程3,考过,睡觉,论文S={娱乐,课程1,课程2,课程3,考过,睡觉,论文}S=娱乐,课程1,课程2,课程3,考过,睡觉,论文。各状态的概率转移概率为:
学生从课程1开始,一天状态的可能序列为:课1-课2-课3-考过-睡觉。这种状态序列称为马尔科夫链。
马尔可夫决策过程
对于强化学习问题,马尔可夫过程不足以描述其特点,因为在它里面不存在动作和奖励。将动作(策略)和奖励考虑在内的马尔可夫过程称为马尔可夫决策过程。
由元组(S,A,P,R,γ)(S,A,P,R,\gamma)(S,A,P,R,γ)描述,其中:SSS为有限的状态集,AAA为有限的动作集,PPP为状态转移概率,RRR为回报函数,γ\gammaγ为折扣因子。
与马尔可夫过程不同,状态转移概率是包含动作的,Pss′a=P[St+1=s′∣St=s,At=a]P_{ss'}^a=P[S_{t+1}=s'|S_t=s,A_t=a]Pss′a=P[St+1=s′∣St=s,At=a]。
对策略π\piπ也做了马尔可夫性假设,在状态sss时采取动作aaa的概率只与当前状态sss有关。
π(a∣s)=P(At=a∣St=s)\pi(a|s)=P(A_t=a|S_t=s)π(a∣s)=P(At=a∣St=s)
此外还有价值函数也一样,vπ(s)v_\pi(s)vπ(s)仅仅依赖于当前的状态,
vπ(s)=Eπ(Gt∣St=s)=Eπ(Rt+1+γRt+2+γ2Rt+3+...∣St=s)v_\pi(s)=E_\pi(G_t|S_t=s)=E_\pi(R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+...|S_t=s)vπ(s)=Eπ(Gt∣St=s)=Eπ(Rt+1+γRt+2+γ2Rt+3+...∣St=s)
马尔科夫决策过程(MDP)相关推荐
- 强化学习note1——马尔科夫奖励过程MRP和马尔科夫决策过程MDP各个函数的定义与区别
马尔科夫奖励过程MRP 状态转移函数:P(St+1=s′∣st=s)P\left(S_{t+1}=s^{\prime} \mid s_{t}=s\right)P(St+1=s′∣st=s) 奖励函 ...
- 强化学习(二)马尔科夫决策过程(MDP)
在强化学习(一)模型基础中,我们讲到了强化学习模型的8个基本要素.但是仅凭这些要素还是无法使用强化学习来帮助我们解决问题的, 在讲到模型训练前,模型的简化也很重要,这一篇主要就是讲如何利用马尔科夫决策 ...
- 强化学习——马尔科夫决策过程 MDP
马尔可夫决策过程是强化学习里面的一个基本框架. 马尔可夫过程.马尔可夫反馈过程是马尔可夫决策过程的基础,所以本博客将会一并介绍. 文章目录 1. 马尔科夫过程 Markov Process,MP 1. ...
- 强化学习——day13 马尔科夫决策过程MDP
马尔科夫决策过程 简介 马尔可夫过程 随机过程 马尔可夫性质 马尔可夫过程 马尔可夫奖励过程 回报 价值函数 马尔可夫决策过程 策略 状态价值函数 动作价值函数 贝尔曼期望方程 蒙特卡洛方法 占用度量 ...
- 强化学习 马尔科夫决策过程(MDP)
1. 强化学习引入MDP的原因 强化学习的环境的状态转化模型,它可以表示为一个概率模型,即在状态下采取动作a,转到下一个状态s′的概率,表示为 如果按照真实的环境转化过程看,转化到下一个状态s′的概率 ...
- 强化学习——day11 马尔科夫决策过程MDP
第 3 章 马尔可夫决策过程 3.1 简介 马尔可夫决策过程(Markov decision process,MDP)是强化学习的重要概念.要学好强化学习,我们首先要掌握马尔可夫决策过程的基础知识.前 ...
- 【强化学习入门】马尔科夫决策过程
本文介绍了马尔可夫决策过程,首先给出了马尔可夫决策过程的定义形式 ,其核心是在时序上的各种状态下如何选择最优决策得到最大回报的决策序列,通过贝尔曼方程得到累积回报函数:然后介绍两种基本的求解最优决策的 ...
- 强化学习课程笔记(二)——马尔科夫决策过程和动态规划寻找最优策略
参考材料 1.强化学习入门课程(英文)https://www.bilibili.com/video/av37295048 2.课程对应知乎讲解https://zhuanlan.zhihu.com/re ...
- 马尔科夫决策过程(MDP)五大元素
文章目录 什么是马尔科夫决策过程(Markove Decision Progress, MDP)? MDP五大元素 什么是决策规则(Decision Rules,DR) 什么是策略 什么是马尔科夫决策 ...
最新文章
- SVR4/4.3BSD与Linux对待伪终端的不同方式
- SAP BC417 课程中文自学笔记
- java 读取split_Java报错系列——split
- 什么是java枚举_什么是java枚举
- (26)Verilog HDL循环语句:repeat
- 图片上传至服务器实现压缩
- pulse 去马赛克软件_打马赛克就安全了吗?AI消除马赛克,上线三天收获近7000星...
- 修改linux kernel参数 semopm
- matplotlib -plt.rcparams.update
- Python基于cq-http协议端,使用nonebot2框架制作属于自己的智能机器人
- 二、8086汇编命令大全
- 国内服务器带宽价格是多少?国内服务器带宽为什么贵?
- 《Adobe Premiere Pro CS6中文版经典教程》——1.3 扩展工作流
- springCloud-day04
- table标签的不规则布局
- Windows下使用pip安装模块发生“failed with error code 1”的解决方法
- 2023年系统集成项目管理工程师通关攻略
- 淘宝tmall,1688,京东,拼多多等平台以图搜索商品接口采集方法
- 我究竟为了什么而活着
- 镜像安全扫描建设指南-用户篇
热门文章
- 抓包工具Charles(青花瓷)使用教程
- 查找 - 计算式查找法 - 哈希法
- KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020
- 一路踩坑构建Dubbo源码
- Linux串口打印信息工具,基于Qt实现Linux或Windows串口打印工具
- webservice学习01:wsdl文档结构
- Module build failed: ReferenceError: Unknown plugin module-resolver specified
- Linear Regression Using Least Squares Method 代码实现
- 数据结构系列(四)栈与队列
- Openstack平台搭建之第二天