Reinforcement Learning - An Introduction强化学习读书笔记 Ch8.1-Ch8.3

本章从一个统一视角来考虑一系列的强化学习方法,将整合之前所讲的有模型方法和无模型方法。
基于模型的方法 具备环境模型,如动态规划和启发式搜索。
无模型方法 没有环境模型,如蒙特卡洛方法和时序差分方法。
有模型方法将规划作为其主要部分,无模型方法则主要依赖于学习。
两类方法的核心都是价值函数的计算,并且都基于对未来事件的展望,来计算一个回溯价值,然后使用它作为目标更新一个近似价值函数。

8.1 模型和规划

环境模型,是指agent用来预测环境对于其动作的反应,也就是给定一个状态和动作,作为环境的反应结果,模型会产生后继状态和下一个收益的预测。
分布模型 生成的是对所有可能结果的描述及其对应的概率分布。
样本模型 从所有可能性中生成一个确定的结果,这个结果通过概率分布采样得到。
分布模型可以用来生成样本模型,并且获得样本模型比获得分布模型容易得多,例如在掷骰子问题中,通过采样来得到结果并返回总和是容易的,但是要计算出所有可能的总和以及它们出现的概率是困难的。给定一个开始状态和动作,一个样本模型会产生一个可能的转移,而分布模型会根据发声的概率产生所有可能的转移。
规划 代表任何以环境模型为输入,并生成或改进与它交互的策略的计算过程。
在人工智能领域主要有两种规划方法:状态空间规划(在状态空间中寻找最优策略或实现目标的最优策略路径)、方案空间规划(规划是在“方案空间”中进行的,需要定义一些操作将一个“方案”即一个具体的决策序列)转换成另一个。方案空间规划包括进化算法和“偏序规划”,但很难有效地应用于随机性序列决策问题。

学习方法和规划方法的核心是通过回溯操作来评估价值函数,不同之处在于规划利用模拟仿真实验产生的经验,学习方法使用环境产生的真实经验,而进一步导致了如何评估性能、如何产生足够的经验等差异。
而使用通用的结构意味着许多思想和算法可以在规划化和学习之间迁移,特别是很多情况下,学习算法可以代替规划方法的关键回溯步骤,因为学习方法只需要经验作为输入,所以很多情况下可以被应用到模拟经验中。

8.2 Dyna:集成在一起的规划、动作和学习

对于一个规划agent而言,实际经验至少扮演了两种角色:
模型学习 可以用来改进模型(使模型和现实环境更精确的匹配)
直接强化学习(direct RL) 用于改善强化学习中的价值函数和策略
在这里插入图片描述
经验、模型、价值和策略之间可能的关系如图所示,其中与“规划”相关的是间接强化学习。
间接方法往往能更充分地利用有限的经验,从而获得更好的策略,减少与环境的相互作用;直接方法简单的多,可以不受模型的涉及偏差的影响。心理学和人工智能对于两种方法的争论主要在“原理认知”和“试错学习”哪个更重要,以及“主动的预谋性规划”和“被动的反应式决策”哪个相对而言更重要。
Dyna-Q包括了上图所示的所有过程,规划、动作、模型学习和直接强化学习,该过程会持续迭代。
在这里插入图片描述
该图中间一列代表agent和环境之间的基本交互关系,这些交互产生了真实经验。图左边的箭头表示的是直接强化学习操作,直接通过实际经验改善价值函数和策略;右边的箭头表示的是基于模型的过程,从实际经验中学习并通过仿真产生模拟经验。
在Dyna-Q中,同样的强化学习方法既可以从真实的经验中学习,也可以应用于模拟经验以进行规划,学习和规划是紧密结合的,它们分享几乎所有相同的计算资源,不同的知识它们的经验的来源。
下面给出了Dyna-Q算法流程的伪代码:
在这里插入图片描述
其中 M o d o l ( s , a ) Modol(s,a) Modol(s,a)表示基于“状态-动作”二元组 ( s , a ) (s,a) (s,a)预测的后继状态和收益。
直接强化学习由步骤d表示。
模型学习方法由步骤e表示。
规划由步骤f表示。
如果省略e步和f步,则剩下的算法就是单步表格型Q学习算法。
通常带规划的agent会比无规划的agent学习得更快,是因为如果没有规划那么每一步只会给策略学习增加一次学习机会,而有规划的时候,不用等到这一幕结束,就可以进行很多次的回溯更新计算,这些计算几乎可以回溯到最初状态,那么就能更快地进行学习。

8.3 当模型错误的时候

模型很可能是不正确的,因为在随机环境中只有数量有限的样本会被观察到,并且模型用来近似的函数的泛化能力不一定适合,又或者只是因为环境发生了改变而新的动态特性尚未被观察到。
在某些情况下,规划计算出的次优策略会使得我们很快发现并修正模型错误。
但是当环境变得比以前“更好”时,以前的正确的策略并没有反应出这种改善时,agent的学习就会遇到很大的困难,在这些情况下建模错误可能在很长一段时间甚至一直都不会被检测到。

这种问题是“ 试探”与“开发”之间的矛盾,试探意味着尝试那些改善模型的行为,而开发意味着以当前模型的最优方式来执行动作。实际应用中希望既能通过试探发现环境的变化,又不希望试探太多而导致平均性能大大降低。
一种启发式算法是对所有的“状态-动作”二元组进行追踪,记录它从上一次与环境进行真实交互以来过了多长时间,将这个时间代价加入到收益中,也就是越长时间没出现过的动作,越给它附上一个额外的收益来使得它可能被试探,因为时间越长,这个一直没出现过的二元组相关的环境动态特性就越可能产生变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值