目录
2.1 Markov Decision Process (MDP)
2.1.2 Markov Reward Process (MRP,马尔科夫奖励过程)
2.1.3 Markov Decision Process (MDP,马尔科夫决策过程)
2 马尔科夫决策过程
2.1 Markov Decision Process (MDP)
马尔科夫决策过程是强化学习里面的一个基本框架。一个状态转移满足马尔科夫,即如果一个状态转移到下一个状态只取决于其当前状态,而根之前的状态没有关系。未来的状态转移相对于过去是独立的,只取决于现在。
2.1.1 Markov Chain (马尔科夫链)
P为状态转移矩阵,表示agent在 这个状态转移到下一个状态 的概率。
对马尔科夫链进行采样,得到一串轨迹。
2.1.2 Markov Reward Process (MRP,马尔科夫奖励过程)
马尔科夫奖励过程是马尔科夫链加上了一个奖励函数,MRP = Markov Chain + reward
· 奖励函数 :
即到达某个状态后可以获得的奖励
· 折扣量
· Horizon 概念
同一个episode可以看作一个游戏环节或者整个轨迹的长度,是由有限个步数决定的。
· Return 概念
把奖励进行折扣后获得的收益
越往后的奖励折扣的越多,说明更希望得到当前的奖励。
·状态价值函数定义
在MRP中定义为Return 的期望,即从当前这个状态开始,之后有可能获得多大的价值。也可以看成一个对未来获得奖励的当前价值表现。当进入某个状态之后现在有多大的价值
·折扣量的意义
1.避免无穷的奖励
2.把不确定性表述出来
3.让奖励变得有价值,尽可能快的得到奖励而不是后面得到
4.从人的行为分析可知想要尽可能快的得到奖励
5.γ = 0 :只关注当前奖励
6.γ = 1 :未来获得的奖励和当前获得的奖励是一样
MRP举例:
当有了一些轨迹的实际Return后,怎么计算价值函数?
法1:蒙特卡洛采样:从 采样很多轨迹,计算Return后取平均,即为 的价值。
法2:贝尔曼等式(Bellman equation)
该等式定义了当前状态和未来状态的迭代关系,V(s′)表示未来某一个状态的价值,P (s′∣s) 表示当前状态转移到未来状态的概率。加上当前可以立刻得到的奖励R(s),组成Bellman equation
推导过程:
写成矩阵形式:
通过矩阵求逆求得V(只适用于状态很少的MRPs):
迭代方法求解 large MRPs:
1.动态规划的方法(Dynamic Programming)
通过一直迭代贝尔曼方程,当更新的状态和最后差距不大的时候(收敛),更新停止,输出最新的V’(s)作为当前的价值。
2.蒙特卡洛的方法(Monte-Carlo evaluation)
当得到一个马尔科夫奖励过程后,从某一个状态开始随机采样,得到一个轨迹,然后得到奖励,当积累到大量轨迹后,取平均奖励,作为该状态价值。
3.动态规划和蒙特卡洛的结合(Temporal-Difference learning)
2.1.3 Markov Decision Process (MDP,马尔科夫决策过程)
相比于MRP,MDP多了一个 action (descision),状态转移也多了一个条件a,价值函数也多了一个条件,不仅取决于当前状态,还取决于当前状态所采取的行为
· policy 策略()
表示 agent 采取行为的依据,agent 会依据策略 来选择动作。最常见的策略表达方式是一个条件概率分布 , 即在状态 s 时采取动作 a 的概率。此时概率大的动作被个体选择的概率较高.
当我们已知一个MDP和policy 的时候,可以把MDP转换成MRP
· MRP和MDP的区别
对于MDP,首先要决定采取某种行为,到达黑色的节点;到达黑色节点后,有多大的概率到达某一个状态,当前状态和未来状态转移过程中多了一层决策行为(由 agent 决定)。
2.2 MDP 价值函数
与 MRP 类似,但是期望是基于policy ,policy决定过后,通过对 policy 进行采样,计算期望得到价值函数
另外引入一个 q 函数(action-value function),即动作 a 带来的价值影响,即动作价值函数
价值函数和 q 函数之间的关系
可以得到动作价值函数 q 的贝尔曼方程
2.2.1 贝尔曼等式分解
8 9 = 11: 当前时刻 q 函数 和未来时刻 q 函数的关联
9 8 = 10: 当前状态的价值和未来状态价值的关联
2.2.2 Backup Diagram for
2.2.4 Policy evaluation
已知 MDP 和 policy π ,计算价值函数,用来评估策略会得到多大的奖励。也叫 prediction,预测当前采取的策略未来会产生多大的价值。
2.3 MDP的控制
强化学习的两个基本问题:
第一个问题是预测,即给定强化学习的6个要素:状态集S, 动作集A, 模型状态转化概率矩阵P, 即时奖励R,衰减因子γ, 给定策略π, 求解该策略的状态价值函数v(π)
第二个问题是控制,也就是求解最优的价值函数和策略。给定强化学习的5个要素:状态集S, 动作集A, 模型状态转化概率矩阵P, 即时奖励R,衰减因子γ, 求解最优的状态价值函数v∗和最优策略π∗。
动态规划求解(Dynamic Programming)
把一个问题分解,分解成最佳子结构(optimal substructure),当把子结构求得后,总共组成一个最优的解。
MDP是满足动态规划的要求的。
·Bellman equation里面我们把它分解成一个递归的结构。如果子状态得到一个值,未来状态和子状态是直接相连的,那么可以推算出来。
·价值函数储存最佳的解。
2.3.1 求解预测问题
使用动态规划来求解强化学习的预测问题,即求解给定策略的状态价值函数的问题。这个问题的求解过程我们通常叫做策略评估(Policy Evaluation)。
策略评估的基本思路是从任意一个状态价值函数开始,依据给定的策略,结合贝尔曼期望方程、状态转移概率和奖励同步迭代更新状态价值函数,直至其收敛(状态价值的改变很小),得到该策略下最终的状态价值函数。
由于已经知道policy function,可以简化成 MRP 的形式:
2.3.2 求解控制问题
Optimal Value Function (最优价值函数)
解决强化学习问题意味着要寻找一个最优的策略让 agent 在与环境交互过程中获得始终比其它策略都要多的收获,这个最优策略我们可以用 π*表示。一旦找到这个最优策略 π* ,那么就解决了这个强化学习问题。一般来说,比较难去找到一个最优策略,但是可以通过比较若干不同策略的优劣来确定一个较好的策略,也就是局部最优解。
如何比较策略的优劣呢?一般是通过对应的价值函数来比较的,也就是说,寻找较优策略可以通过寻找较优的价值函数来完成。可以定义最优状态价值函数是所有策略下产生的众多状态价值函数中的最大者,即 v*(s)。
同理也可以定义最优动作价值函数是所有策略下产生的众多动作状态价值函数中的最大者,即:
对于最优的策略,基于动作价值函数我们可以定义为:
策略搜索方法
·方法一:穷举
·方法二:策略迭代 (policy iteration)
在策略迭代过程中,我们循环进行两部分工作。
第一步是使用当前策略 π 评估计算当前策略的最终状态价值 v ,得到 v 函数后可以进一步推算出q函数,然后取q函数的极大化;
第二步改进策略,通过在q函数上做贪心搜索(greedy),进一步改进策略,更新策略π 接着回到第一步,一直迭代下去,最终得到收敛的策略 π* 和状态价值 v* 。
方法三:价值迭代 (value iteration)
和上一节相比,我们没有等到状态价值收敛才调整策略,而是随着状态价值的迭代及时调整策略, 这样可以大大减少迭代次数。此时我们的状态价值的更新方法也和策略迭代不同。现在的贝尔曼方程迭代式子如下:
小结
动态规划是我们讲到的第一个系统求解强化学习预测和控制问题的方法。它的算法思路比较简单,主要就是利用贝尔曼方程来迭代更新状态价值,用贪婪法之类的方法迭代更新最优策略。
动态规划算法使用全宽度(full-width)的回溯机制来进行状态价值的更新,也就是说,无论是同步还是异步动态规划,在每一次回溯更新某一个状态的价值时,都要回溯到该状态的所有可能的后续状态,并利用贝尔曼方程更新该状态的价值。这种全宽度的价值更新方式对于状态数较少的强化学习问题还是比较有效的,但是当问题规模很大的时候,动态规划算法将会因贝尔曼维度灾难而无法使用。因此我们还需要寻找其他的针对复杂问题的强化学习问题求解方法。
参考文章:
【强化学习纲要】2 马尔科夫决策过程_Wwwilling的博客-CSDN博客
强化学习(三)用动态规划(DP)求解 - 刘建平Pinard - 博客园