【详解+推导!!】马尔可夫决策过程

【详解+推导!!】马尔可夫决策过程马尔可夫决策过程 MarkovDecisi MDP 文章目录一 为什么需要马尔可夫决策过程 二 马尔可夫决策过程 1 马尔可夫性 2 随机过程 3 马尔可夫过程 4 马尔可夫决策过程三 策略与累计回报 1 策略 2 累计回报四 值函数 1 值函数 2 状态值函数 与 状态 行为值函数 五 什么是强化学习算法 一 为什么需要马尔可夫决策过程 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img YTGUytIs 43 2021 0

马尔可夫决策过程, Markov Decision Process, MDP

一、为什么需要马尔可夫决策过程?

在这里插入图片描述
上图所展示的是强化学习的基本框架,描述的是智能体(Agent)与环境(Environment)交互的过程,在训练过程中,大致过程如下:

  1. 智能体会根据当前的环境状态S(state)做出决策,决定接下来采取动作A(action);
  2. 环境会根据智能体的动作A给予反馈R(或者说奖励Reward),并且由于该动作的产生,由状态S转换到S‘;
  3. 智能体在与环境不断的交互过程中产生大量的S、A、R的数据,以实际任务目标为导向,基于这些数据强化学习算法可以让智能体做出更正确的决策,也就是学习出了策略。

马尔可夫决策过程就是通过数学方式描述上述的过程,是强化学习的基础和核心。

二、马尔可夫决策过程

1. 马尔可夫性

  • 马尔可夫性是指系统的下一个状态 S t + 1 S_{t+1} St+1仅与当前状态 S t S_t St有关,而与之前的状态无关;
  • 马尔可夫性描述的是每一个状态的性质;
  • 可以这样理解, S t S_t St包含了之前全部状态 S 1 S_1 S1 S 2 S_2 S2,…, S t − 1 S_{t-1} St1的全部信息,只要知道 S t S_t St,之前的历史信息就可以抛弃了;

2. 随机过程

  • 在使用中重要的是如何描述一个状态序列;
  • 而数学中用来描述随机变量序列的方式就是随机过程
  • 如果这个随机过程中的每个状态都是符合马尔可夫性的,那么则称这个随机过程为马尔可夫随机过程

3. 马尔可夫过程

  • 马尔可夫过程定义为: ( S , P ) (S,P) (S,P)
  • 其中 S S S是有限状态集, P P P是状态转移概率(是一个矩阵,描述了 S S S中每一种状态到领一种状态的转移概率);
  • 下图展示了一名学生的7种状态,以及每种状态之间的转换概率:在这里插入图片描述
  • 所以某一名同学一天的状态可能为“课1-课2-课3-考过-睡觉”,这样一组状态序列可以称为马尔科夫链
  • 由此也可以看出,从一个状态出发,我们选择不同的动作,可以产生多组马尔可夫链。

4. 马尔可夫决策过程

  • 在马尔可夫过程的基础上加上动作和反馈就是马尔可夫决策过程;
  • 马尔可夫决策过程定义为: ( S , A , P , R , γ ) (S, A, P, R, \gamma) (S,A,P,R,γ);
  • S S S为有限状态集; A A A为有限动作集; P P P为状态转移概率; R R R为回报函数; γ \gamma γ为折扣因子(用来计算累积回报);

三、策略与累计回报

1. 策略

  • 强化学习的目标就是给定一个马尔可夫决策过程,去寻找最优的策略;
  • 我们可以把策略理解为在状态 s s s下选择某一个动作 a a a的概率;
  • 策略通常用符号 π \pi π来表示;
  • 数学形式表示为: π ( a ∣ s ) = p [ A t = a ∣ S t = s ] \pi(a | s) = p[A_t=a | S_t=s] π(as)=p[At=aSt=s]
  • 含义为:策略 π \pi π在每个状态 s s s指定一个每个动作 a a a的发生概率;
  • 如果策略 π \pi π是确定的,那么策略 π \pi π在每个状态下的每个动作的概率都是确定的。

2. 累计回报

  • 已知马尔可夫决策过程 ( S , A , P , R , γ ) (S, A, P, R, \gamma) (S,A,P,R,γ),我们可以设定各种各样的策略 π \pi π,而强化学习的目标就是从众多的策略中选择回报最大的策略,为了评价每种策略 π \pi π的回报值,定义了累计回报
  • 给定策略 π \pi π,从状态 s 1 s_1 s1出发可能产生若干马尔可夫链,如:“ s 1 − s 2 − s 3 − s 4 − s 5 s_1 – s_2 – s_3 -s_4 – s_5 s1s2s3s4s5”,或者“ s 1 − s 2 − s 3 − s 5 s_1 – s_2 – s_3 – s_5 s1s2s3s5”,针对某一条确定的马尔可夫链,我们可以计算该链的累计回报:
    G 1 = R t + 1 + γ R t + 2 + γ 2 R t + 3 = ∑ k = 0 ∞ γ k R t + k + 1 G_1 = R_{t+1} + \gamma R_{t+2} + {\gamma}^2R_{t+3} = \sum_{k=0}^\infty \gamma^kR_{t+k+1} G1=Rt+1+γRt+2+γ2Rt+3=k=0γkRt+k+1
  • 但是由于策略 π \pi π具有随机性,所以对于某一个状态 s s s我们可以画出无限多条马尔可夫链,也就可以计算出无限多个累计回报 G 1 G_1 G1
  • 为了评价某一个状态 s s s的回报价值,我们将状态 s s s累计回报的期望作为评价指标,称为值函数

四、值函数

1. 值函数

  • 当智能体针对一个已知的马尔科夫决策过程,采用了策略 π \pi π,那么将累积回报在状态 s s s处的期望值定义为“状态-值函数”:
    ν ( s ) = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s ] = E π [ R t + 1 + γ ν ( S t + 1 ) ∣ S t = s ] (1) \begin{aligned} \nu(s) &= E_\pi \left[ \sum_{k=0}^\infty \gamma^kR_{t+k+1} | S_t=s \right] \\ &= E_\pi \left[ R_{t+1} + \gamma \nu(S_{t+1}) | S_t=s \right] \tag{1} \end{aligned} ν(s)=Eπ[k=0γkRt+k+1St=s]=Eπ[Rt+1+γν(St+1)St=s](1)
  • 将累计回报在状态 s s s处采取了行为 a a a的期望定义为“状态-行为值函数”:
    q π ( s , a ) = E π [ ∑ k = 0 ∞ γ k R t + k + 1 ∣ S t = s , A t = a ] = E π [ R t + 1 + γ ν ( S t + 1 ) ∣ S t = s , A t = a ] (2) \begin{aligned} q_\pi(s,a) &= E_\pi \left[ \sum_{k=0}^\infty \gamma^kR_{t+k+1} | S_t=s, A_t=a \right] \\ &= E_\pi \left[ R_{t+1} + \gamma \nu(S_{t+1}) | S_t=s, A_t=a\right] \tag{2} \end{aligned} qπ(s,a)=Eπ[k=0γkRt+k+1St=s,At=a]=Eπ[Rt+1+γν(St+1)St=s,At=a](2)

2. “状态值函数”与“状态-行为值函数”

在这里插入图片描述

  • 二者关系的推导:
    • 如图2.5B所示, s s s处的状态值函数等于策略 π \pi π在状态 s s s下,选择每一种行为 a a a的概率 π ( a ∣ s ) \pi(a|s) π(as) ( s , a ) (s,a) (s,a)处的状态-行为值函数 q π ( s , a ) q_\pi(s,a) qπ(s,a)的乘积的累加,数学形式如下:
      ν π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) (3) \nu_\pi(s) = \sum_{a\in A} \pi(a|s) q_\pi(s,a) \tag{3} νπ(s)=aAπ(as)qπ(s,a)(3)
    • 如图2.5C所示, ( s , a ) (s,a) (s,a)处的状态-行为值函数,等于该处的反馈 R s a R_s^a Rsa加上,折扣因子乘以,每种状态 s ′ s’ s的概率 P s s ′ a P_{ss’}^a Pssa乘上状态 s ′ s’ s处的状态值函数 ν π ( s ′ ) \nu_\pi(s’) νπ(s)的累加,数学形式如下:
      q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a ν π ( s ′ ) (4) q_\pi(s,a) = R_s^a + \gamma\sum_{s’ \in S}P_{ss’}^a\nu_\pi(s’) \tag{4} qπ(s,a)=Rsa+γsSPssaνπ(s)(4)
  • 公式(1)的推导:
    • 将公式(4)带入公式(3)得到:
      ν π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a ν π ( s ′ ) ) \nu_\pi(s) = \sum_{a\in A} \pi(a|s) \left( R_s^a + \gamma\sum_{s’ \in S}P_{ss’}^a\nu_\pi(s’) \right) νπ(s)=aAπ(as)(Rsa+γsSPssaνπ(s))
  • 公式(2)的推导:
    在这里插入图片描述
    • 如上图C所示,将 S = s ′ S=s’ S=s带入公式(3)可得:
      ν π ( s ′ ) = ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) (5) \nu_\pi(s’) = \sum_{a’\in A} \pi(a’|s’) q_\pi(s’,a’) \tag{5} νπ(s)=aAπ(as)qπ(s,a)(5)
    • 将公式(5)带入公式(4)可得:
      q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a ∑ a ′ ∈ A π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) q_\pi(s,a) = R_s^a + \gamma\sum_{s’ \in S}P_{ss’}^a\sum_{a’\in A} \pi(a’|s’) q_\pi(s’, a’) qπ(s,a)=Rsa+γsSPssaaAπ(as)qπ(s,a)


  • 举个例子
    在这里插入图片描述
    • 如上图所示, s 4 s_4 s4的状态值函数 ν ( s 4 ) = 7.4 \nu(s_4)=7.4 ν(s4)=7.4计算过程如下:
      ν ( s 4 ) = 0.5 ∗ 10 + 0.5 ∗ ( 1 + 0.2 ∗ ( − 1.3 ) + 0.4 ∗ ( 2.7 ) + 0.4 ∗ 7.4 ) = 7.39 ≈ 7.4 \begin{aligned} \nu(s_4) &= 0.5*10 + 0.5*(1+0.2*(-1.3)+0.4*(2.7)+0.4*7.4) \\ &= 7.39\approx7.4 \end{aligned} ν(s4)=0.510+0.5(1+0.2(1.3)+0.4(2.7)+0.47.4)=7.397.4


五、什么是强化学习算法?

  • 定义一个离散时间、有限范围内的折扣马尔科夫决策过程: M = ( S , A , P , r , ρ 0 , γ , T ) M=(S, A, P, r, \rho_0, \gamma, T) M=(S,A,P,r,ρ0,γ,T),其中 r r r为立即回报函数, ρ 0 \rho_0 ρ0为初始状态分布, T T T为水平范围(步数限制,正因此如此叫做折扣);
  • 定义 τ \tau τ为一个轨迹序列, τ = ( s 0 , a 0 , s 1 , a 1 , . . . ) \tau = (s_0, a_0, s_1, a_1, …) τ=(s0,a0,s1,a1,...)
  • τ \tau τ的累计回报为 R = ∑ t = 0 T γ t r t R=\sum_{t=0}T\gamma^tr_t R=t=0Tγtrt
  • 而强化学习算法的目标就是找到一个策略 π \pi π,最大化累计回报,也就是:
    π = arg max ⁡ π ∫ R ( τ ) p π ( τ ) d τ \pi = \argmax_\pi \int {R(\tau)p_\pi(\tau)} d\tau π=πargmaxR(τ)pπ(τ)dτ
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月20日 上午7:53
下一篇 2026年3月20日 上午7:53


相关推荐

  • CyberChef 如何轻松解密char型字符串(char型恶意脚本反混淆)

    CyberChef 如何轻松解密char型字符串(char型恶意脚本反混淆)CyberChef 如何轻松解密 char 型字符串

    2026年3月17日
    1
  • Pytorch优化器全总结(一)SGD、ASGD、Rprop、Adagrad

    Pytorch优化器全总结(一)SGD、ASGD、Rprop、Adagrad这是一个系列 以 Pytorch 为例 介绍所有主流的优化器 如果都搞明白了 对优化器算法的掌握也就差不多了 作为系列的第一篇文章 本文介绍 Pytorch 中的 SGD ASGD Rprop Adagrad 其中主要介绍 SGD 和 Adagrad 因为这四个优化器出现的比较早 都存在一些硬伤 而作为现在主流优化器的基础又跳不过 所以作为开端吧

    2026年3月18日
    3
  • mos管基本开关电路_380v三根火线各是多少v

    mos管基本开关电路_380v三根火线各是多少vMOS管主要是由Metal(金属)、Oxide(氧化物)、Semiconductor(半导体)通过特殊工艺制成和三极管(电流控制电流型器件)相比,MOS管(电压控制电流型器件)具有栅极驱动基本不需要电流,损耗小、噪声低、抗辐射能力强、输入阻抗高、结构简单、便于集成和热稳定性好等优点MOSFET可以被制造成P沟道和N沟道两大类,每一类又分为增强型或者耗尽型,所以MOSFET有四种:N沟道增强型MOSFET、N沟道耗尽型MOSFET、P沟道增强型MOSFET、P沟道耗尽型MOSFET

    2026年1月31日
    6
  • 前端架构分析

    前端架构分析前端架构分析前端的价值到底在哪里实现界面交互提升用户体验总结就是能写交互页面 写的交互页面用户用的爽前端的进阶前端不局限于前端 当然优先前端技术需要如何进阶 性能优化 推荐阅读掘金文章 移动 web 性能优化从入门到进阶 首先是如何发现问题 发现问题之后 是如何分析其中原因找到原因之后 采用的解决办法 解决之后 是否真实的对用户体验有所提升 对框架的理解流行框架的 API 调用是最基本的要求 理解框架原理 理解思想可以让你在前端的路上走的更远 以 vue 为例 Vue 中的

    2026年3月17日
    2
  • python安装步骤(pycharm运行python)

    文章目录一。pycharm下载安装二。python下载安装三.pycharm上配置python一。pycharm下载安装pycharm下载地址:http://www.jetbrains.com/pycharm/download/#section=windows下载详细步骤:1-2-3-4-5-67-8-直接finish二。python下载安装9-python官网:https://www.python.org/进去网址后点击:1011-下载好后12

    2022年4月10日
    159
  • pycharm中文版怎么配置python环境_python怎么加编译器

    pycharm中文版怎么配置python环境_python怎么加编译器python环境配置:1.系统自带的python.exe或者自己下载的2.下载anaconda自带的python.exepycharm中如何使用环境:选择File->setting->PythonInterpreter->点右边的设置标志Add->然后可以选择虚拟环境,这个是选择系统自带的python.exe或者选择Conda环境,有新建环境和已存在的环境,点新建环境可以直接处男建一个conda环境,python版本也可以指定,自动下载。已存在的环境的话就是

    2022年8月27日
    8

发表回复

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

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