强化学习笔记(3)-时序差分更新算法

本文介绍了时序差分更新算法,包括SARSA、期望SARSA和Q学习,用于解决回合制和连续性任务。在出租车调度案例中,通过SARSA算法训练模型,展示如何寻找最优策略。最后,讨论了Q学习的优化策略——双重Q学习,以减少估计偏差。

时序差分更新算法和回合更新算法一样都是利用经验数据进行学习,其区别在于时序差分更新不必等到回合结束,可以用现有的价值估计值来更新。因此时序差分更新既可用于回合制任务,也可用于连续性任务。

同策时序差分更新

从给定策略\pi的情况下动作价值函数的定义出发,我们可以得到:

q_{\pi}(s,a)=E_{\pi}[G_{t}|S_{t}=s, A_{t}=a]=E_{\pi}[R_{t+1}+\gamma G_{t+1}|S_{t}=s, A_{t}=a]=E_{\pi}[R_{t+1}+\gamma q_{\pi}(S_{t+1},A_{t+1})|S_{t}=s, A_{t}=a]

单步时序差分只需要采样一步,用U_{t}=R_{t+1}+\gamma q_{\pi}(S_{t+1},\cdot )来估计回报样本的值,这里U_{t}表示有偏回报样本,与回合更新中由奖励计算得到的无偏回报样本G_{t}相区别。

基于以上分析,我们可以定义单步时序差分目标为:

U_{t:t+1}^{(q)}=R_{t+1}+\gamma q(S_{t+1},A_{t+1})

这里的U的上标(q)表示是对动作价值定义的,下标t:t+1表示用(S_{t+1},A_{t+1})的估计值来估计(S_{t},A_{t})。如果S_{t+1}是终止状态,默认有q(S_{t+1},\cdot)=0。如果把单步扩展到多步,则n步时序差分目标定义为:

U_{t:t+n}^{(q)}=R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1}R_{t+n}+\gamma^{n}q(S_{t+n},A_{t+n})

类似于回合更新策略,单步时序更新可以表示为:

q(S_{t},A_{t})\leftarrow q(S_{t},A_{t})+\alpha[U_{t}-q(S_{t},A_{t})]

SARSA算法

最优策略的求解算法如下:

1. (初始化)q(s,a)\leftarrow任意值,s\in S, a\in A(s)。如果有终止状态,令q(s_{T},a)\leftarrow 0, a\in A

2.(时序差分更新)对每个回合执行以下操作

2.1(初始化状态动作对)选择状态S,再用策略\pi确定动作A

2.2 如果回合未结束(如未达到最大步数,S不是终止状态),执行以下操作:

2.2.1(采样)执行动作A,观测得到奖励R和新状态{S}'

2.2.2 用动作价值q({S}',\cdot)确定的策略决定动作{A}'(如使用\epsilon贪心策略)

2.2.3(计算回报的估计值)U\leftarrow R+\gamma q({S}',{A}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gzroy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值