本章介绍两种免模型预测方法,蒙特卡洛和时序差分。
4.1 有模型和免模型
状态转移概率已知为有模型算法,如动态规划算法。但对大部分智能体来说 环境是未知的,成为免模型算法。
具体来说,有模型强化学习先尝试学习一个环境模型,可以是环境的动态或奖励。优点是可以不与真实环境交互进行学习。但往往不完美或较复杂。而免模型直接学习在特定状态下执行特定动作的价值或优化策略。它直接从与环境的交互中学习,不需要建立任何预测模型。优点是更直接,缺点是需要大量交互。除了动态规划,均为免模型。
4.2 预测与控制
既然是免模型的,则状态转移概率未知,要去近似环境的状态价值函数,等价于状态转移概率,这个过程为预测。目的是估计或计算环境中的某种期望值,如状态价值函数V(s)或动作价值函数Q(s,a)。
控制的目标是找最优策略,最大化期望的回报。涉及两个交替步骤:策略评估(使用当前策略估计值函数)和策略改进(基于当前值函数跟新策略)。
实际应用中预测与控制经常交织在一起。
4.3 蒙特卡洛估计
为免模型预测价值函数的方法之一,本质是统计模拟方法。比如我们有一袋豆子,把豆子均匀地在一定范围内朝这个图形上撒,撒到足够多的数量时数一下这个图形中有多少颗豆子,这个豆子的数目就是图形的面积。当豆子越小撒的越多的时候,结果就越精确。此时我们借助计算机程序可以生成大量均匀分布坐标点,然后统计出图形内的点数,通过它们占总点数的比例和坐标点生成范围的面积就可以求出图形面积。
强化学习如何使用蒙特卡洛预测状态价值函数的呢?
R是环境给到智能体的,γ是参数,所以V可以手动计算。假设一个最短路问题,m*n的网格。此情况下,我们想知道某个网格即某个状态代表的价值,可从这个网格出发搜集到其他所有网格之间可能的轨迹。考虑如图情况,规定机器人向右或向下走,分别用a1和a2,起点(0,0),初始状态S0=s1,终点s4.每一步的奖励-1,γ=0.9.
如果要计算s1的价值V(s1),先搜集到其他状态的所有轨迹,如到s2的{s1,a1,r(s1,a1),s2},记为1,对应回报
。
同样可以计算出其他状态的价值函数
蒙特卡洛方法的思路是我们可以采样大量的轨迹,对于每个轨迹计算对应状态的回报然后取平均近似,称之为经验平均回报。根据大数定律,只要采样的轨迹数量足够多,计算出的经验平均回报就能趋近于实际的状态价值函数。当然,蒙特卡洛方法有一定的局限性,即只适用于有终止状态的马尔可夫决策过程。
实际跟新价值函数:
对应到蒙特卡洛:
4.4 时序差分估计
基于经验的动态规划,结合了蒙特卡洛和动态规划。
单步时序差分,这个更新过程使用了当前奖励和后继状态估计,类似于蒙特卡洛,同时将下一状态的值函数作为现有状态值函数的一部分来估计跟新现有状态值函数,利用了贝尔曼方程。此外,时序差分还结合了自举思想,即未来状态价值是通过现有估计(时序差分目标)进行计算。可以将问题分解成只有一步的预测,简化计算。
为时序差分误差。因此时序差分方法在实践过程中会把终止状态单独做一个判断,即将对应未来状态的估计值设置为 ,然后更新当前状态的估计值,这个过程也被称作回溯。
4.5 时序差分和蒙特卡洛比较
4.6 n步时序差分
把时序差分拓展,由向前自举一步调整为两步。利用两步的回报来跟新状态价值,n步即为n步时序差分。
n趋于无穷为蒙特卡洛,可以引入参数权衡。常见的选择方法:
- 网格搜索
- 随机搜索
- 自适应搜索
- 交叉验证
- 经验取值