请先阅读上一篇文章:【RL系列】马尔可夫决策过程与动态编程

在上一篇文章里,主要讨论了马尔可夫决策过程模型的来源和基本思想,并以MAB问题为例简单的介绍了动态编程的基本方法。虽然上一篇文章中的马尔可夫决策过程模型实现起来比较简单,但我认为其存在两个小问题:

  • 数学表达上不够简洁
  • 状态价值评价型问题与动作价值评价型问题是分离的,形式上不够统一

本篇主要来解决第一个问题。

第一个问题是比较直观的,下面给出状态价值函数以作分析:

$$ \mathbb{Value}(S_1) = \mathbb{Reward}(S_1) + \gamma \sum_{i = 1}^{n} \pi(A_i|S_1)\sum_{j = 1}^{N(A_i)}P\left[S_{A_i}(j)|A_i, S_1\right] \mathbb{Value}\left[S_{A_i}(j)\right] $$

实际上如果将这个价值函数的后半Futrue Value部分展开了写,可以写为:

$$\begin{align}
\mathbb{Value}(S_1) & = \mathbb{Reward}(S_1) + \gamma \sum_{i = 1}^{n} \pi(A_i|S_1) \left[ \begin{matrix} P\left[S_{A_i}(1)|A_i, S_1\right] \mathbb{Value}S_{A_i}(1) + \\ P\left[S_{A_i}(2)|A_i, S_1\right] \mathbb{Value}S_{A_i}(2) + \\......\\P\left[S_{A_i}(N(A_i))|A_i, S_1\right] \mathbb{Value}S_{A_i}(N(A_i)) \end{matrix} \right] \\& = \mathbb{Reward}(S_1) + \gamma \sum_{i = 1}^{n} \pi(A_i|S_1) \left[\begin{matrix} P\left[S_{A_i}(1)|A_i, S_1\right]\\ P\left[S_{A_i}(2)|A_i, S_1\right]\\ ......\\ P\left[S_{A_i}(N(A_i)|A_i, S_1\right]
\end{matrix} \right]^T \left[\begin{matrix} \mathbb{Value}S_{A_i}(1)\\ \mathbb{Value}S_{A_i}(2)\\ ......\\ \mathbb{Value}S_{A_i}(N(A_i))
\end{matrix} \right] \end{align}$$

可以将关于动作$ A_i $的可能转移状态的价值函数矩阵写为$ \mathbf{V}(A_i) $,将状态转移概率矩阵写为$ \mathbf{P}^{T}(A_i) $,那么价值函数就可以表示为:

$$ \mathbb{Value}(S_1) = \mathbb{Reward}(S_1) + \gamma \sum_{i = 1}^{n} \pi(A_i|S_1) \mathbf{P}^{T}(A_i) \mathbf{V}(A_i) $$

如果每一个可执行的动作所可以得到的状态都是固定一样多的话,那么这个式子的形式还可以继续化简。假设在有限马尔可夫决策过程中,存在有限的动作集合$ \mathbb{A} = \{A_1, A_2, ...,A_n \} $和有限的状态集合$ \mathbb{S} = \{S_1, S_2, ...,S_m \} $, 每个动作都可以产生m个有限的状态(如果实际应用中,不可能产生的状态则状态转移概率为0)。所有动作所对应的状态转移概率矩阵$ \mathbb{P} $ 就可以写为:

$$ \mathbb{P} = \left[\begin{matrix} \mathbf{P}^{T}(A_1) \\ \mathbf{P}^{T}(A_2)\\ ......\\ \mathbf{P}^{T}(A_n) \end{matrix}\right] = \left[\begin{matrix} P\left[S_{A_1}(1)|A_1, S_1\right] & P\left[S_{A_1}(2)|A_1, S_1\right]& ... & P\left[S_{A_1}(m)|A_1, S_1\right] \\ P\left[S_{A_2}(1)|A_2, S_1\right] & P\left[S_{A_2}(2)|A_2, S_1\right]& ... & P\left[S_{A_2}(m)|A_2, S_1\right] \\ ...... & ...... & ... & ......\\ P\left[S_{A_n}(1)|A_n, S_1\right] & P\left[S_{A_n}(2)|A_n, S_1\right]& ... & P\left[S_{A_n}(m)|A_n, S_1\right] \end{matrix}\right] $$

我们同样可以设动作转移概率举证$ \mathbf{\Pi} $为:

$$ \mathbf{\Pi} = \left[\begin{matrix} \pi(A_1|S_1)\\ \pi(A_2|S_1)\\ ......\\ \pi(A_n|S_1) \end{matrix}\right]^{T} $$

这样我们就可以将对状态$ S_1 $的价值评价的一般形式写出来:

$$ \mathbb{Value}(S_1) = \mathbb{Reward}(S_1) + \gamma \mathbf{\Pi} \mathbb{P} \mathbf{V}$$

到目前位置所有公式的推导都有一个大前提,就是当前状态为$ S_1 $,如果我们将价值函数的一般形式推广到所有状态,那么除了向量$ \mathbf{V} $外,每个项的维度都会提升一个。这样的话,$\mathbf{\Pi}$矩阵变为二维矩阵,状态转移矩阵$\mathbb{P}$变为一个三维矩阵,即张量$ \mathrm{P}_{s'a}^{s} $

$$ \mathrm{P} = \mathrm{fold} \left[\begin{matrix} \mathbb{P}(S_1) \\ \mathbb{P}(S_2) \\......\\ \mathbb{P}(S_m) \end{matrix} \right] $$

至此我们可以写出状态价值函数的最一般形式:

$$ \mathbf{V} = \mathbf{R} + \gamma \mathbf{\Pi} \mathrm{P}_{s',a}^{s} \mathbf{V} $$

我们可以用状态转移图将该式表示出来,这样更加直观:

【RL系列】马尔可夫决策过程中状态价值函数的一般形式的更多相关文章

  1. 【RL系列】马尔可夫决策过程——状态价值评价与动作价值评价

    请先阅读上两篇文章: [RL系列]马尔可夫决策过程中状态价值函数的一般形式 [RL系列]马尔可夫决策过程与动态编程 状态价值函数,顾名思义,就是用于状态价值评价(SVE)的.典型的问题有“格子世界(G ...

  2. 强化学习入门基础-马尔可夫决策过程(MDP)

    作者:YJLAugus 博客: https://www.cnblogs.com/yjlaugus 项目地址:https://github.com/YJLAugus/Reinforcement-Lear ...

  3. 马尔可夫决策过程MDP

    1. 马尔可夫模型的几类子模型 马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是马尔可夫性(无 ...

  4. 转:增强学习(二)----- 马尔可夫决策过程MDP

    1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...

  5. 增强学习(二)----- 马尔可夫决策过程MDP

    1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...

  6. 【RL系列】马尔可夫决策过程——Jack‘s Car Rental

    本篇请结合课本Reinforcement Learning: An Introduction学习 Jack's Car Rental是一个经典的应用马尔可夫决策过程的问题,翻译过来,我们就直接叫它“租 ...

  7. [Reinforcement Learning] 马尔可夫决策过程

    在介绍马尔可夫决策过程之前,我们先介绍下情节性任务和连续性任务以及马尔可夫性. 情节性任务 vs. 连续任务 情节性任务(Episodic Tasks),所有的任务可以被可以分解成一系列情节,可以看作 ...

  8. 【cs229-Lecture16】马尔可夫决策过程

    之前讲了监督学习和无监督学习,今天主要讲“强化学习”. 马尔科夫决策过程:Markov Decision Process(MDP) 价值函数:value function 值迭代:value iter ...

  9. 强化学习-MDP(马尔可夫决策过程)算法原理

    1. 前言 前面的强化学习基础知识介绍了强化学习中的一些基本元素和整体概念.今天讲解强化学习里面最最基础的MDP(马尔可夫决策过程). 2. MDP定义 MDP是当前强化学习理论推导的基石,通过这套框 ...

随机推荐

  1. 将Tensor输出到文件

    ) local file = io.open('/home/xbwang/Desktop/part2original','a') ,length do number = part2[j] file:w ...

  2. 【转】matplotlib制图——图例legend

    转自:https://www.cnblogs.com/alimin1987/p/8047833.html import matplotlib.pyplot as pltimport numpy as ...

  3. oracle ORA-01722:无效数字 记录

    今天在对12万条记录的表进行左联接时,有时可以查询出数据,有时会报无效数字,反复检查,发现问题. 例如sql: SELECT * FROM USER U LEFT JOIN USER_ROLE UR ...

  4. ubuntu下boot分区空间不足问题的解决方案

    https://blog.csdn.net/along_oneday/article/details/75148240 先查看当前内核版本号(防止误删) uname –r 查看已经安装过的内核 dpk ...

  5. IIS提示出现RPC服务器不可用的解决方法

    如果你运行IIS时也遇到“RPC服务器不可用”的故障提示,不妨试试我们下面的办法 依次点击“管理工具→服务→Remote Procedure Call→属性”,其默认启动类别是“自动”,但选项是灰色的 ...

  6. FFMpeg笔记(一) 使用FFmpeg将任意格式图片转换成任意格式图片

    void SrcToDest(char* pSrc, char* pDest,unsigned int nSrcWidth, unsigned int nSrcHeight, AVPixelForma ...

  7. iOS 多线程:『RunLoop』详尽总结

    1. RunLoop 简介 1.1 什么是 RunLoop? 可以理解为字面意思:Run 表示运行,Loop 表示循环.结合在一起就是运行的循环的意思.哈哈,我更愿意翻译为『跑圈』.直观理解就像是不停 ...

  8. 2019北航OO第一单元作业总结

    一.前三次作业内容分析总结 前言 前三次作业,我提交了三次,但是有效作业只有两次,最后一次作业没能实现多项式求导的基本功能因此无疾而终,反思留给后文再续,首先我介绍一下这三次作业,三次作业围绕着多项式 ...

  9. 洛谷P1028动规算法

    首先我们可以写一个递归 #include<bits/stdc++.h> using namespace std; long long n; int main(){ long long f[ ...

  10. MariaDB中文乱码之解决思路

    首先出现乱码的原因就是编码不一致问题引起的,那么就从以下2个方面入手: 1.应用层:前提条件数据库服务端存储的中文数据是对的,但是页面上显示乱码,这里只需要检查你的项目的编码格式,设置成一致就行. 2 ...