【强化学习】各种算法分析及Eligibility Trace教程 - Go语言中文社区

【强化学习】各种算法分析及Eligibility Trace教程


Monte Carlo算法需要运行完整的episode,利用所有观察到的真是的reward(奖励值)来更新算法。Temporal Difference(TD)算法仅当前时刻采样的reward(奖励值)进行value function的估计。一个折中的方法就是利用n步的reward(奖励进行估计)。
Rn
TD(λ)算法:定义0<λ<1,使第k步的奖励乘以系数λk-1
实际中使用的TD(λ)算法称为backward view of the TD(λ) algorithm,该方法通常使用eligibility traces。
eligibility traces是一种将n步的信息备份起来的简洁方式。et用来存储信息,其值初始化为0,根据以下规则在每一步中更新:
et更新律
或见过另一种更新方法:
zk更新律
其中λ为衰减因子。该trace在每次访问状态中都会增加,并且上一时刻的trace指数衰减。在时刻t的temporal difference error可以表示如下:
TD error
因此,每一步中的value function更新律如下:
V更新律
对于TD(λ),如果λ=1,则变为Monte Carlo算法,因为考虑了所有时刻的reward返回值。如果λ=0,则变为TD(0)算法,只考虑当前时刻的reward返回值。
eligibility traces算法可以跟所有的model-free(无模型)算法结合使用。


MC使用准确的return reward进行value function的更新,TD使用Bellman equation对value function进行估计,将估计值value的目标值进行更新。TD由于每一步都可以更新,因此学习速度快,用作online learning。由于TD是估计值,因此算法是存在偏差的。但是由于TD对每一步进行估计,只有最近的一步对其有影响,而MC收到整个episode时间段中所有的动作影响,因此TD算法的方差相对MC算法比较小,即波动小。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_37895339/article/details/74644038
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 14:48:17
  • 阅读 ( 1156 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢