强化学习(RLAI)读书笔记第七章n步自举(n-step Bootstrapping)

本文深入探讨强化学习中的n-step Bootstrapping,包括n-step TD预测、Sarsa及off-policy学习。n-step TD算法通过结合MC和一步TD的优点,提供更灵活的更新策略,如n-step Sarsa和tree-backup算法。这些方法在更新值函数时考虑了多步反馈,有效平衡了更新速度和精度。
摘要由CSDN通过智能技术生成

第七章:n-step Bootstrapping

这一章中我们把蒙特卡洛算法(MC)和一步差分算法(one-step TD)统一起来。MC算法和一步TD算法都不可能永远是最好的。这两个方法都是比较极端的形式,可能使用它们中间形式会更好一些。另一个看待n步TD算法的优势的角度是它解决了固定时间步骤的缺点。比如一步TD算法固定了每次选择动作和更新值的时间间隔。很多应用中想要把发生的改变快速更新到值函数中,但是bootstrap方法对于一个长时间段发生的重大状态变化又是最好的方法。一步TD法中固定了更新时间间隔是一步,所以需要妥协更新的速度和bootstrap的优势。但是n步TD算法可以在多步后进行bootstrap,这就解决了固定一步时间间隔的缺点。

n步更新的方法通常是eligibility traces方法的一个介绍。这里我们只考虑n步更新方法本身,后面再介绍资格迹(eligibility traces)。和以前一样先介绍prediction的方法然后介绍control的算法。

7.1 n-step TD Prediction

先考虑更新V值函数的蒙特卡洛算法。MC算法根据一个完整的episode序列,观察当前状态以后所有状态的反馈来用作对当前状态值函数的更新。一步TD算法确实基于下一步的反馈以及对一步后的状态的自举作为再往后状态的一个估计而用来更新值函数。而它们俩之间的算法会是基于大于一步的反馈加上剩下的自举作为值更新的目标。比如两步TD算法会基于采取动作后的两个反馈值以及两步后的值函数作为更新目标。三步更新也是类似。可以把他们的backup diagrams画出来如下:

这种使用了n步更新的方法依然是TD算法因为它使用了对之前某个状态的估计与其的差来更新那个状态的值函数。这种方法叫做n步TD法。更正式的,考虑一个状态值序列,S_{t},R_{t+1},S_{t+1},R_{t+2},...,R_{T},S_{T},MC方法中对值函数的估计是从时间t之后所有R的discounting的和也就是G_{t}\doteq R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+...+\gamma^{T-t-1}R_{T}。而一步TD算法是使用下一步的反馈和下一个状态的估计值,即G_{t:t+1} \doteq R_{t+1}+\gamma V_{t}(S_{t+1})。下标t:t+1表示的是只计算到t+1时间的反馈值。对于n步TD算法而言,其估计值为:

G_{t:t+n}\doteq R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+...+\gamma^{n-1}R_{t+n}+\gamma^{n}V_{t+n-1}(S_{t+n})

这个值也就是n步TD算法对于状态S_{t}值函数的估

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值