马尔科夫决策过程其实是强化学习里面的一个基本框架,它的环境是fully observation,就是全部可以观测的。
马尔科夫性质(Markov Property)
The future is independent of the past given the present(未来的转移跟过去是独立的,它只取决于现在)
状态转移矩阵(State Transition Matrix)
每一行描述了从一个节点到所有其它节点的概率
马尔科夫奖励过程(Markov Reward Process, MRP)
马尔科夫链再加上一个奖励函数,奖励函数是一个期望,就是说当你达到某一个状态的时候,可以获得多大的奖励
为什么需要discounted factor
- 第一点是有些马尔可夫过程是带环的,它并没有终结,我们想避免这个无穷的奖励。
- 另外,我们想把这个不确定性表示出来,希望尽可能快地得到奖励,而不是在未来某一个点得到奖励。
- 另外如果这个奖励是有实际价值的了,我们可能是更希望立刻就得到奖励,而不是后面再得到奖励。
- 在人的行为里面来说的话,大家也是想得到即时奖励。
- 另外,在有些时候,这个系数也可以把它设为 0。比如说,当我们设为 0 过后,然后我们就只关注了它当前的奖励。我们也可以把它设为 1,设为 1 的话就是对未来并没有折扣,未来获得的奖励跟我们当前获得的奖励是一样的。这个系数其实是应该可以作为强化学习 agent 的一个 hyper parameter 来进行调整,然后就会得到不同行为的 agent。
Bellman Equation
就是当前状态与未来状态的迭代关系,表示当前状态的值函数可以通过下个状态的值函数来计算。Bellman Equation 因其提出者、动态规划创始人Richard Bellman 而得名 ,也叫作“动态规划方程”。
马尔科夫决策过程Markov Decision Process(MDP)
相对于MRP, 马尔可夫决策过程(Markov Decision Process) 多了一个decision ,其它的定义跟MRP都是类似的。这里我们多了一个决策,多了一个 action,那么这个状态转移也多了一个 condition,就是你采取某一种行为,然后你未来的状态会不同。它不仅是依赖于你当前的状态,也依赖于在当前状态你这个 agent 它采取的这个行为会决定它未来的这个状态走向。对于这个价值函数,它也是多了一个条件,多了一个你当前的这个行为,就是说你当前的状态以及你采取的行为会决定
你在当前可能得到的奖励多少。
MDP里面的状态转移跟MRP以及MP的一个差异
- 马尔可夫过程的转移是直接就决定。比如当前状态是 s,那么就直接通过这个转移概率决定了下一个状态是什么。
- 但对于 MDP,它的中间多了一层这个行为 a ,就是说在你当前这个状态的时候,首先要决定的是采取某一种行为,那么你会到了某一个黑色的节点。到了这个黑色的节点,因为你有一定的不确定性,当你当前状态决定过后以及你当前采取的行为过后,你到未来的状态其实也是一个概率分布。所以你采取行为后,你可能有多大的概率到达某一个未来状态,以及另外有多大概率到达另外一个状态。所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是MDP跟之前的马尔可夫过程很不同的一个地方。在马尔可夫决策过程中,行为是由 agent 决定,所以多了一个 component,agent 会采取行为来决定未来的状态转移。
Dynamic Programming
动态规划是说我们把可以把一个问题分解成一个最佳子结构,当我们可以把一些子结构都可以解决的话,那么它就可以组成一个最优的解。MDP是满足动态规划的要求的,就是在 Bellman Equation 里面,我们可以把它分解成一个递归的一个结构。当我们把它分解成一个递归的结构的时候,如果我们的子问题子状态能得到一个值,那么它的未来状态因为跟子状态是直接相连的,那我们也可以继续推算出来,所以这个价值函数就可以储存它以及重用它的最佳的解。所以动态规划是解MDPprediction和control一个非常有效的方式。