如何理解马尔可夫决策过程?

如何理解马尔可夫决策过程?1 引言马尔可夫性 无后效性 指系统的下个状态只与当前状态信息有关 而与更早之前的状态无关 马尔可夫链 MarkovChain MC 系统的下一个状态只与当前状态相关 马尔可夫决策过程 MarkovDecisi MDP 具有马尔可夫性 与 MC 不同的是 MDP 还考虑了动作 即系统下个状态不仅和当前的状态有关 也和当前采取的动作有关 以下棋为例 我们在某个局面 状态 sis isi 走了一步 动作 aia iai 这时对手的选择 导致下个状态 si 1s i 1 si 1

1 引言

2 马尔可夫决策过程

  • S = { s 1 , s 2 , … , s k } S = \{s_1, s_2, \dots, s_k\} S={
    s1,s2,,sk}
    :状态集(states), s i s_i si表示第 i i i步的状态;
  • A = { a 1 , a 2 , … , a k } A = \{a_1, a_2, \dots, a_k\} A={
    a1,a2,,ak}
    :一组动作(actions), a i a_i ai表示第 i i i步的动作;
  • P s a P_{sa} Psa:状态转移概率,当前 s i ∈ S s_i \in S siS状态下,经过 a i ∈ A a_i \in A aiA作用后,会转移到的其它状态的概率分布情况,例如比如,在状态 s i ∈ S s_i \in S siS下执行动作 a i ∈ A a_i \in A aiA,转移到 s i + 1 ∈ S s_{i+1} \in S si+1S的概率可以表示为 p ( s i + 1 ∣ s i , a i ) p(s_{i+1} \vert s_i, a_i) p(si+1si,ai);
  • R : S × A ↦ R R: S \times A \mapsto \mathbb{R} R:S×AR:回报函数(reward function),如果回报只与状态有关,可以简化为 R : S ↦ R R: S \mapsto \mathbb{R} R:SR。如果一组 ( s i , a i ) (s_{i},a_i) (si,ai)转移到了下个状态 s i + 1 s_{i+1} si+1,那么回报函数可记为 r ( s i + 1 ∣ s i , a i ) r(s_{i+1}|s_i, a_i) r(si+1si,ai)。如果 ( s i , a i ) (s_i,a_i) (si,ai)对应的下个状态 s i + 1 s_{i+1} si+1是唯一的,那么回报函数也可以记为 r ( s i , a i ) r(s_i,a_i) r(si,ai)

MDP 的动态过程如下:

  • 智能体(agent)的初始状态为 s 0 s_0 s0;
  • A A A 中挑选一个动作 a 0 a_0 a0执行,执行后,agent 按 P s a P_{sa} Psa概率随机转移到了下一个 s 1 s_1 s1状态, s 1 ∈ P s 0 a 0 s_1 \in P_{s_0a_0} s1Ps0a0
  • 然后再执行一个动作 a 1 a_1 a1,就转移到了 s 2 s_2 s2,接下来再执行 a 2 a_2 a2,…;
  • 可以用下面的图表示状态转移的过程:

在这里插入图片描述
如果回报 r i r_i ri是根据状态 s i s_i si和动作 a i a_i ai得到的,则MDP可以如图表示:
在这里插入图片描述

3 值函数(value function)

增强学习学到的是一个从环境状态到动作的映射(即行为策略),记为策略 π : S → A π: S→A π:SA。而增强学习往往又具有延迟回报的特点: 如果在第 n n n步输掉了棋,那么只有状态 s n s_n sn和动作 a n a_n an获得了立即回报 r ( s n , a n ) = − 1 r(s_n,a_n)=-1 r(sn,an)=1,前面的所有状态立即回报均为0。所以对于之前的任意状态 s s s和动作 a a a,立即回报函数 r ( s , a ) r(s,a) r(s,a)无法说明策略的好坏。因而需要定义值函数(value function,又叫效用函数)来表明当前状态下策略 π π π的长期影响。

  • V π ( s ) V^π(s) Vπ(s):策略 π π π下,状态 s s s的值函数;
  • r i r_i ri:未来第 i i i步的立即回报。

V π ( s ) = lim ⁡ h → ∞ E π [ 1 h ∑ i = 0 h r i ∣ s 0 = s ] (3) V^π(s) = \lim_{h \rightarrow \infty}E_{\pi}\left[\frac{1}{h}\sum_{i=0}^{h} r_i \vert s_0 = s \right] \tag3 Vπ(s)=hlimEπ[h1i=0hris0=s](3)

V π ( s ) = E π [ ∑ i = 0 ∞ γ i r i ∣ s 0 = s ] (4) V^π(s) = E_{\pi}\left[\sum_{i=0}^{\infty} \gamma^{i} r_i \vert s_0 = s \right] \tag4 Vπ(s)=Eπ[i=0γiris0=s](4)
其中:
a) 是采用策略π的情况下未来有限h步的期望立即回报总和;
b) 是采用策略π的情况下期望的平均回报;
c) 是值函数最常见的形式,式中 γ ∈ [ 0 , 1 ] γ∈[0,1] γ[0,1]称为折合因子,表明了未来的回报相对于当前回报的重要程度。特别的, γ = 0 γ=0 γ=0时,相当于只考虑立即不考虑长期回报, γ = 1 γ=1 γ=1时,将长期回报和立即回报看得同等重要。



4 策略

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5 对2048游戏的建模

s 1 s_1 s1: 初始化状态,随机产生的棋盘;
a 1 a_1 a1:用户连接相同的数字后,系统为棋盘分配新数字的动作;
s 2 s_2 s2:用户选择如何连线后导致的下一个棋盘,该棋盘依然有空缺,需要填充新数字;
p ( s 2 ∣ s 1 , a 1 ) p(s_{2} \vert s_1, a_1) p(s2s1,a1):经过 a 1 a_1 a1操作后状态从 s 1 s_1 s1 s 2 s_2 s2的概率,这个我觉得可以通过统计得到;
奖励函数:是设计的难点
如何进行训练:也是一个难点




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/232069.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centos caffe2安装

    centos caffe2安装1 下载 caffe2 源码包 https github com caffe2 caffe22 安装过程请参照 https caffe2 ai docs getting started html platform centos amp configuratio cloud3 编译过程中需要的 cmake 指令和生成的 makefile 中添加的路径在 我的资源 中 相应的环境变

    2025年11月25日
    5
  • 在 Win10 系统下安装 JDK 及配置环境变量的方法

    在 Win10 系统下安装 JDK 及配置环境变量的方法首先,在官网下载JDK:Oracle官网如上图所示,在Oracle官网下载JDK,但有一点需要注意,那就是在咱们下载合适的JDK之前,需要先点击“标记1”所在的按钮,选择接受。否则的话,直接点击JDK进行下载的时候,会弹出出现界面:选择接受“AcceptLicenseAgreement”之后,再点击JDK进行下载就会弹出下载提示框了,如下图所示:下载完成后,双击可执行文件,

    2022年7月24日
    7
  • 分数相加[通俗易懂]

    分数相加[通俗易懂]本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。输入格式:输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1

    2022年8月5日
    7
  • Mac 开启apache PHP

    Mac 开启apache PHP命令行:开启apache服务:sudoapachectlstart停止apache服务:sudoapachectlstop重启服务:sudoapachectlrestart查看版本:httpd-v开启之后打开浏览器输入:localhost,看到Itworks!说明服务正常开启!命令行打开系统隐藏目录:open/etc/apache21.httpd

    2022年7月12日
    26
  • 计算机组成原理期末总结「建议收藏」

    文章目录写在前面计算机系统概论知识点习题运算方法和运算器知识点习题写在前面临近期末,总结了下知识点,供个人复习使用,仅供参考(近期不间断更新)。计算机系统概论知识点1.时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。2.主频(时钟频率):每秒钟含有多少个时钟周期(1.2GHz即每秒钟含有1.2×10^9个时钟周期)。3.CPI:一条指令所需要的时钟周期个数。4.MIPS:每秒钟能执行多少个100万条指令。5.MFLOPS:每秒百万次浮点操作次

    2022年4月12日
    55
  • synchronized 和Lock区别

    synchronized 和Lock区别区别如下 来源 lock 是一个接口 而 synchronized 是 java 的一个关键字 synchronized 是内置的语言实现 异常是否释放锁 synchronized 在发生异常时候会自动释放占有的锁 因此不会出现死锁 而 lock 发生异常时候 不会主动释放占有的锁 必须手动 unlock 来释放锁 可能引起死锁的发生 所以最好将同步代码块用 trycatch 包起来 finall

    2025年10月24日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号