本章是强化学习的基础,主要讲的就是马尔科夫决策过程,以后的内容都是以这一节为基础的,所以对本节的相关概念的理解是很重要的。
这一节的概念比较多,也是后面章节的基础,一开始笔者也是一头雾水,只有多看几遍,多去思考,才能慢慢理解。毕竟概念与定义比较多,想要一下子消化完还是有一些难度的。这篇博客也是笔者看完David Silver的公开课与其它一些参考资料后的理解,希望对大家有所帮助。
为什么在强化学习中会用到马尔科夫决策过程呢?
在强化学习中,agent与environment一直在互动。在每个时刻t,agent会接收到来自环境的状态s,基于这个状态s,agent会做出动作a,然后这个动作作用在环境上,于是agent可以接收到一个奖赏 Rt+1 R t + 1 ,并且agent就会到达新的状态。所以,其实agent与environment之间的交互就是产生了一个序列:
我们称这个为序列决策过程。而马尔科夫决策过程就是一个典型的序列决策过程的一种公式化。有了马尔科夫的假设,在解决这个序列决策过程才比较方便,而且实用。所以这也是这一节为何要学习马尔科夫决策过程的原因了。
Markov 的定义
首先定义一下什么是Markov:下一个状态的产生只和当前的状态有关,即:
这说明state St S t is Markov. 本来直观上讲,下一个状态的产生跟所有历史状态是有关的,也就是等式右边所示。但是Markov的定义则是忽略掉历史信息,只保留了当前状态的信息来预测下一个状态,这就叫Markov。
状态转移概率
对于一个具体的状态s和它的下一个状态s’ ,它们的状态转移概率(就是从s转移到s’的概率)定义为:
也就是说,下一个状态的产生只受到当前状态的影响。
假如总共有n种状态可以选择。那么状态转移矩阵P定义为:
矩阵中第i行表示,如果当前状态为i,那么它的下一个状态为1, … , n的概率分别为 Pi1,...,Pin P i 1 , . . . , P i n 。显然,这一行所有概率之和为1.
例如:
上图中,Class1, Class2, Class3, Facebook, Sleep, pub, Pass都是分别代表不同的状态,状态到状态之间有一个转移概率,即上图右边所示。
Markov Process
这个tuple包含了所有的状态,以及各种状态之间转移的概率,这就是马尔科夫过程。马尔科夫过程是一个二元组。
也许你会问:这些转移概率是怎么知道的?
这个问题很好,但是在这里我们先不讨论这个,先假设这个概率我们是知道的就好。以后会说到在现实情况下,很多时候是不知道状态转移概率的,所以有别的方法来做。现在只是要知道有这样的概念。
Markov Reward Process
从Markov Process到Markov Reward Process我们加入了一个R。这个R是一个reward,它表示从一个状态s转移到另一个状态s’时能够获得的奖励的期望,也就是上图的 Rs R s 的公式。也许你会问,为什么不是进入某一个状态时得到奖励而是离开时呢?其实这只是一种规定而已,当然也可以说进入某一个状态时得到奖励,只要规定得好就行。在强化学习之简介博客中已经有说到reward这个东西,可以参考。