参考:蘑菇书-《EasyRL》
本文只是为了方便自己今后的查阅对原文做出的一些概括。
马尔可夫奖励过程MRP
马尔可夫奖励过程是马尔可夫链加上奖励函数,奖励函数R是一个期望,表示到达某一个状态时可以获得多大的奖励。如果状态数是有限的,那么 R 可以是一个向量。
其中定义了几个概念:
1.范围h(horizon):指一个回合的长度;
2.折扣回报Gt(discounted return):指把奖励r进行折扣再逐步叠加后所获得的奖励。
3.状态价值函数Vt(state-value function):对于马尔可夫奖励过程,状态价值函数被定义成回报的期望,即从这个状态开始,我们可能获得多大的价值。
方程
贝尔曼方程表示了当前状态与未来状态的迭代关系,也称为动态规划方程,对于上式,等价于如下公式:
参数解释:
s′:未来的所有状态;
s:当前状态;
R(s):当前状态所获得的奖励;
γ:折扣因子,用来折扣未来的奖励;
V(s′):未来某一状态的价值;
p:从当前状态到未来某一状态的概率。
解法
可以把贝尔曼方程写成矩阵的形式,通过矩阵运算求解,但状态很多的话很难求解,只适用于很小量的马尔可夫奖励过程(MRP)。
对于状态很多的马尔可夫奖励过程,使用迭代的方法,例如:
动态规划方法,蒙特卡洛方法,时序差分学习方法。
- 蒙特卡洛法
蒙特卡洛法使用采样的思想,从某个状态开始,采样一定量的轨迹,每段轨迹都会得到一个奖励,折扣后得到回报g,将回报积累起来,得到总的回报Gt,除以轨迹数量得到平均值,即为该状态的价值。
2.动态规划法
通过自举的方法不停迭代贝尔曼方程,当最后更新的状态与我们上一个状态的区别并不大的时候,更新就可以停止,输出最新的 V ′(s) 作为它当前的状态的价值。动态规划的方法基于后继状态价值的估计来更新现在状态价值的估计,根据其他估算值来更新估算值的思想,我们称其为自举。