Skip to content

有模型预测和控制

📅 发表于 2025/08/28
🔄 更新于 2025/08/28
👁️ -- 次访问
📝 0 字
0 分钟
rl theory
#有模型
#动态规划算法
#价值迭代
#策略迭代
#贝尔曼最优方程
#最优性原理
#价值函数
#最佳价值函数
#最佳策略函数

有模型

已知环境信息,状态转移概率和奖励函数,就变成一个状态转移序列决策问题。

  • 熊出现:人可以逃跑 或 装死
  • 人装死:熊就一定会走开
  • 熊发怒:人逃跑,成功概率0.1,失败概率0.9

但现实情况是,很难知道环境信息,压根不知道熊到底会做什么,一切都未知,需要免模型算法。

有模型-策略评估

动态规划方法

动态规划的特性

动态规划问题有如下3个特性

  • 最优子结构/满足最优化原理

    • 问题可拆分为多个子问题,问题的最优解包含的子问题的解也是最优的。
      • 第一步:执行最优动作,后续每一步:都按最优策略去做,最终结果也是最优
    • 递归形态,当前状态与未来状态有迭代关系。
    Gt=Rt+1+γGt+1
  • 无有效性

    • 某阶段状态不受后面决策的影响,只有当前状态有关,即马尔科夫性质。
  • 重叠子问题

    • 子问题多次出现,其结果能被重复使用,可保存首次计算结果供后续使用
    • 存储状态价值V(s)

适用RL场景

  • 要求环境已知,适用于规划问题,而非学习问题
使用动态规划做策略评估

核心思想

  • 给定策略,通过贝尔曼期望方程来多次迭代,逐渐收敛价值函数
  • 求解出每个Vπ(s),k为迭代次数,
Vπk+1(s)=aAπ(as)Qπ(s,a)=aAπ(as)(R(s,a)+γsSp(ss,a)Vπk(s))
  • 给定策略后,可以把其简化为马尔可夫奖励过程,去掉a
Vπk+1(s)=Qπ(s,π(s))=R(s)+γsSp(ss)Vπk(s)

斯坦福GridWorld策略评估Case

有模型控制-寻找最佳策略

最佳价值和最佳策略

最佳价值函数和最佳策略

  • 核心思想:搜索一种策略,让每个状态的价值函数都取得最大值
  • 最佳价值
V(s)=maxπVπ(s)
  • 最佳策略
π(s)=argmaxπVπ(s)

通过最佳价值函数来获取最佳策略

π(as)={1,a=argmaxaAQ(s,a)0,
  • 最佳策略是稳定的,但不一定是唯一的,可能多种动作取得相同价值
最佳策略搜索方法

主要方法

  • 穷举法:不现实
  • 策略迭代
  • 价值迭代

策略迭代方法

策略迭代算法

策略迭代

核心思想

  • 策略评估:评估当前策略价值函数,推算出Q函数
  • 策略改进:通过对Q函数做贪心搜索,来改进策略
  • 不断踢皮球,评估策略、改进策略,一直迭代,直到收敛

策略评估

  • 同上文,迭代求解V函数和Q函数
Vπk+1(s)=aAπ(as)(R(s,a)+γsSp(ss,a)Vπk(s))Qπk+1(s,a)=R(s,a)+γsSp(ss,a)Vπk(s)

策略改进

  • 根据Q函数贪心改进策略,会变得更好会不变,但不会变差
πk+1(s)=argmaxaQπk(s,a)
  • 当停止改进后,取让Q函数取得最大值的动作,Q函数就变成V函数了
Qπ(s,π(s))=maxaAQπ(s,a)=Qπ(s,π(s))=Vπ(s)

贝尔曼最优方程

贝尔曼最优方程

策略改进结束后

  • 贝尔曼最优方程,最佳策略下的状态价值必须等于采取最佳动作回报的期望。
Vπ(s)=maxaAQ(s,a)V(s)=maxaAQ(s,a)
  • 当马尔可夫决策过程满足贝尔曼最优方程时整个状态已收敛,达最佳状态

Q函数贝尔曼最优方程

  • 通过Q函数贝尔曼方程+上述简单最优方程得到
Q(s,a)=R(s,a)+γsSp(ss,a)V(s)=R(s,a)+γsSp(ss,a)maxaQ(s,a)

V函数贝尔曼最优方程

V(s)=maxa(R(s,a)+γsSp(ss,a)V(s))

价值迭代方法

最优性原理

最优性原理

由动态规划策略评估可知

  • 当前动作最优,未来每一步动作都是最优,那么最终结果就是最优的。

最优性原理

  • 策略π(as)在状态s达到最优价值,意味着从s能到达的每一个状态s,该策略下都达到最有价值
Vπ(s)=V(s)Vπ(s)=V(s)

价值迭代算法

确认性价值迭代

核心思想

  • 通过贝尔曼最优方程来迭代计算Vπ(s),当所有子问题V(s)达到最优时,Vπ(s)也就达到最优
  • 无需策略,直接迭代贝尔曼最优方程,价值函数就能趋向于最佳价值函数,最后取其策略即可
V(s)maxa(R(s,a)+γsSp(ss,a)V(s))
  • 价值迭代类似于价值的反向传播
    • 每次迭代做一次传播,中间的策略和价值函数没有意义
    • 像是从一个状态反向传播到其他状态的过程,每次迭代只影响与之相关状态的过程

关键流程

  • 所有状态初始化:V0(s)=0

  • 从k=1迭代到H次,每次迭代如下:

    Qk+1(s,a)=R(s,a)+γsSp(ss,a)Vk(s)Vk+1(s)=maxaQk+1(s,a)
  • 迭代完成后,提取最优策略

π(s)=argmaxa(R(s,a)+γsSp(ss,a)V(s))
总访客数:   ·   总访问量:
PLM's Blog @ 2016 - 2025