二、MDP问题

MDP问题

文章目录

  • MDP问题
    • 马尔科夫性与马尔科夫奖励
    • 贝尔曼方程
    • MDP policy

简单回忆一下上一篇笔记 一、强化学习基础 中讲到的agent与environment交互的过程:当环境environment处于某个状态state时,智能体agent采取某个动作action,该动作会对environment产生影响,使environment进入下一个状态state’,并且在状态改变的时刻,环境还会给出一个奖励reward。流程图如下所示:

二、MDP问题_第1张图片

马尔科夫性与马尔科夫奖励

学过随机过程的小伙伴都应该知道,马尔科夫性质指的就是下一状态只与当前状态有关,与过去状态无关。举个例子,小时候考试考砸了,父母会安慰我们:只要现在开始好好学,以后肯定会考出好成绩的。这就是一种生活中的马尔科夫。

马尔科夫链是马尔科夫决策的基础,只包括状态转移概率。转移概率指的就是从某一状态转移到其他状态或者继续停留在当前状态的概率。

马尔科夫奖励就是在马尔科夫链的基础上,如果状态切换或者保持不变,系统会获得怎样的激励,这个奖励的意义也就是马尔科夫决策要优化的东西,这个下面再说。

再来定义一个回报return,也有些文献中定义为收益gain,其实都是一个意思,就是对不同slot的奖励进行加权平均,这个权重就是 一、强化学习基础 中提到的discount factor。return/gain的定义如下:

在这里插入图片描述

这里对gain的定义是向未来看的,就是越往后得到的奖励所打的折扣越多。这说明我们其实更希望得到现有的奖励,未来的奖励就要把它打折扣。

这里我们解释一下为什么需要 discounted factor

  1. 第一点是有些马尔可夫过程是带环的,它并没有终结,我们想避免这个无穷的奖励。

  2. 另外,我们想把这个不确定性表示出来,希望尽可能快地得到奖励,而不是在未来某一个点得到奖励。

  3. 另外如果这个奖励是有实际价值的了,我们可能是更希望立刻就得到奖励,而不是后面再得到奖励。

  4. 在人的行为里面来说的话,大家也是想得到即时奖励。

  5. 另外,在有些时候,这个系数也可以把它设为 0。比如说,当我们设为 0 过后,然后我们就只关注了它当前的奖励。我们也可以把它设为 1,设为 1 的话就是对未来并没有折扣,未来获得的奖励跟我们当前获得的奖励是一样的。这个系数其实是应该可以作为强化学习 agent 的一个 hyper parameter 来进行调整,然后就会得到不同行为的 agent。

这里引出一个状态价值函数state value function,这个函数就是收益gain的期望,这个期望是对所有状态求的期望,随时间不断变化,这里先上定义,具体什么意思笔者现在也不太明白

二、MDP问题_第2张图片


贝尔曼方程

大名鼎鼎的贝尔曼方程来了,这就是MDP问题的精髓,先上公式推导:

二、MDP问题_第3张图片

s’:下一状态

P(s’|s):当前状态转移到下一状态的转移概率

V(s’):下一状态的价值

贝尔曼方程推导到最后一行的意思就是,当前状态的价值=到达当前状态的奖励+下一状态的价值,再形象一点就是当前状态的价值不仅与当前状态的奖励有关,还与下一状态的价值有关。Bellman Equation 就是当前状态与未来状态的迭代关系,表示当前状态的值函数可以通过下个状态的值函数来计算。


MDP policy

Policy 定义了在某一个状态应该采取什么样的行为,当我们知道当前状态过后,我们可以代入这个 policy function,那我们会得到一个概率,概率就代表了在所有可能的行为里面怎样去采取行动。就可能有 0.7 的概率往左走,有 0.3 的概率往右走,这样是一个概率的表示。这样就是一种随机性策略。相对的还有确定性策略,policy直接输出一个值,或者就直接告诉你当前应该采取什么样的行为,而不是一个行为的概率。

这里有两个价值函数,一个是state-value,一个是action-value(也叫Q函数),这个 Q 函数定义的是在某一个状态采取某一个行为,然后它有可能得到的这个 return 的一个期望。后最后得到它的这个价值。对 Q 函数中的行为函数进行加和,就可以得到状态价值函数。对定义如下:

二、MDP问题_第4张图片

当我们知道一个 MDP 以及要采取的策略 π,那我们计算价值函数的过程,就是 policy evaluation 。就像我们在评估这个策略,我们会得到多大的奖励。Policy evaluation 在有些地方也被叫做 prediction ,也就是预测你当前采取的这个策略最终会产生多少的价值。

Policy evaluation 是说给定一个 MDP 和一个 policy,我们可以估算出它的价值函数。这个问题的另外一方面是说如果我们只有一个 MDP,如何去寻找一个最佳的策略,然后可以得到一个 最佳价值函数(Optimal Value Function) 。Optimal Value Function 的定义是说,我们去搜索一种 policy π,然后我们会得到每个状态它的状态值最大的一个情况, v*就是到达每一个状态,它的值的极大化情况。在这种极大化情况上面,我们得到的策略就可以说它是最佳策略(optimal policy)。Optimal policy 使得每个状态,它的状态函数都取得最大值。所以当我们说某一个 MDP 的环境被解了过后,就是说我们可以得到一个 optimal value function,然后我们就说它被解了。在这种情况下面,然后我们它的最佳的价值函数是一致的,就它达到了这个 upper bound,它的值是一致的,但是这里可能有多个最佳的 policy,多个 policy 可以取得相同的最佳价值。

怎么去寻找这个最佳的 policy ,这里一个隐含条件是当我们取得最佳的价值函数过后,我们其实可以通过对这个 Q 函数进行极大化,然后得到最佳的价值。当所有东西都收敛过后,因为 Q 函数是关于状态跟动作的一个函数,所以对某一个状态采取一个行为,然后可以使得这个 Q 函数最大化,那么就这个行为就应该是最佳的行为。所以当我们能优化出一个 Q 函数,我们可以直接在这个 Q 函数上面取一个让这个 action 最大化的值,就可以直接提取出它的最佳策略。

二、MDP问题_第5张图片

寻找最佳的policy一般有以下三种方法:

  1. 穷举法(一般不使用):假设我们有有限多个状态、有限多个行为可能性,那么每个状态我们可以采取这个 A 种行为的策略,那么总共就是|A|^|S|个可能的policy。我们可以把这个穷举一遍,然后算出每种策略的 value function,然后对比一下可以得到最佳策略。但是效率极低。

  2. Policy iteration: 一种迭代方法,有两部分组成,下面两个步骤一直在迭代进行,最终收敛:
    a. 第一个步骤是 policy evaluation ,即当前我们在优化这个 policy ,所以在优化过程中得到一个最新的这个 policy π 。
    b. 第二个步骤是 value iteration ,即取得价值函数后,进一步推算出它的 Q 函数。得到 Q 函数过后,那我们就直接去取它的极大化

  3. 我们一直去迭代 Bellman Optimality Equation,到了最后,它能逐渐趋向于最佳的策略,这是 value iteration 算法的精髓,就是我们去为了得到最佳的v*,对于每个状态的这个值,我们直接把这个 Bellman Optimality Equation 进行迭代,迭代了很多次之后它就会收敛到最佳的policy以及其对应的状态,这里面是没有policy function的。

你可能感兴趣的:(深度强化学习,强化学习)