概念
马尔可夫(Markov)相关概念包括马尔可夫过程(Markov Process),马尔可夫奖赏过程(Markov Reward Process),马尔可夫决策过程(Markov Decision Process)等。我们说他们都是具有马尔可夫性质(Markov Property)的,然后MRP就是再加上奖赏过程,MDP就是再加上决策过程。那么什么是马尔可夫性质呢?我们上边也提到过,用一句话来说就是“The future is independent of the past given the present” 即 “在现在情况已知的情况下,过去与将来是独立的”再通俗一点就是我们可以认为现在的这个状态已经包含了预测未来所有的有用的信息,一旦现在状态信息我们已获取,那么之前的那些信息我们都可以抛弃不用了。MDP描述了RL的Environment,并且这里的环境是完全可见的。而且几乎所有的RL问题都可以转为成为MDP,其中的部分可观测环境问题也可以转化为MDP
Markov Process (Markov Chain):是一个包含了状态S和转移概率P的数组<S,P>
状态转移矩阵(StateTransition Matrix):它描述的是在MP中,从所有前一个状态s(矩阵的行)转移到所有下一个状态s’(矩阵的列)的概率。我们可以想象,在MP的其中一个状态s时,他可以有不同的概率转移到后续的状态上,且这些概率加到一起是等于1的,也就是在这个矩阵里边每一行的概率加起来为1。
Markov Reward Process(MRP):是加入了瞬时奖励(Immediate reward)和γ(discount factor)的MP, 即数组<S,P,R,γ>。这里边强调是瞬时奖励,即从前一个状态s一进入下一个状态s’就能获得的奖励。
1)和瞬时奖励相对应的自然是累积奖励(cumulative reward),它包含了瞬时的奖励和后续步骤的奖励(乘以γ),这里边又把它称为Return。有关γ,前面提到过,范围[0,1],表示目短浅/长远,之所以使用γ可能是用来弥补我们对环境不完善的建模或者因为其数学表达的便利性。但是一般情况下动物反射活动或者金融投资什么的都是偏向于瞬时奖励的。而如果我们知道有限的MP过程,即在你一眼可以望到边的情况下,是可以把γ设为1的
2)状态价值函数v(s):某一状态s的价值函数,是指在MRP里边,从状态s开始所期望获得的Return,所以根据定义,可以将v(s)分为两部分,即瞬时奖励+∑(后续各状态的瞬时奖励*γ对应的次方),经过推倒可以转化为:用进入该状态的瞬时奖励+(从该状态出发转移到下一状态的概率*下一状态的价值函数*γ)。其实这也就是贝尔曼方程(Bellman Equation)的推导过程和核心思想。就是相当于建立起了连续两个状态之间价值函数的联系。这里注意下一个状态可能不止一个,所以就要分别算进来乘以他们各自的转移概率。而有人会问这里边“下一个状态”的价值函数怎么去求?还是用相同的方法,一步一步去套,相当于从“结束状态”开始倒推过来。
3)贝尔曼方程还有矩阵形式,就是把多个状态和对应的概率转移矩阵换了进来。那么如何解这个方程呢?因为Bellman Equation本来就是线性的,对于简单的MRP可以直接通过矩阵的转置来求,不过这里的推倒好像是认为当前状态的价值函数和下一状态的价值函数一致,所以就提取出来了。感觉不太符合常理,估计仅适合非常简单的模型吧。而复杂一点的就不能这样直接算了,智能通过迭代方法(iterative method)如动态规划,蒙特卡洛评估等方法
Markov Decision Process(MDP):是加入了决策(Decision/Action)的MRP过程,所以包含<S,A,P,R,γ>。MRP只是陈述现实状态,并没有Agent参与采取行动,而MDP就有Agent过来指手画脚了,毕竟我们的终极目标是想看哪种方法是能获取奖励最多的,最优决策。
1)Policy(策略,π):我们第一部分也介绍了策略是什么,他就是agent的一个行动指南,即在什么状态有多少概率去采取什么行动,是一个s到a的映射。所以策略是依赖于当时所处的状态的。
2)在策略π下的Value Function 【Vπ(s)】:顾名思义,之前是所有状态的价值函数,现在呢是在策略π之下的状态价值函数,即如果我使用策略π,那么我每个状态的价值函数会变成什么样呢?毕竟我们现在已经有个策略了,不cover在我们策略π里边的状态我们就不考虑了。还有个更细化的定义叫做Action-value Function【qπ(s,a)】行动价值函数,是指从状态s开始如果遵从策略π并采用行动a的话,我能得到的return是多少。之所以说更细化是因为一个Vπ(s)里有多种s与a的映射关系,而现在我仅仅采用其中一个具体的a看看到底怎么样。同样,具体涉及到计算方面我们还是用Bellman Equation的“两部走”分解思想。
3)上边我们从状态价值函数【v(s)】具体到在策略π下的Value Function【Vπ(s)】,又具体到在策略π下采取行动a的行动价值函数【qπ(s,a)】,下面我们再递进一下,我们做这么多的终极目标是什么?我们要找最优策略!所以下面又出来了个【V*(s)】和【q*(s,a)】,前者是在所有策略中最大的那个状态价值函数,后者,类似地,是在所有行动中行动价值函数最大的那个。继而,又出现了最优策略(optimal policy)的概念,顾名思义,就是在这么多种策略里边,能达到最大策略价值函数的那个。同样,行动价值函数中最大的那个就是最优行动。在具体计算过程中,要注意有选择action的时候选max那个,而通过一个action转移到各个状态的时候就要算上各自的概率加权了。