【RL系列】马尔可夫决策过程中状态价值函数的一般形式
请先阅读上一篇文章:【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系列】马尔可夫决策过程中状态价值函数的一般形式的更多相关文章
- 【RL系列】马尔可夫决策过程——状态价值评价与动作价值评价
请先阅读上两篇文章: [RL系列]马尔可夫决策过程中状态价值函数的一般形式 [RL系列]马尔可夫决策过程与动态编程 状态价值函数,顾名思义,就是用于状态价值评价(SVE)的.典型的问题有“格子世界(G ...
- 强化学习入门基础-马尔可夫决策过程(MDP)
作者:YJLAugus 博客: https://www.cnblogs.com/yjlaugus 项目地址:https://github.com/YJLAugus/Reinforcement-Lear ...
- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是马尔可夫性(无 ...
- 转:增强学习(二)----- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...
- 增强学习(二)----- 马尔可夫决策过程MDP
1. 马尔可夫模型的几类子模型 大家应该还记得马尔科夫链(Markov Chain),了解机器学习的也都知道隐马尔可夫模型(Hidden Markov Model,HMM).它们具有的一个共同性质就是 ...
- 【RL系列】马尔可夫决策过程——Jack‘s Car Rental
本篇请结合课本Reinforcement Learning: An Introduction学习 Jack's Car Rental是一个经典的应用马尔可夫决策过程的问题,翻译过来,我们就直接叫它“租 ...
- [Reinforcement Learning] 马尔可夫决策过程
在介绍马尔可夫决策过程之前,我们先介绍下情节性任务和连续性任务以及马尔可夫性. 情节性任务 vs. 连续任务 情节性任务(Episodic Tasks),所有的任务可以被可以分解成一系列情节,可以看作 ...
- 【cs229-Lecture16】马尔可夫决策过程
之前讲了监督学习和无监督学习,今天主要讲“强化学习”. 马尔科夫决策过程:Markov Decision Process(MDP) 价值函数:value function 值迭代:value iter ...
- 强化学习-MDP(马尔可夫决策过程)算法原理
1. 前言 前面的强化学习基础知识介绍了强化学习中的一些基本元素和整体概念.今天讲解强化学习里面最最基础的MDP(马尔可夫决策过程). 2. MDP定义 MDP是当前强化学习理论推导的基石,通过这套框 ...
随机推荐
- Java静态代理学习
代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问. 在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式一般涉及 ...
- Spring AOP源码分析(二)动态A0P自定义标签
摘要: 本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 之前讲过Spring中的自定义注解,如果声明了自定义的注解,那么就一定 ...
- warning:ISO C90 forbids mixed declarations and code
warning:ISO C90 forbids mixed declarations and code 变量定义之前不论什么一条非变量定义的语句(重视:语句是会带分号的)都会引起这个警告! 将非变量的 ...
- 【LeetCode2】Add Two Numbers★★
题目描述: 解题思路: 给定两个链表(代表两个非负数),数字的各位以倒序存储,将两个代表数字的链表想加获得一个新的链表(代表两数之和). 如(2->4->3)(342) + (5-> ...
- CentOS 7 配置阿里云本地yum源
删除原有的yum源: rm -f /etc/yum.repos.d/* 重新下载阿里云的yum源: wget -O /etc/yum.repos.d/CentOS-Base.repo http://m ...
- 【数据结构与算法】001—栈与队列(Python)
栈与队列 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征 2.队列(queue)是一种具有先进先出 ...
- STM32单片机复位后GPIO电平状态
stm32单片机gpio共有八种工作模式,如下图: stm32单片机是一个低功耗的处理器,当复位以后,gpio默认是高阻状态,也就是浮空输入.这样的好处是: 1.降低了单片机的功耗 2.把gpio模式 ...
- 20155237 2016-2017-2 《Java程序设计》第4周学习总结
20155237 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 第六章 继承与多态 继承符合DRY原则. extends UML 多态: 继承可以复用代码, ...
- python基础学习1-第一个网络爬虫程序
#!/usr/bin/env python # -*- coding:utf-8 -*- 煎蛋网抓妹子图 import urllib.request import os import random d ...
- bzoj 前100题计划
bzoj前100题计划 xz布置的巨大的坑.. 有空填题解... 1002 轮状病毒 用python手动matrixtree打表. #include<bits/stdc++.h> #def ...