一、Monte-Carlo Learning
(一)Monte-Carlo Reinforcement Learning
- MC方法可直接从经验中学习
- MC是model-free:不了解MDP转换/奖励
- MC从完整的episode中学到:no bootstrapping
- MC使用最简单的想法:value = mean return
- 警告:只能将MC应用于episodic MDPs
- All episodes must terminate
(二)Monte-Carlo Policy Evaluation
-
目标:从policy 规定的经验中学习
-
回想一下,回报是总折扣奖励:
-
回想一下,value function是预期的回报:
蒙特卡洛策略评估使用经验均值回报而非预期回报
(三)First-Visit Monte-Carlo Policy Evaluation
- 评估状态s
- 只统计状态s第一次出现在episode中时的长期回报
- 增量计数器
- 总收益增加
- 价值由平均回报估算
- 根据大数定律, as
(四)Every-Visit Monte-Carlo Policy Evaluation
- 评估状态s
- 统计状态s每一次出现在episode中时的长期回报
- 增量计数器
- 总收益增加
- 价值由平均回报估算
- 根据大数定律, as
(五)Incremental Monte-Carlo
1、Incremental Mean
序列的平均值可以递增计算,
是误差,平均值将会朝着误差的方向移动更新。
2、增量蒙特卡洛更新
- 在episode后逐步更新
- 对于每个具有回报的状态
- 在非平稳问题中,跟踪连续平均值(即忘掉旧episodes.)可能很有用。
我们的环境一直在变化,很久以前的episodes对于我现在没有什么用,可能还会拖累我们的更新。所以我们将1/N用代替,每次让值朝着比较新的return的方向更新,而不需要使用真正的平均值。
不会直接更新到平均值,平均值可能还没达到正确的程度。取一个恒定步长进行更新。
类似于常见的梯度下降法的更新公式
二、Temporal-Difference Learning
TD方法可直接从经验中学习
TD是model-free:的:不了解MDP转换/奖励
-
TD通过自举(bootsstrapping)从不完整的episodes中学习
- 利用估计来代表episode的剩余部分。
-
TD将猜测更新为猜测
- 更新最开始的猜想,得到后来的猜想
(一)MC and TD
- 目标:从策略下的经验中在线学习
- Incremental every-visit Monte-Carlo
- 朝着实际回报的方向更新价值
- 朝着实际回报的方向更新价值
- 最简单的时序查分算法:TD(0)
- 朝着估计回报的方向更新价值
- 被称为TD target
- 被称为TD error
(二)Driving Home Example
在这个例子中,reward是每一段行程消耗的时间(Elapsed Time)。过程不加折扣(),因此每个状态的回报就是从这个状态开始直到回家实际经过的总时间。每个状态的价值是剩余时间的期望值。第二列数字给出了遇到的每个状态的价值的当前估计值。
一种描述蒙特卡洛方法的步骤的简单方法是在时间轴上画出行车总耗时的预测值(最后一行数据)。箭头表示的是MC方法推荐的对预测值的改变。这个值正是每个状态的价值的估计值(预估的剩余时间)与实际值回报(真是的剩余时间)之差。例如,当你下高速时,你估计还有15分钟就能到家。但实际上你需要23分钟。此时就可以用公式
确定离开高速后的剩余时间估计的增量。这时的误差是是8分钟。假设步长参数是1/2,根据这一经验,离开高速后的预估剩余时间会增加4分钟。在当前这个例子中,这个改变可能过大了,因为堵在卡车后面知识偶然运气不好。无论如何,这种更新只能离线进行,即只有到家以后才能进行更新,因为只有到家你才知道实际的回报是多少。
是否真的需要知晓最终结果才能开始学习呢,假设有一天你回家也是预计30分钟到家,到途中碰到了严重的交通拥堵,离开办公司25分钟仍然在高速上寸步难行,这时你估计还有25分钟才能到家,总共50分钟。是否只有到家后才能增加对初始状态的估计值呢?如果使用蒙特卡洛方法,答案是肯定的,因为我们还不知道真正的回报。
但是根据TD的方法,我们可以立即学习,将初始估计得30分钟增加到50分钟。事实上,每一个估计都会跟着其后继的估计一起更新。回到例子,右图显示了根据TD规则推荐的总时间的预测值的变化。每个误差都与预测值在时序上的变化(即预测中的时序差分)成正比。
(三)Advantages and Disadvantages of MC vs. TD
-
TD可以在知道最终结果之前学习
- TD可以在每一步之后在线学习
- MC必须等到episode结束才能知道回报
-
TD可以在没有最终结果的情况下学习
- TD可以从不完整的序列中学习
- MC只能从完整序列中学习
- TD在持续(非终止)环境中工作
- MC仅适用于episode(终止)环境
(四)Bias/Variance Trade-Off
- 回报是的无偏估计。
- 真实TD target是的无偏估计。
这里的是真实的。贝尔曼方程得到的,理想状态下的。 - TD target是的有偏估计。
这里的是我们目前最符合实际的猜测。 - TD target的方差比回报低得多
- 回报取决于许多随机actions,transitions, rewards
- TD target取决于一个action,transitions, rewards
(五)Advantages and Disadvantages of MC vs. TD (2)
首先理解一下方差。
蒙特卡洛通过与环境交互得到序列的回报信息,然后用这些信息求平均,就可以得到估计得价值函数。但是每次采样得到的回报差别可能很大,因为在计算回报时每一步都会收到噪声干扰,导致方差很大。
偏差就是你对V有一些估计,这可能是错误的,并不是真实值。这不是干扰。
-
MC具有高方差,零偏差(在每一步转换都会有噪声干扰,得到受到干扰的reward,所以方差比较大)
- 良好的收敛性
- (具有函数近似)
- 对初始值不太敏感
因为我们不从初始值进行自举。开始的地方很重要,但是我会花更长的时间来调整你那些错得很厉害的值,把他们改成正确的值。但他不做自身循环。他不使用自己。 - 很容易理解和使用
-
TD方差低,有些偏差(因为只会受到一步干扰,所有方差较小)
- 通常比MC更高效
- TD(0)收敛至
- (但并非总是用近似函数)
TD里的偏差可能是的算法不起作用 - 对初始值更敏感
(六)Random Walk Example
随着episode的增多,开始趋近于真实的value(那条直线)。
Random Walk: MC vs. TD
从上图可以看出TD的效果比MC要好,RMS误差减小的很快。
调整不同的可以达到更好的效果。
(七)Batch MC and TD
- MC和TD收敛:,随着
-
但是对于有限经验的批处理解决方案呢?
- 例如:重复采样episode
- 将MC或TD(0)应用于episode
给定近似价值函数V,在访问非终止状态的每个时刻t,使用
或
计算相应的增量,但是价值函数仅根据所有增量的和改变一次。然后,利用新的值函数再次处理所有可用的经验,产生新的总增量,依此类推,知道价值函数收敛。我们称这种方法为批量更新,因为只有在处理了整批的训练数据后才进行更新。
AB Example
两种状态A,B; 没有折扣; 8个episode的经验
求
Certainty Equivalence
-
MC收敛到具有最小均方误差的解决方案
-
最适合观察到的收益
- 在AB示例中,
-
-
TD(0)收敛到最大似然马尔可夫模型的解
- 最适合数据的MDP的解决方案
- 在AB示例中,
- 最适合数据的MDP的解决方案
(八)Advantages and Disadvantages of MC vs. TD (3)
- TD利用马尔科夫性质
- 通常在马尔可夫环境中效率更高
- MC不利用马尔科夫性质
- 通常在非马尔可夫环境中更有效
(九)United View
1、Monte-Carlo Backup
蒙特卡洛所做的基本上是这里一个完整轨迹的取样,然后使用该样本来更新价值函数。
2、Temporal-Difference Backup
时序差分备份只有一步,我们对环境和动作进行采样,当在下一步结束时,看看价值函数,备份该价值函数。得到在一个步骤中发生的样本,不会一直走到尽头。
3、Dynamic Programming Backup
动态规划也是一步向前搜索,但我们没有取样,我们必须了解动态,我们使用这些动态来计算这个期望。做完整的备份来算出期望值。
4、Bootstrapping and Sampling
- Bootstrapping: 更新涉及估计
- MC不自举
- DP自举
- TD自举
DP和TD用了贝尔曼方程,对下一步状态进行估计。
- Sampling: 期望更新样本
- MC samples
- DP does not sample,穷举考虑每一个可能性
- TD samples
5、United View of Reinforcement Learning
为什么我们假设一步之后的值比一步之前更准确?为什么不转移到另一个方向,替代的算法会得到正确的答案吗?
不会得到正确的答案。事实上,即使你做了什么事情,比如让这些东西相互靠近,然后将TD误差等均方误差最小化,你找到了错误的答案,你实际上通过另一种方法得到了错误的答案。为什么我们给你直觉,直觉是,如果你采取一个步骤,你在某种意义上总是更准确一点,因为这一步是真实的一步,涉及到了真实回报,也是真实动态的一步,然后你估计你结束之处的价值函数,但是因为你已经包含了一个真正的动态和真正的回报,你在某种意义上更准确,如果你采取足够的这些步骤,真正的动态总是带你接近真理。
三、TD()
(一)n-Step TD
1、n-Step Prediction
让TD目标展望未来的n步
2、n-Step Return
- 考虑的n步收益:
-
定义n步收益
-
n步时序差分学习
3、大型随机游动示例
当n趋近于无穷,接近于蒙特卡洛,会得到很高的错误率,可能是训练时间较短。
n=1时,TD(0)表现很好。
4、平均n步回报
- 我们可以对不同n取n步收益的平均值
-
例如:平均两步和四步收益
- 合并来自两个不同时间步的信息
-
我们能否有效地结合所有时间步骤中的信息?
(二)Forward View of TD()
如果,则整个更新被简化为只有第一部分的更新,即单步时序差分更新;当时,则整个更新被简化为最后一部分的更新,即蒙特卡洛更新。
- The -return 结合了n步return
- 使用权重
可以把TD()看作平均n步更新的一种特例,这里的平均值包含了所有可能的n步更新,每一个按比例加权,这里,最后乘上正则项保证权值的和为1。产生的结果为回报。 - Forward-view TD()
(三)Weighting Function
参数表征了权值衰减的程度,因此就确定了在更新时回报算法往后看多远。
-回报的定义为
在到达一个终止状态后,所有的后续n步回报等于。可以将终止状态之后的计算项从主要的求和项中独立出来。
(四)Forward-view
- 向-return更新值函数
- 前向视图通过观察未来来计算
- 像MC一样,只能根据完整episodes进行计算
(五)Forward-View Large Random Walk
性能由最开始10个episode中19个状态的真实价值和估计价值的均方根误差的平均值来衡量,两种算法的性能相当。在两种情况下,都是在n-步算法的n和-回报的取中间值时获得最好的性能。
(六)Backward View
- Forward view提供理论
- Backward view提供了机制
- 从不完整的序列在线更新每一步
Eligibility Traces(资格迹)
- 信用分配问题:电铃还是电灯引起电击?
- 频率启发式:将信用分配给最频繁的状态
- 新近度启发式方法:将信用分配给最近的状态
- 资格迹结合了两种启发式方法:
资格迹是是一个和权值向量同维度的向量。权值向量是一个长期的记忆,在整个系统的生命周期中进行积累;而资格迹是一个短期记忆,其持续时间通常少于一个episode的长度。资格迹辅助整个学习过程,它们唯一的作用是影响权值向量,而权值向量则决定了估计值。
在 中,资格迹向量被初始化为0,然后再每一步累加价值函数的梯度,并以 衰减。 在这里是折扣系数,而为衰减率参数。资格迹追踪了对最近的状态评估值做出了或正或负贡献的权值向量的分量。这里的最近由 来定义。
我们回顾了我们访问的状态的时间,所以这是一个特定状态的资格迹,竖道是我们访问的那个时刻, 基本上每次我们访问那个状态,就增加资格迹,当我们不去访问它时,我们就指数地减少资格迹。
Backward View
- 保持每个状态的资格迹
- 更新每个状态s的值
- 与TD错误和资格迹成比例
当一个强化学习事件出现时,我们认为这些贡献“痕迹”展示了权值向量的对应分量有多少“资格”可以接受学习过程引起的变化。我们关注的强化学习事件是一个又一个时刻的单步时序差分误差。预测的状态价值函数的时序差分误差为
在中,权值向量每一步的更新正比于时序差分的标量误差和资格迹。
在时间上往回看,每个时刻我们计算当时的时序查分误差,并根据之前状态对当前资格迹的贡献来分配它。可以想象在一个状态流中,计算时序差分误差,然后将其传播给之前访问的状态。当时序差分误差和迹同时起作用时,使得式子得到更新。
(六)Relationship Between Forward and Backward TD
1、 and
- 当,只有当前状态被更新。
此时相当于时序差分。也就是TD(0)。
- 这完全等同于更新
TD(0)仅仅让当前时刻的前导状态被当前的时序差分误差所改变。对于更大的,更多的之前的状态会被改变,越远的状态改变越少,这是因为对应的资格迹更小。也可以这样说,较早的状态被分配了较小的信用来“消费”TD误差。
2、 and MC
- 当时,信用被推迟到了episode结束。
- 考虑具有离线更新的episodic环境
- 在episode过程中, 的总更新与MC的总更新相同
对于前视图和后视图 ,离线更新的总和是相同的
如果,那么之前状态的信用每步仅仅衰减。这个恰好和蒙特卡洛算法的行为一致。
3、MC and TD(1)
- 考虑在时间步k访问一次s的episode,
-
自访问以来的TD(1)资格迹折扣时间
-
TD(1)更新在线累积误差
-
到episode结束时,它累计了总误差
4、Telescoping in TD(1)
当时,将将TD误差缩合为MC误差
5、和
- 大致等于every-visit蒙特卡洛
- 误差是在线累计的,一步接一步
- 如果值函数仅在episode结束时离线更新,那么,总更新与MC完全相同
6、Telescoping in
7、Forwards and Backwards
- 考虑在步骤k中访问一次s的episode
- 自访问以来 资格迹折扣时间,
- Backward 在线更新累积误差
- 到episode结束时,它会累计的误差
- 对于对s的多次访问,会累积许多误差
8、Offline Equivalence of Forward and Backward TD
离线更新
- 更新在episode中累积
- 但在episode结束批量应用
9、Onine Equivalence of Forward and Backward TD
在线更新
- 更新将在episode内的每个步骤在线应用
- 前视和后视略有不同
- 新:精确的在线实现了完美的等效性
- 通过使用略有不同的资格迹形式
- Sutton and von Seijen, ICML 2014
10、Summary of Forward and Backward
= 表示episode结束时的总更新量相等。