MDP过程
一、马尔可夫过程 马尔可夫链
在强化学习中,智能体与环境就是这样进行交互的,这个交互过程可以通过马尔可夫决策过程来表示,马尔可夫决策过程是强化学习的基本框架。
离散时间的马尔可夫过程也称为马尔可夫链(Markov chain)。马尔可夫链是最简单的马尔可夫过程,其状态是有限的。(当前状态进入下一个状态只和当前状态有关,马尔可夫性质)
一个例子
通过采样,可以得到很多轨迹!!!
二、马尔可夫奖励过程
马尔可夫奖励过程(Markov reward process, MRP)是马尔可夫链加上奖励函数。在马尔可夫奖励过程中,状态转移矩阵和状态都与马尔可夫链一样,只是多了奖励函数(reward function)。
2.1 回报与价值函数
T时间步内的奖励总和为回报,由于短视有折扣因子:
多次采样(一种方法MC Monte Carlo采样)后得到的回报的均值为价值,即回报的期望,消除回报的不确定性,即每个episode得到回报不一致。
折扣因子可以作为强化学习智能体的一个超参数(hyperparameter)来进行调整,通过调整折扣因子,我们可以得到不同动作的智能体。(避免无穷的奖励,对未来的评估增加一个折扣,更希望立刻就得到奖励,得到即时奖励)
接上个例子
定义奖励以及采样路径计算得:
贝尔曼方程
矩阵形式:
解析解
对于一个大矩阵求逆是非常困难的。所以这种通过解析解去求解的方法只适用于很小量的马尔可夫奖励过程。
2.3 计算马尔可夫奖励过程的迭代法
动态规划的方法,蒙特卡洛的方法(通过采样的办法计算它), 时序差分学习(temporal-difference learning,TD learning) 的方法(时序差分学习是动态规划和蒙特卡洛方法的一个结合)。
- Monte Carlo 采样算法
- 动态规划的方法
三、马尔可夫决策过程
未来的状态不仅依赖于当前的状态,也依赖于在当前状态智能体采取的动作。
h
(
t
)
h(t)
h(t) 为历史states集合。
3.1 马尔可夫决策过程中的策略
策略定义了在某一个状态应该采取什么样的动作。知道当前状态后,我们可以把当前状态代入策略函数来得到一个概率
假设概率函数是平稳的(stationary)(策略概率不会随时间变化),不同时间点,我们采取的动作其实都是在对策略函数进行采样。
若已知马尔可夫决策过程和策略 π,我们可以把马尔可夫决策过程转换成马尔可夫奖励过程:
马尔可夫决策过程里面的状态转移与马尔可夫奖励过程以及马尔可夫过程的状态转移的差异如下图所示,主要是采取动作后状态的进入仍然不确定:
3.2 马尔可夫决策过程中的价值函数
- 基于策略的价值函数
- 基于策略的动作价值函数
- 对动作加期望得到价值函数和动作价值函数的关系
(此处是贝尔曼方程,不依赖于策略采样)
3.3 贝尔曼期望方程
价值函数的贝尔曼期望方程:
动作价值Q函数的贝尔曼期望方程:
贝尔曼期望方程也定义了当前状态与未来状态之间的关联,推导如下:
3.4 回溯图/备份图
对于以下的状态价值函数可以得到分解,通过子结构的回溯得到根节点的价值函数。
图b的部分:
图c的部分:
(Q函数类似)
3.5 关键问题:预测和控制
预测:预测是指给定一个马尔可夫决策过程以及一个策略
π
π
π ,计算它的价值函数,也就是计算每个状态的价值。
(输入:马尔可夫决策过程
<
S
,
A
,
P
,
R
,
γ
>
<S,A,P,R,\gamma>
<S,A,P,R,γ>和策略
π
\pi
π,输出:状态价值函数)
控制:去寻找一个最佳的策略,然后同时输出它的最佳价值函数以及最佳策略。
(输入:马尔可夫决策过程
<
S
,
A
,
P
,
R
,
γ
>
<S,A,P,R,\gamma>
<S,A,P,R,γ>,输出:最佳价值函数
V
∗
V^*
V∗ 和最佳策略函数
π
∗
\pi^*
π∗)
在马尔可夫决策过程里面,预测和控制都可以通过动态规划解决。要强调的是,这两者的区别就在于,预测问题是给定一个策略,我们要确定它的价值函数是多少。而控制问题是在没有策略的前提下,我们要确定最佳的价值函数以及对应的决策方案。实际上,这两者是递进的关系,在强化学习中,我们通过解决预测问题,进而解决控制问题。
预测问题:给定马尔可夫决策过程和随机策略,得到状态价值函数。
控制问题:给定马尔可夫决策过程,求出在所有可能的策略下最优的价值函数是什么,最优策略是什么。
3.6 马尔可夫决策过程策略评估
已知马尔可夫决策过程以及要采取的策略
π
π
π ,计算价值函数
V
π
(
s
)
V_π(s)
Vπ(s) 的过程就是策略评估。(价值预测)
对于确定性策略,估算的价值函数是一致的,假设采取策略智能体一直往左走,奖励函数和状态变化情况如下:
![智能体](https://img-blog.csdnimg.cn/972df0ecaf6144e8b8b124c482dcbf48.png
假设折扣因子为0,则价值函数计算如下
通过贝尔曼方程来得到价值函数:
K是迭代次数,不停地迭代,最后价值函数会收敛。收敛之后,价值函数的值就是每一个状态的价值。
如果是决策过程,则:
上式贝尔曼期望迭代方程。
可以直接把贝尔曼期望备份(Bellman expectation backup) ,变成迭代的过程,反复迭代直到收敛。这个迭代过程可以看作同步备份(synchronous backup)的过程。
- 同步备份是指每一次的迭代都会完全更新所有的状态,这对于程序资源的需求特别大。异步备份(asynchronous backup)的思想就是通过某种方式,使得每一次迭代不需要更新所有的状态,因为事实上,很多状态也不需要被更新。
给定当前策略 π \pi π,得到迭代方程,策略评估的核心思想就是把如式(2.18)所示的贝尔曼期望备份反复迭代,然后得到一个收敛的价值函数的值。
小网格世界 动作集合模拟单步更新过程。单步更新策略评估过程
网格里面每一格里面都是状态,价值均初始化为0,策略用箭头表示,一步更新后,部分状态价值改变,继续迭代贝尔曼期望备份方程。
当我们迭代了很多次之后,有些很远的状态的价值函数已经有值了,而且整个过程是一个呈逐渐扩散的过程,这其实也是策略评估的可视化。当我们每一步进行迭代的时候,远的状态就会得到一些值,值从已经有奖励的状态逐渐扩散。当我们执行很多次迭代之后,各个状态的值会逐渐稳定下来,最后值就会确定不变。收敛之后,每个状态的值就是它的状态价值。
3.7 马尔可夫决策过程控制
如果我们只有马尔可夫决策过程,那么应该如何寻找最佳的策略,从而得到**最佳价值函数(optimal value function)**呢?寻找最佳策略的过程就是马尔可夫决策过程的控制过程。马尔可夫决策过程控制就是去寻找一个最佳策略使我们得到一个最大的价值函数值:
- 穷举法, ∣ A ∣ ∣ S ∣ |A|^{|S|} ∣A∣∣S∣ 次,对比所有状态对应所有动作形成的所有策略,找到最佳策略;
- 策略迭代
- 价值迭代
策略迭代
分为策略评估和策略改进(policy evaluation and policy improvement)。
1、策略评估:
当前我们在优化策略
π
\pi
π,在优化过程中得到一个最新的策略。我们先保证这个策略不变,然后估计它的价值,即给定当前的策略函数来估计状态价值函数;
2、策略改进:
得到状态价值函数后,我们可以进一步推算出它的 Q 函数。得到 Q 函数后,我们直接对 Q 函数进行最大化,通过在 Q 函数做一个贪心的搜索来进一步改进策略。
- 先给定当前已有的策略函数,计算它的状态价值函数。算出状态价值函数后,我们会得到一个 Q 函数。我们对Q 函数采取贪心的策略,这样就像踢皮球,“踢”回策略。然后进一步改进策略,得到一个改进的策略后,它还不是最佳的策略,我们再进行策略评估,又会得到一个新的价值函数。基于这个新的价值函数再进行 Q 函数的最大化,这样逐渐迭代,状态价值函数和策略就会收敛。
价值迭代
动态规划的方法将优化问题分成两个部分。第一步执行的是最优的动作。之后后继的状态的每一步都按照最优的策略去做,最后的结果就是最优的。
价值迭代算法:
价值迭代公式:
每个格子都是一个状态,数字表示状态的价值,不断迭代后回溯求最优策略。
区别:
策略迭代:
1、策略评估,即对当前已经搜索到的策略函数进行估值;
2、得到估值后,我们进行策略改进,即把 Q 函数算出来,进行进一步改进。不断重复这两步,直到策略收敛。
价值迭代:
1、直接使用贝尔曼最优方程进行迭代,从而寻找最佳的价值函数。找到最佳价值函数后,我们再提取最佳策略。
参考资料:datewhale深度强化学习课程主页