前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[一起学RL] 十个问题认识MDP

[一起学RL] 十个问题认识MDP

作者头像
秋枫学习笔记
发布2022-09-19 10:59:46
7860
发布2022-09-19 10:59:46
举报
文章被收录于专栏:秋枫学习笔记

关注我们,一起学习~

导读

强化学习的背景在之前的文章中已经进行了简单介绍,今天主要和大家分享MDP马尔科夫决策过程的相关内容。MDP可谓是其他强化学习的祖师爷,其他方法都是在祖师爷的基础上开枝散叶的,因此要学习强化学习就要学习MDP。

本文主要参考的内容在“参考”部分,将学习的一些笔记进行分享,和大家一起学习。关于MDP的讲解,这篇文章讲的很清楚,感兴趣的小伙伴可以进入阅读。此次主要将内容进行精简,从10个问题带大家认识MDP,对MDP有一个总体的了解。

主要内容:

  • 介绍MDP的基本概念
  • 知识点
  • 用例子串起来

MDP基本概念

Q1. 什么是MDP?

MDP,马尔科夫决策过程是一个随机过程,该随机过程中每个状态的转移都满足马尔科夫性,并且状态转移概率包含动作和上一个状态。主要由有限状态集合S,有限动作集合A,状态转移概率P,折扣因子γ以及回报(奖励)函数R组成。

Q2. 什么是随机过程?

一系列随机变量组成的序列称为随机过程

Q3. 什么是马尔科夫性?

下一个状态(

s_{t+1}

)只和当前状态(

s_{t}

)有关,与之前的状态(

s_{t-2},s_{t-3}...

)无关。

Q4. 什么是决策?

所谓决策即包含动作,由动作和当前状态来得到下一个状态。

P[S_{t+1}=s'|S_t=s,A_t=a]

表示的当前状态s下,执行动作a能转移到下一个状态s'的概率。

知识点

Q5. 什么是回报?

回报(R)是智能体在某个状态s下执行某个动作a从而转移到一下个状态s'后环境给予的反馈,称之为奖励或回报。

Q6. 什么是累积回报?

累积回报通常可以表示为

G_t=R_{t+1}+\gamma R_{t+2}+...=\sum_{k=0}^{\infty}{\gamma^kR_{t+1+k}}

。从当前状态按照一定的策略往后面的状态转移,每次转移都可以得到环境给予的回报R,并且离当前位置越远的状态对当前位置的影响应该越小,因此这里需要一个折扣因子

\gamma

对其进行加权。

Q7. 什么是策略?

所谓策略即为在状态s下智能体采取各种动作的概率表示为

\pi(a|s)=p[A_t=a|S_t=s]

Q8. 什么是状态值函数?

因为策略是采取不同动作的概率,而在状态s处采取动作a后根据转移矩阵可能转移到不同的状态,因此在策略

\pi

下同一状态s可能会产生不同的状态序列,不同的序列可以得到不同的累积回报G,从s出发的多个G的期望作为价值函数。其反映在该状态下可以得到的期望累积回报,通俗理解就是走到这个状态可以得到的累积回报是多少,从而判断是否要往这个状态走。

v_{\pi}(s)=E_{\pi}[\sum_{k=0}^{\infty}{\gamma^kR_{t+k+1}|S_t=s}]

通过对

R_{t+1}

之后的求和提取γ可以得到状态值函数的递推式

V(S_t)=E(R_{t+1}+\gamma V(S_{t+1}))

Q9. 什么是动作值函数?

如图所示,除了“7.4”以外,其他状态节点采取动作后转移的状态是固定的。这里以“7.4”节点为例,执行“发表”动作后,存在三种状态转移的可能,那么在执行某个动作之后可以得到的期望累积回报,通俗理解就是在状态s的时候如果选择这个状态可以得到的累积回报会是多少,从而判断是否要选这个动作。同样可以得到下面的递推式,

q_{\pi}(s,a)=E_{\pi}[R_{t+1}+\gamma q(S_{t+1},A_{t+1}) | S_t=s,A_t=a]

Q10. 状态值函数和动作值函数有什么关系?

一次转移过程:在状态s时根据策略π选择并执行动作后转移到下一个状态s'。那么这个过程可以表示为上图,白色圆表示状态,黑色圆表示动作。在状态s时,根据策略π可以选择两个动作,在执行动作a之后可能转移到两个后续状态。那么就可以得到下式来表达状态和动作之间值函数的关系,

白话:把这个状态下可能执行的动作都做一遍,然后计算他们的期望就是状态值函数

v_{\pi}(s)=\sum_{a\in A}{\pi(a|s)q_{\pi}(s,a)}

白话:P表示在状态s时执行动作a转移到s'的概率,因此左式表示执行动作a后,后续可能到达的状态的值函数的期望,右式表示执行动作后可以得到的奖励(回报)。

q_{\pi}(s,a)=R_s^a+\gamma \sum_{s'}{P_{ss'}^av_{\pi}(s')}

最后可以得到与Q8,Q9中bellman递推式的详细版本,具体如下,一个个位置对应一下比较容易理解的。

v_{\pi}(s)=\sum_{a \in A} \pi(a \mid s)\left(R_{s}^{a}+\gamma \sum_{s^{\prime} \in S} P_{s s^{\prime}}^{a} v_{\pi}\left(s^{\prime}\right)\right)
q_{\pi}(s, a)=R_{s}^{a}+\gamma \sum_{s^{\prime} \in S} P_{s s^{\prime}}^{a} \sum_{a^{\prime} \in A} \pi\left(a^{\prime} \mid s^{\prime}\right) q_{\pi}\left(s^{\prime}, a^{\prime}\right)

例子:

有一个机器人小夏,在一个迷宫里寻找宝藏,有的地方时陷阱,有的地方是路,有一个地方是宝藏,那么机器人应该如何才能快速地找到宝藏,并且不落入陷阱。这里的机器人需要作出一系列的决策从起点快速安全到达宝藏点。

那么这里小夏能到的每一个地方我们可以认为是状态s,小夏在迷宫中的移动是动作a,它每到一个地方都会得到不同的奖励(回报),例如到陷阱就要被惩罚(负回报),到宝藏点获得奖励(正回报)等,每次前进有所消耗,因此也可以给予相应的负回报,这样可以敦促他尽快到达宝藏点。而对从这个状态下到最终的地点的总回报的估计就是累积回报。通过不断的训练,小夏从一开始的导出乱撞,到最后可以快速的到达宝藏点,获取宝藏。

小夏每次做决策的时候,都需要考虑往哪走,走多少,到达哪个位置。通过什么来判断呢?就是通过在不断学习的过程中计算得到的状态值函数和动作值函数,小夏判断到达状态s的值函数最大,则他可以选择走这个位置。

下期预告:从Q9的图中可以发现,每个状态的值函数的值都已经给出了,那么应该如何在迭代中计算他们,并进行相应的决策呢?下期和大家分享。

参考

https://zhuanlan.zhihu.com/p/25498081 https://www.bilibili.com/video/BV15a4y1j7vg?p=2

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MDP基本概念
    • Q1. 什么是MDP?
      • Q2. 什么是随机过程?
        • Q3. 什么是马尔科夫性?
          • Q4. 什么是决策?
          • 知识点
            • Q5. 什么是回报?
              • Q6. 什么是累积回报?
                • Q7. 什么是策略?
                  • Q8. 什么是状态值函数?
                    • Q9. 什么是动作值函数?
                      • Q10. 状态值函数和动作值函数有什么关系?
                      • 例子:
                      • 参考
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档