Update chapter2_questions&keywords.md
This commit is contained in:
@@ -1,102 +1,125 @@
|
|||||||
# Chapter2 马尔可夫决策过程(MDP)
|
# 第二章 马尔可夫决策过程(MDP)
|
||||||
|
|
||||||
## 1 Keywords
|
## 关键词
|
||||||
|
|
||||||
- **马尔可夫性质(Markov Property):** 如果某一个过程未来的转移跟过去是无关,只由现在的状态决定,那么其满足马尔可夫性质。换句话说,一个状态的下一个状态只取决于它当前状态,而跟它当前状态之前的状态都没有关系。
|
**马尔可夫性质(Markov property,MP)**:如果某一个过程未来的状态与过去的状态无关,只由现在的状态决定,那么其具有马尔可夫性质。换句话说,一个状态的下一个状态只取决于它的当前状态,而与它当前状态之前的状态都没有关系。
|
||||||
- **马尔可夫链(Markov Chain):** 概率论和数理统计中具有马尔可夫性质(Markov property)且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。
|
|
||||||
- **状态转移矩阵(State Transition Matrix):** 状态转移矩阵类似于一个 conditional probability,当我们知道当前我们在 $s_t$ 这个状态过后,到达下面所有状态的一个概念,它每一行其实描述了是从一个节点到达所有其它节点的概率。
|
|
||||||
- **马尔可夫奖励过程(Markov Reward Process, MRP):** 即马尔可夫链再加上了一个奖励函数。在 MRP之中,转移矩阵跟它的这个状态都是跟马尔可夫链一样的,多了一个奖励函数(reward function)。奖励函数是一个期望,它说当你到达某一个状态的时候,可以获得多大的奖励。
|
|
||||||
- **horizon:** 定义了同一个 episode 或者是整个一个轨迹的长度,它是由有限个步数决定的。
|
|
||||||
- **return:** 把奖励进行折扣(discounted),然后获得的对应的收益。
|
|
||||||
- **Bellman Equation(贝尔曼等式):** 定义了当前状态与未来状态的迭代关系,表示当前状态的值函数可以通过下个状态的值函数来计算。Bellman Equation 因其提出者、动态规划创始人 Richard Bellman 而得名 ,同时也被叫作“动态规划方程”。$V(s)=R(S)+ \gamma \sum_{s' \in S}P(s'|s)V(s')$ ,特别地,矩阵形式:$V=R+\gamma PV$。
|
|
||||||
- **Monte Carlo Algorithm(蒙特卡罗方法):** 可用来计算价值函数的值。通俗的讲,我们当得到一个MRP过后,我们可以从某一个状态开始,然后让它让把这个小船放进去,让它随波逐流,这样就会产生一个轨迹。产生了一个轨迹过后,就会得到一个奖励,那么就直接把它的 Discounted 的奖励 $g$ 直接算出来。算出来过后就可以把它积累起来,当积累到一定的轨迹数量过后,然后直接除以这个轨迹,然后就会得到它的这个价值。
|
|
||||||
- **Iterative Algorithm(动态规划方法):** 可用来计算价值函数的值。通过一直迭代对应的Bellman Equation,最后使其收敛。当这个最后更新的状态跟你上一个状态变化并不大的时候,这个更新就可以停止。
|
|
||||||
- **Q函数 (action-value function):** 其定义的是某一个状态某一个行为,对应的它有可能得到的 return 的一个期望(over policy function)。
|
|
||||||
- **MDP中的prediction(即policy evaluation问题):** 给定一个 MDP 以及一个 policy $\pi$ ,去计算它的 value function,即每个状态它的价值函数是多少。其可以通过动态规划方法(Iterative Algorithm)解决。
|
|
||||||
- **MDP中的control问题:** 寻找一个最佳的一个策略,它的 input 就是MDP,输出是通过去寻找它的最佳策略,然后同时输出它的最佳价值函数(optimal value function)以及它的这个最佳策略(optimal policy)。其可以通过动态规划方法(Iterative Algorithm)解决。
|
|
||||||
- **最佳价值函数(Optimal Value Function):** 我们去搜索一种 policy $\pi$ ,然后我们会得到每个状态它的状态值最大的一个情况,$v^*$ 就是到达每一个状态,它的值的极大化情况。在这种极大化情况上面,我们得到的策略就可以说它是最佳策略(optimal policy)。optimal policy 使得每个状态,它的状态函数都取得最大值。所以当我们说某一个 MDP 的环境被解了过后,就是说我们可以得到一个 optimal value function,然后我们就说它被解了。
|
|
||||||
|
|
||||||
## 2 Questions
|
**马尔可夫链(Markov chain)**: 概率论和数理统计中具有马尔可夫性质且存在于离散的指数集(index set)和状态空间(state space)内的随机过程(stochastic process)。
|
||||||
|
|
||||||
- 为什么在马尔可夫奖励过程(MRP)中需要有**discount factor**?
|
**状态转移矩阵(state transition matrix)**:状态转移矩阵类似于条件概率(conditional probability),其表示当智能体到达某状态后,到达其他所有状态的概率。矩阵的每一行描述的是从某节点到达所有其他节点的概率。
|
||||||
|
|
||||||
答:
|
**马尔可夫奖励过程(Markov reward process,MRP)**: 本质是马尔可夫链加上一个奖励函数。在马尔可夫奖励过程中,状态转移矩阵和它的状态都与马尔可夫链的一样,只多了一个奖励函数。奖励函数是一个期望,即在某一个状态可以获得多大的奖励。
|
||||||
|
|
||||||
1. 首先,是有些马尔可夫过程是**带环**的,它并没有终结,然后我们想**避免这个无穷的奖励**;
|
**范围(horizon)**:定义了同一个回合(episode)或者一个完整轨迹的长度,它是由有限个步数决定的。
|
||||||
2. 另外,我们是想把这个**不确定性**也表示出来,希望**尽可能快**地得到奖励,而不是在未来某一个点得到奖励;
|
|
||||||
3. 接上面一点,如果这个奖励是它是有实际价值的了,我们可能是更希望立刻就得到奖励,而不是我们后面再得到奖励。
|
|
||||||
4. 还有在有些时候,这个系数也可以把它设为 0。比如说,当我们设为 0 过后,然后我们就只关注了它当前的奖励。我们也可以把它设为 1,设为 1 的话就是对未来并没有折扣,未来获得的奖励跟我们当前获得的奖励是一样的。
|
|
||||||
|
|
||||||
所以,这个系数其实是应该可以作为强化学习 agent 的一个 hyperparameter 来进行调整,然后就会得到不同行为的 agent。
|
**回报(return)**:把奖励进行折扣(discounted),然后获得的对应的奖励。
|
||||||
|
|
||||||
- 为什么矩阵形式的Bellman Equation的解析解比较难解?
|
**贝尔曼方程(Bellman equation)**:其定义了当前状态与未来状态的迭代关系,表示当前状态的价值函数可以通过下个状态的价值函数来计算。贝尔曼方程因其提出者、动态规划创始人理查德 $\cdot$ 贝尔曼(Richard Bellman)而得名,同时也被叫作“动态规划方程”。贝尔曼方程即 $V(s)=R(s)+ \gamma \sum_{s' \in S}P(s'|s)V(s')$ ,特别地,其矩阵形式为 $\mathrm{V}=\mathrm{R}+\gamma \mathrm{PV}$。
|
||||||
|
|
||||||
答:通过矩阵求逆的过程,就可以把这个 V 的这个价值的解析解直接求出来。但是一个问题是这个矩阵求逆的过程的复杂度是 $O(N^3)$。所以就当我们状态非常多的时候,比如说从我们现在十个状态到一千个状态,到一百万个状态。那么当我们有一百万个状态的时候,这个转移矩阵就会是个一百万乘以一百万的一个矩阵。这样一个大矩阵的话求逆是非常困难的,所以这种通过解析解去解,只能对于很小量的MRP。
|
**蒙特卡洛算法(Monte Carlo algorithm,MC algorithm)**: 可用来计算价值函数的值。使用本节中小船的例子,当得到一个马尔可夫奖励过程后,我们可以从某一个状态开始,把小船放到水中,让它随波流动,这样就会产生一个轨迹,从而得到一个折扣后的奖励 $g$ 。当积累该奖励到一定数量后,用它直接除以轨迹数量,就会得到其价值函数的值。
|
||||||
|
|
||||||
- 计算贝尔曼等式(Bellman Equation)的常见方法以及区别?
|
**动态规划算法(dynamic programming,DP)**: 其可用来计算价值函数的值。通过一直迭代对应的贝尔曼方程,最后使其收敛。当最后更新的状态与上一个状态差距不大的时候,动态规划算法的更新就可以停止。
|
||||||
|
|
||||||
答:
|
**Q函数(Q-function)**: 其定义的是某一个状态和某一个动作所对应的有可能得到的回报的期望。
|
||||||
|
|
||||||
1. **Monte Carlo Algorithm(蒙特卡罗方法):** 可用来计算价值函数的值。通俗的讲,我们当得到一个MRP过后,我们可以从某一个状态开始,然后让它让把这个小船放进去,让它随波逐流,这样就会产生一个轨迹。产生了一个轨迹过后,就会得到一个奖励,那么就直接把它的 Discounted 的奖励 $g$ 直接算出来。算出来过后就可以把它积累起来,当积累到一定的轨迹数量过后,然后直接除以这个轨迹,然后就会得到它的这个价值。
|
**马尔可夫决策过程中的预测问题**:即策略评估问题,给定一个马尔可夫决策过程以及一个策略 $\pi$ ,计算它的策略函数,即每个状态的价值函数值是多少。其可以通过动态规划算法解决。
|
||||||
2. **Iterative Algorithm(动态规划方法):** 可用来计算价值函数的值。通过一直迭代对应的Bellman Equation,最后使其收敛。当这个最后更新的状态跟你上一个状态变化并不大的时候,通常是小于一个阈值 $\gamma$ ,这个更新就可以停止。
|
|
||||||
3. **以上两者的结合方法:** 另外我们也可以通过 Temporal-Difference Learning 的那个办法。这个 `Temporal-Difference Learning` 叫 `TD Leanring`,就是动态规划和蒙特卡罗的一个结合。
|
|
||||||
|
|
||||||
- 马尔可夫奖励过程(MRP)与马尔可夫决策过程 (MDP)的区别?
|
**马尔可夫决策过程中的控制问题**:即寻找一个最佳策略,其输入是马尔可夫决策过程,输出是最佳价值函数(optimal value function)以及最佳策略(optimal policy)。其可以通过动态规划算法解决。
|
||||||
|
|
||||||
答:相对于 MRP,马尔可夫决策过程(Markov Decision Process)多了一个 decision,其它的定义跟 MRP 都是类似的。这里我们多了一个决策,多了一个 action ,那么这个状态转移也多了一个 condition,就是采取某一种行为,然后你未来的状态会不同。它不仅是依赖于你当前的状态,也依赖于在当前状态你这个 agent 它采取的这个行为会决定它未来的这个状态走向。对于这个价值函数,它也是多了一个条件,多了一个你当前的这个行为,就是说你当前的状态以及你采取的行为会决定你在当前可能得到的奖励多少。
|
**最佳价值函数**:搜索一种策略 $\pi$ ,使每个状态的价值最大,$V^*$ 就是到达每一个状态的极大值。在极大值中,我们得到的策略是最佳策略。最佳策略使得每个状态的价值函数都取得最大值。所以当我们说某一个马尔可夫决策过程的环境可解时,其实就是我们可以得到一个最佳价值函数。
|
||||||
|
|
||||||
另外,两者之间是有转换关系的。具体来说,已知一个 MDP 以及一个 policy $\pi$ 的时候,我们可以把 MDP 转换成MRP。在 MDP 里面,转移函数 $P(s'|s,a)$ 是基于它当前状态以及它当前的 action,因为我们现在已知它 policy function,就是说在每一个状态,我们知道它可能采取的行为的概率,那么就可以直接把这个 action 进行加和,那我们就可以得到对于 MRP 的一个转移,这里就没有 action。同样地,对于奖励,我们也可以把 action 拿掉,这样就会得到一个类似于 MRP 的奖励。
|
|
||||||
|
|
||||||
- MDP 里面的状态转移跟 MRP 以及 MP 的结构或者计算方面的差异?
|
|
||||||
|
|
||||||
答:
|
|
||||||
|
|
||||||
- 对于之前的马尔可夫链的过程,它的转移是直接就决定,就从你当前是 s,那么就直接通过这个转移概率就直接决定了你下一个状态会是什么。
|
|
||||||
- 但是对于 MDP,它的中间多了一层这个行为 a ,就是说在你当前这个状态的时候,你首先要决定的是采取某一种行为。然后因为你有一定的不确定性,当你当前状态决定你当前采取的行为过后,你到未来的状态其实也是一个概率分布。所以你采取行为以及你决定,然后你可能有有多大的概率到达某一个未来状态,以及另外有多大概率到达另外一个状态。所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是MDP跟之前的马尔可夫过程很不同的一个地方。在马尔科夫决策过程中,行为是由 agent 决定,所以多了一个 component,agent 会采取行为来决定未来的状态转移。
|
|
||||||
|
|
||||||
- 我们如何寻找最佳的policy,方法有哪些?
|
|
||||||
|
|
||||||
答:本质来说,当我们取得最佳的价值函数过后,我们可以通过对这个 Q 函数进行极大化,然后得到最佳的价值。然后,我们直接在这个Q函数上面取一个让这个action最大化的值,然后我们就可以直接提取出它的最佳的policy。
|
|
||||||
|
|
||||||
具体方法:
|
|
||||||
|
|
||||||
1. **穷举法(一般不使用):**假设我们有有限多个状态、有限多个行为可能性,那么每个状态我们可以采取这个 A 种行为的策略,那么总共就是 $|A|^{|S|}$ 个可能的 policy。我们可以把这个穷举一遍,然后算出每种策略的 value function,然后对比一下可以得到最佳策略。但是效率极低。
|
|
||||||
2. **Policy iteration:** 一种迭代方法,有两部分组成,下面两个步骤一直在迭代进行,最终收敛:(有些类似于ML中EM算法(期望-最大化算法))
|
|
||||||
- 第一个步骤是 **policy evaluation** ,即当前我们在优化这个 policy $\pi$ ,所以在优化过程中得到一个最新的这个 policy 。
|
|
||||||
- 第二个步骤是 **policy improvement** ,即取得价值函数后,进一步推算出它的 Q 函数。得到 Q 函数过后,那我们就直接去取它的极大化。
|
|
||||||
3. **Value iteration:** 我们一直去迭代 Bellman Optimality Equation,到了最后,它能逐渐趋向于最佳的策略,这是 value iteration 算法的精髓,就是我们去为了得到最佳的 $v^*$ ,对于每个状态它的 $v^*$ 这个值,我们直接把这个 Bellman Optimality Equation 进行迭代,迭代了很多次之后它就会收敛到最佳的policy以及其对应的状态,这里面是没有policy function的。
|
|
||||||
|
|
||||||
|
|
||||||
## 3 Something About Interview
|
## 习题
|
||||||
|
|
||||||
- 高冷的面试官: 请问马尔可夫过程是什么?马尔可夫决策过程又是什么?其中马尔可夫最重要的性质是什么呢?
|
**2-1** 为什么在马尔可夫奖励过程中需要有折扣因子?
|
||||||
|
|
||||||
答: 马尔可夫过程是是一个二元组 $ <S,P> $ ,S为状态的集合,P为状态转移概率矩阵;
|
(1)首先,是有些马尔可夫过程是环状的,它并没有终点,所以我们想避免无穷的奖励。
|
||||||
而马尔可夫决策过程是一个五元组 $ <S,P,A,R,\gamma> $,其中 $R$ 表示为从 $S$ 到 $S'$ 能够获得的奖励期望, $\gamma$为折扣因子, $A$ 为动作集合.
|
|
||||||
马尔可夫最重要的性质是下一个状态只与当前状态有关,与之前的状态无关,也就是 $P[S_{t+1} | S_t] = P[S_{t+1}|S_1,S_2,...,S_t]$
|
|
||||||
|
|
||||||
- 高冷的面试官: 请问我们一般怎么求解马尔可夫决策过程?
|
(2)另外,我们想把不确定性也表示出来,希望尽可能快地得到奖励,而不是在未来的某个时刻得到奖励。
|
||||||
|
|
||||||
答: 我们直接求解马尔可夫决策过程可以直接求解贝尔曼等式(动态规划方程),即$V(s)=R(S)+ \gamma \sum_{s' \in S}P(s'|s)V(s')$ ,特别地,矩阵形式:$V=R+\gamma PV$.但是贝尔曼等式很难求解且计算复杂度较高,所以可以使用动态规划,蒙特卡洛,时间差分等方法求解.
|
(3)接上一点,如果这个奖励是有实际价值的,我们可能更希望立刻就得到奖励,而不是后面才可以得到奖励。
|
||||||
|
|
||||||
- 高冷的面试官: 请问如果数据流不满足马尔科夫性怎么办?应该如何处理?
|
(4)还有,在有些时候,折扣因子也可以设为0。当它被设为0后,我们就只关注它当前的奖励。我们也可以把它设为1,设为1表示未来获得的奖励与当前获得的奖励是一样的。
|
||||||
|
|
||||||
答: 如果不满足马尔科夫性,即下一个状态与之前的状态也有关,若还仅仅用当前的状态来进行求解决策过程,势必导致决策的泛化能力变差。 为了解决这个问题,可以利用RNN对历史信息建模,获得包含历史信息的状态表征。表征过程可以 使用注意力机制等手段。最后在表征状态空间求解马尔可夫决策过程问题。
|
所以,折扣因子可以作为强化学习智能体的一个超参数进行调整,然后就会得到不同行为的智能体。
|
||||||
|
|
||||||
- 高冷的面试官: 请分别写出基于状态值函数的贝尔曼方程以及基于动作值的贝尔曼方程.
|
**2-2** 为什么矩阵形式的贝尔曼方程的解析解比较难求得?
|
||||||
|
|
||||||
答:
|
(1)首先,是有些马尔可夫过程是环状的,它并没有终点,所以我们想避免无穷的奖励。
|
||||||
|
|
||||||
- 基于状态值函数的贝尔曼方程: $v_{\pi}(s) = \sum_{a}{\pi(a|s)}\sum_{s',r}{p(s',r|s,a)[r(s,a)+\gamma v_{\pi}(s')]}$
|
(2)另外,我们想把不确定性也表示出来,希望尽可能快地得到奖励,而不是在未来的某个时刻得到奖励。
|
||||||
- 基于动作值的贝尔曼方程: $q_{\pi}(s,a)=\sum_{s',r}p(s',r|s,a)[r(s',a)+\gamma v_{\pi}(s')]$
|
|
||||||
|
|
||||||
- 高冷的面试官: 请问最佳价值函数(optimal value function) $v^*$ 和最佳策略(optimal policy) $\pi^*$ 为什么等价呢?
|
(3)接上一点,如果这个奖励是有实际价值的,我们可能更希望立刻就得到奖励,而不是后面才可以得到奖励。
|
||||||
|
|
||||||
答: 最佳价值函数的定义为: $v^* (s)=\max_{\pi} v^{\pi}(s)$ 即我们去搜索一种 policy $\pi$ 来让每个状态的价值最大。$v^*$ 就是到达每一个状态,它的值的极大化情况。在这种极大化情况上面,我们得到的策略就可以说它是最佳策略(optimal policy),即 $ \pi^{*}(s)=\underset{\pi}{\arg \max }~ v^{\pi}(s) $. Optimal policy 使得每个状态的价值函数都取得最大值。所以如果我们可以得到一个 optimal value function,就可以说某一个 MDP 的环境被解。在这种情况下,它的最佳的价值函数是一致的,就它达到的这个上限的值是一致的,但这里可能有多个最佳的 policy,就是说多个 policy 可以取得相同的最佳价值。
|
(4)还有,在有些时候,折扣因子也可以设为0。当它被设为0后,我们就只关注它当前的奖励。我们也可以把它设为1,设为1表示未来获得的奖励与当前获得的奖励是一样的。
|
||||||
|
|
||||||
- 高冷的面试官:能不能手写一下第n步的值函数更新公式呀?另外,当n越来越大时,值函数的期望和方差分别变大还是变小呢?
|
所以,折扣因子可以作为强化学习智能体的一个超参数进行调整,然后就会得到不同行为的智能体。
|
||||||
|
|
||||||
答:$n$越大,方差越大,期望偏差越小。值函数的更新公式? 话不多说,公式如下:
|
**2-3** 计算贝尔曼方程的常见方法有哪些,它们有什么区别?
|
||||||
$$
|
|
||||||
Q\left(S, A\right) \leftarrow Q\left(S, A\right)+\alpha\left[\sum_{i=1}^{n} \gamma^{i-1} R_{t+i}+\gamma^{n} \max _{a} Q\left(S',a\right)-Q\left(S, A\right)\right]
|
(1)蒙特卡洛方法:可用来计算价值函数的值。以本书中的小船示例为例,当得到一个马尔可夫奖励过程后,我们可以从某一个状态开始,把小船放到水中,让它“随波逐流”,这样就会产生一条轨迹,从而得到一个折扣后的奖励 $g$ 。当积累该奖励到一定数量后,直接除以轨迹数量,就会得到其价值函数的值。
|
||||||
$$
|
|
||||||
|
(2)动态规划方法:可用来计算价值函数的值。通过一直迭代对应的贝尔曼方程,最后使其收敛。当最后更新的状态与上一个状态区别不大的时候,通常是小于一个阈值 $\gamma$ 时,更新就可以停止。
|
||||||
|
|
||||||
|
(3)以上两者的结合方法:我们也可以使用时序差分学习方法,其为动态规划方法和蒙特卡洛方法的结合。
|
||||||
|
|
||||||
|
**2-4** 马尔可夫奖励过程与马尔可夫决策过程的区别是什么?
|
||||||
|
|
||||||
|
相对于马尔可夫奖励过程,马尔可夫决策过程多了一个决策过程,其他的定义与马尔可夫奖励过程是类似的。由于多了一个决策,多了一个动作,因此状态转移也多了一个条件,即执行一个动作,导致未来状态的变化,其不仅依赖于当前的状态,也依赖于在当前状态下智能体采取的动作决定的状态变化。对于价值函数,它也多了一个条件,多了一个当前的动作,即当前状态以及采取的动作会决定当前可能得到的奖励的多少。
|
||||||
|
|
||||||
|
另外,两者之间是有转换关系的。具体来说,已知一个马尔可夫决策过程以及一个策略 $\pi$ 时,我们可以把马尔可夫决策过程转换成马尔可夫奖励过程。在马尔可夫决策过程中,状态的转移函数 $P(s'|s,a)$ 是基于它的当前状态和当前动作的,因为我们现在已知策略函数,即在每一个状态,我们知道其采取每一个动作的概率,所以我们就可以直接把这个动作进行加和,就可以得到对于马尔可夫奖励过程的一个转移概率。同样地,对于奖励,我们可以把动作去掉,这样就会得到一个类似于马尔可夫奖励过程的奖励。
|
||||||
|
|
||||||
|
**2-5** 马尔可夫决策过程中的状态转移与马尔可夫奖励过程中的状态转移的结构或者计算方面的差异有哪些?
|
||||||
|
|
||||||
|
对于马尔可夫链,它的转移概率是直接决定的,即从当前时刻的状态通过转移概率得到下一时刻的状态值。但是对于马尔可夫决策过程,其中间多了一层动作的输出,即在当前这个状态,首先要决定采取某一种动作,再通过状态转移函数变化到另外一个状态。所以在当前状态与未来状态转移过程中多了一层决策性,这是马尔可夫决策过程与之前的马尔可夫过程的不同之处。在马尔可夫决策过程中,动作是由智能体决定的,所以多了一个组成部分,智能体会采取动作来决定未来的状态转移。
|
||||||
|
|
||||||
|
**2-6** 我们如何寻找最佳策略,寻找最佳策略方法有哪些?
|
||||||
|
|
||||||
|
本质来说,当我们取得最佳价值函数后,我们可以通过对Q函数进行最大化,从而得到最佳价值。然后,我们直接对Q函数取一个让动作最大化的值,就可以直接得到其最佳策略。具体方法如下,
|
||||||
|
|
||||||
|
(1)穷举法(一般不使用):假设我们有有限个状态、有限个动作可能性,那么每个状态我们可以采取 $A$ 种动作策略,那么总共就是 $|A|^{|S|}$ 个可能的策略。我们可以把他们穷举一遍,然后算出每种策略的价值函数,对比一下就可以得到最佳策略。但是这种方法的效率极低。
|
||||||
|
|
||||||
|
(2)策略迭代: 一种迭代方法,其由两部分组成,以下两个步骤一直在迭代进行,最终收敛,其过程有些类似于机器学习中的EM算法(期望-最大化算法)。第一个步骤是策略评估,即当前我们在优化这个策略 $\pi$ ,在优化过程中通过评估从而得到一个更新的策略;第二个步骤是策略提升,即取得价值函数后,进一步推算出它的Q函数,得到它的最大值。
|
||||||
|
|
||||||
|
(3)价值迭代: 我们一直迭代贝尔曼最优方程,通过迭代,其能逐渐趋向于最佳策略,这是价值迭代方法的核心。我们为了得到最佳的 $V^*$ ,对于每个状态的 $V^*$ 值,直接使用贝尔曼最优方程进行迭代,迭代多次之后它就会收敛到最佳策略及其对应的状态,这里是没有策略函数的。
|
||||||
|
|
||||||
|
|
||||||
|
## 面试题
|
||||||
|
|
||||||
|
**2-1** 友善的面试官:请问马尔可夫过程是什么?马尔可夫决策过程又是什么?其中马尔可夫最重要的性质是什么呢?
|
||||||
|
|
||||||
|
马尔可夫过程是一个二元组 $<S,P>$ , $S$ 为状态集合, $P$ 为状态转移函数;
|
||||||
|
|
||||||
|
马尔可夫决策过程是一个五元组 $<S,P,A,R,\gamma>$, 其中 $R$ 表示从 $S$ 到 $S'$ 能够获得的奖励期望, $\gamma$ 为折扣因子, $A$ 为动作集合;
|
||||||
|
|
||||||
|
马尔可夫最重要的性质是下一个状态只与当前状态有关,与之前的状态无关,也就是 $p(s_{t+1} | s_t)= p(s_{t+1}|s_1,s_2,...,s_t)$。
|
||||||
|
|
||||||
|
**2-2** 友善的面试官:请问我们一般怎么求解马尔可夫决策过程?
|
||||||
|
|
||||||
|
我们求解马尔可夫决策过程时,可以直接求解贝尔曼方程或动态规划方程:
|
||||||
|
|
||||||
|
$$V(s)=R(S)+ \gamma \sum_{s' \in S}p(s'|s)V(s')$$
|
||||||
|
|
||||||
|
特别地,其矩阵形式为 $\mathrm{V}=\mathrm{R}+\gamma \mathrm{PV}$。但是贝尔曼方程很难求解且计算复杂度较高,所以可以使用动态规划、蒙特卡洛以及时序差分等方法求解。
|
||||||
|
|
||||||
|
**2-3** 友善的面试官:请问如果数据流不具备马尔可夫性质怎么办?应该如何处理?
|
||||||
|
|
||||||
|
如果不具备马尔可夫性,即下一个状态与之前的状态也有关,若仅用当前的状态来求解决策过程,势必导致决策的泛化能力变差。为了解决这个问题,可以利用循环神经网络对历史信息建模,获得包含历史信息的状态表征,表征过程也可以使用注意力机制等手段,最后在表征状态空间求解马尔可夫决策过程问题。
|
||||||
|
|
||||||
|
**2-4** 友善的面试官:请分别写出基于状态价值函数的贝尔曼方程以及基于动作价值函数的贝尔曼方程。
|
||||||
|
|
||||||
|
(1)基于状态价值函数的贝尔曼方程: $V_{\pi}(s) = \sum_{a}{\pi(a|s)}\sum_{s',r}{p(s',r|s,a)[r(s,a)+\gamma V_{\pi}(s')]}$;
|
||||||
|
|
||||||
|
(2)基于动作价值函数的贝尔曼方程: $Q_{\pi}(s,a)=\sum_{s',r}p(s',r|s,a)[r(s',a)+\gamma V_{\pi}(s')]$。
|
||||||
|
|
||||||
|
**2-5** 友善的面试官:请问最佳价值函数 $V^*$ 和最佳策略 $\pi^*$ 为什么等价呢?
|
||||||
|
|
||||||
|
最佳价值函数的定义为 $V^* (s)=\max_{\pi} V_{\pi}(s)$ ,即我们搜索一种策略 $\pi$ 来让每个状态的价值最大。$V^*$ 就是到达每一个状态其的最大价值,同时我们得到的策略就可以说是最佳策略,即$ \pi^{*}(s)=\underset{\pi}{\arg \max }~ V_{\pi}(s)$ 。最佳策略使得每个状态的价值函数都取得最大值。所以如果我们可以得到一个最佳价值函数,就可以说某一个马尔可夫决策过程的环境被解。在这种情况下,其最佳价值函数是一致的,即其达到的上限的值是一致的,但这里可能有多个最佳策略对应于相同的最佳价值。
|
||||||
|
|
||||||
|
**2-6** 友善的面试官:能不能手写一下第$n$步的价值函数更新公式呀?另外,当 $n$ 越来越大时,价值函数的期望和方差是分别变大还是变小呢?
|
||||||
|
|
||||||
|
$n$ 越大,方差越大,期望偏差越小。价值函数的更新公式如下:
|
||||||
|
|
||||||
|
$$
|
||||||
|
Q\left(S, A\right) \leftarrow Q\left(S, A\right)+\alpha\left[\sum_{i=1}^{n} \gamma^{i-1} r_{t+i}+\gamma^{n} \max _{a} Q\left(S',a\right)-Q\left(S, A\right)\right]
|
||||||
|
$$
|
||||||
|
|||||||
Reference in New Issue
Block a user