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

来源:互联网 发布:面向接口编程 编辑:程序博客网 时间:2024/05/18 00:52

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算法比较小,即波动小。