顺序以周博磊老师强化学习纲要课程为主,增加王树森老师强化学习基础的知识补充,和蘑菇书的知识补充,作为学习记录
第②章:马尔科夫决策过程
主要内容:
- 马尔可夫决策过程
- MDP中的策略评估
- MDP中的控制:策略迭代和价值迭代
- 下图为内容链梳理
一、马尔可夫决策过程
- 马尔可夫性质:指一个随机过程在给定现在状态以及所有过去状态情况下,其未来状态的条件概率仅依赖于当前状态
- 马尔可夫过程(MP)/马尔可夫链
- 马尔可夫过程是指一组具有马尔可夫性质的随机变量序列,其中下一时刻状态仅取决于当前状态
- 马尔可夫链是指离散时间的马尔可夫过程
- 此时状态转移中还没有引入动作a,只是表示从当前状态转移到下一状态的概率
- 状态转移函数:
- 马尔可夫奖励过程(MRP)
- 马尔可夫链增加了奖励函数R
- 奖励函数R是一个期望,表示当我们到达一个状态时可以获得多大的奖励(此时只考虑状态s不考虑动作a)
- 奖励函数出现后引出回报(return)的概念,指奖励进行折扣后获得的奖励,是奖励的逐步叠加
- 使用折扣因子:
- 避免带环的马尔可夫过程产生无穷奖励
- 表现出模型评估的不确定性
- 更希望得到即时奖励而不是延迟奖励
- 是个超参数,需要进行调整(1/0)
- 状态价值函数V(s)
- 得到回报的概念后可以定义状态的价值
- 对于MRP来说,状态价值函数是折扣回报的期望,用期望来表示从当前这个状态开始可能获得多大价值。
- 然后是关于价值函数的计算:
- 少量状态:蒙特卡洛采样(MC) 贝尔曼方程(Bellman)
- 大量状态:动态规划 蒙特卡洛采样 时序差分学习(TD)
- 蒙特卡洛(MC)
- 少量:生成多轨迹,计算轨迹回报,取平均值作为价值
- 大量:抽一个或多个随机样本,并利用随机样本近似期望,属于随机算法,多用于近似期望。蒙特卡洛的结果通常是错的,但是离真实结果很接近
- 贝尔曼方程(动态规划方程)
- 贝尔曼方程定义了当前状态与未来状态之间的迭代关系,是即时奖励加上未来奖励的折扣总和。
- 对于少量状态,用向量形式直接推导可以直接得表达式
- 公式 推导
- 动态规划方法
- 动态规划:基于后续状态价值的估计更新现在状态价值的估计(自举迭代贝尔曼方程,直到价值函数收敛,得到某个状态价值)
- 贝尔曼方程变为贝尔曼更新
- 自举(bootstrapping):根据其他估算值更新估算值(高估)
- 收敛:最后更新的状态与上一个状态区别不大时
- 马尔可夫决策过程
- 相对于马尔可夫奖励过程增加了决策(动作)
- 状态转移函数改变:
- 奖励函数改变:
- 增加策略函数:
- 策略函数输出可以使各个动作的执行概率,也可以是确定的动作
- 已知马尔可夫决策过程和对应策略π,就可以把马尔可夫决策过程转换为马尔可夫奖励过程(消除动作a的影响)
- MDP与MRP区别
- 通过策略函数消除动作影响实现MDP转换为MRP,但是策略需已知,所以符号改变为:
- 状态转移函数:
- 奖励函数:
- 区别:在状态转移过程中增加了一层决策性(又增加一层概率)
- 通过策略函数消除动作影响实现MDP转换为MRP,但是策略需已知,所以符号改变为:
- 贝尔曼期望方程
- 以期望的形式形成类似贝尔曼方程的期望方程
- 同样是将价值函数拆分为即时奖励和后续折扣价值
- 与之前的区别是由于策略的引入增加了策略的概念
二、策略评估
- MDP的策略评估
- 已知马尔可夫决策过程以及要采取的决策后,计算状态价值函数V_π的过程就是策略评估(也称价值预测)
- 预测我们当前所采取的策略最终会产生多少价值。
- 关于MDP中的核心问题:预测与控制
- 预测:输入为MDP<S,A,P,R,γ>和策略π,输出价值函数V_π
- 控制:输入为MDP<S,A,P,R,γ>,输出最佳价值函数V^∗和最佳策略π^∗
- 也就是说,预测是给定一个策略,确定它的价值函数;控制则是在没有策略的前提下,确定最佳价值函数和最佳策略
- RL中,通过解决预测问题,进而解决控制问题
- 动态规划思想(DP)解决预测与控制
- DP适用于解决最优子结构问题和重叠子问题
- MDP符合动态规划要求,贝尔曼公式已经把MDP分解成了递归结构,价值函数可以存储并重用子问题的最佳解
- 动态规划应用MDP的规划问题而不是学习问题,环境必须完全已知,也就是说知道状态转移概率和对应的奖励(这里与Model-based RL有一定的相似性)
- 进行策略评估(预测)
- 将贝尔曼期望备份反复迭代,得到一个收敛的价值函数的值。(策略已经确定)(t表示迭代次数)
- 通过对上述公式进行迭代,最终得到每个状态的价值
- 这里是同步备份,每一次迭代都会完全更新所有的状态
- 备份(Backup):对于一个某一状态,当前价值与它的未来价值线性相关。
三、MDP的控制问题
- 关于控制:
- 只有MDP,如何寻找最佳策略,得到最佳价值函数
- 最佳价值函数:
- 搜索一种策略π让每个状态的价值最大
- 最佳策略:
- 当得到一个最佳价值函数,就认为该MDP环境可解
- 获得最佳动作:
- 所以关键是如何进行策略搜索:穷举、策略迭代、价值迭代
- 策略迭代和价值迭代是MDP控制的两种常见算法
- 策略迭代
- 包括两部分:策略评估和策略改进
- 保持当前策略不变,估算其状态价值函数
- 得到状态价值函数后,进一步推算其Q函数,对Q函数进行最大化(进行贪心操作argmax)步改进策略
- 存在初始策略π和初始状态价值函数V
- 策略更新公式:
- 包括两部分:策略评估和策略改进
- 贝尔曼最优方程
- 一直使用贪心操作,一定会得到更好或不变的策略,不会使价值函数变差。改进停止就会得到最佳策略,此时取让Q函数值最大化的动作,Q函数就会变成价值函数
- 意义:最佳策略下一个状态的价值,必须等于该状态下采取最好动作得到回报的期望(此时MDP达到最佳状态)
- 只有最优价值函数V^∗和最优动作价值函数Q^∗满足该方程
- 价值迭代
- 最优性原理:当策略π在状态s达到了最优价值,当且仅当任何能够从s到达的s^’都已经达到了最优价值。
- 动态规划方法进行优化:第一步执行最优动作,之后每一步都按照最优策略执行,则结果最优
- 价值迭代:将贝尔曼最优方程当做更新规则来进行,直接用该方程进行迭代,迭代多次直到价值函数收敛
- 关键问题是怎样求解最优价值函数(我们解决的是规划问题而非强化学习问题,因为知道环境如何变化)
- 策略迭代与价值迭代的区别
- 策略迭代先进行策略评估,在进行策略更新,反复迭代这两个步骤,每一次的策略都是有意义的
- 价值迭代直接通过贝尔曼最优方程进行迭代,寻找最佳价值函数,找到最佳价值函数后再提取最佳策略,类似价值的反向传播,中间的策略和价值无意义
- 策略迭代每次内部要计算出每次策略对应的精确值,价值函数则只是直接求最优价值函数,进而推出最优策略