强化学习(七):n步自举法(多步引导法)
强化学习(七):n步自举法(多步引导法)
在之前,我们知道求解有限马尔可夫决策过程可以通过蒙特卡洛和时序差分来通过与环境多次交互从经验中学习,然而,蒙特卡洛方法在一些不满足分幕式任务或连续型任务上无法获得最终的收益,因此我们引入时序差分方法。时序差分的思想就是将下一时刻的状态价值或下一时刻的状态动作价值作为估计值,用于估计当前状态价值或动作价值。时序差分是一种结合采样和自举的方法,那么一种介于二者之间的则是n步自举,也叫做多步引导(n step bootstraping)。
本节将主要讲解n步时序差分。下面给出n步时序差分的回溯图:
白色圆圈表示状态,黑色圆圈表示(状态动作,Q)。当n=1时,即是上一节描述的TD(0),如果是分幕式任务,当n时幕的采样序列长度时,这时候则是经典的蒙特卡洛;如若n趋向于无穷,则是一种接近蒙特卡洛的近似。介于二者之间的则是n步自举。
1、n步时序差分的TD误差
我们知道,对于单步时序差分的状态/动作TD误差分别是 G t − V ( S t ) G_t-V(S_t) Gt−V(St) 和 G t − Q ( S t , A t ) G_t - Q(S_t,A_t) Gt−Q(St,At) ,其中 G t G_t Gt是当前预测值与下一时刻状态或动作的带有折扣的估计值的和,即: G t = R t + 1 + γ V t ( S t + 1 ) G_t = R_{t+1} + \gamma V_t(S_{t+1}) Gt=Rt+1+γVt(St+1) 或 G t = R t + 1 + γ Q t ( S t + 1 , A t + 1 ) G_t = R_{t+1} + \gamma Q_t(S_{t+1},A_{t+1}) Gt=Rt+1+γQt(St+1,At+1) 。事实上我们可以推广到接下来的n个时刻,我们记做 G t : t + n G_{t:t+n} Gt:t+n,例如关于状态价值的多步收益为:
G t : t + n = R t + 1 + γ R t + 2 + . . . + γ n − 1 R t + n + γ n V t + n − 1 ( S t + n ) G_{t:t+n} = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{n-1} R_{t+n} + \gamma^{n}V_{t+n-1}(S_{t+n}) Gt:t+n=Rt+1+γRt+2+...+γn−1Rt+n+γnVt+n−1(St+n)
动作价值的多步收益是:
G t : t + n = R t + 1 + γ R t + 2 + . . . + γ n − 1 R t + n + γ n Q t + n − 1 ( S t + n , A t + n ) G_{t:t+n} = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{n-1} R_{t+n} + \gamma^{n}Q_{t+n-1}(S_{t+n},A_{t+n}) Gt:t+n=Rt+1+γRt+2+...+γn−1Rt+n+γnQt+n−1(St+n,At+n)
其中 n ≥ 1 , 0 ≤ t ≤ T − n n\geq 1,0\leq t\leq T-n n≥1,0≤t≤T−n。我们可以发现,前 n − 1 n-1 n−1个时刻都是将实际的即时奖励作为n步收益的真实值,而最后时刻对应的奖励则是一个估计值。例如在预测阶段,当前时刻 t t t的状态价值 V ( S t ) V(S_{t}) V(St)的预测值是从当前时刻 t t t起一直到 t + n − 1 t+n-1 t+n−1执行相应动作获得的折扣即时奖励与第 t + n t+n t+n时刻的状态价值估计值的和。注意这里的 R t + 1 R_{t+1} Rt+1应为状态 S t S_t St的即时奖励,只不过其只有在 t + 1 t+1 t+1时刻才能获得。
2、n步时序差分预测
与单步TD(0)预测算法一样,只不过这里的TD误差是多步TD误差,算法流程如图所示:
(1)首先输入一个固定的策略,初始化相关的参数。对于某一个episode,从头开始进行采样。根据当前的状态执行相应的动作,观察并存储得到的收益以及下一时刻转移的状态。
(2)这里需要注意的是, τ = t − n + 1 \tau=t-n+1 τ=t−n+1表示一个临界时刻,在这个时刻之前,我们整个一幕的步数是达不到n-1步,所以不存在一个时刻是可以获得n-1步长的即时奖励(第n步在初始化时候是状态价值为0),因此在这之前仅仅只是遵循固定的策略做采样,并保存这些收益,并不对状态做更新。
(3)一旦达到或超越这个临界时刻,便执行下面的步骤:在第 t + n − 1 t+n-1 t+n−1时刻来更新 t t t时刻的状态价值 V t + n − 1 ( S t ) V_{t+n-1}(S_t) Vt+n−1(St),使用的估计值则是 t + n t+n t+n时刻的状态价值 V t + n − 1 ( S t + n ) V_{t+n-1}(S_{t+n}) Vt+n−1(St+n)。这里会有人不理解 V t + n − 1 ( S t ) V_{t+n-1}(S_t) Vt+n−1(St)下标的含义,直观理解就是在 t + n − 1 t+n-1 t+n−1时刻的 S t S_t St状态的价值,因为在前 n − 1 n-1 n−1步并没有更新这些值,而是等到过了 n − 1 n-1 n−1步后能够保证采样序列中存在一个状态使得其能够向后推延n步获得估计值,才更新这些状态价值。
更新的方法和单步时序差分一样,公式为:
V ( S t ) = V ( S t ) + α [ G t : t + n − V ( S t ) ] V(S_t) = V(S_t) + \alpha[G_{t:t+n} - V(S_t)] V(St)=V(St)+α[Gt:t+n−V(St)]
3、n步时序差分控制
在控制阶段,我们依然像单步时序差分一样,引入经典的算法——SARSA和Q算法。在多步引导过程中,它们被称为n步SARSA和Q( σ \sigma σ)。
在n步SARSA中,其前 n − 1 n-1 n−1步是即时奖励,最后一步则是对应的动作价值的估计值,n步回报:
G t : t + n = R t + 1 + γ R t + 2 + . . . + γ n − 1 R t + n + γ n Q t + n − 1 ( S t + n , A t + n ) G_{t:t+n} = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{n-1} R_{t+n} + \gamma^{n}Q_{t+n-1}(S_{t+n},A_{t+n}) Gt:t+n=Rt+1+γRt+2+...+γn−1Rt+n+γnQt+n−1(St+n,At+n)
n步SARSA的n步回报还可以写作:
G t : t + n = Q t − 1 ( S t , A t ) + ∑ k = t m i n ( t + n , T ) − 1 γ k − t [ R k + 1 + γ Q k ( S k + 1 , A k + 1 ) − Q k − 1 ( S k , A k ) ] G_{t:t+n} = Q_{t-1}(S_t,A_t) + \sum_{k=t}^{min(t+n,T)-1}\gamma^{k-t}[R_{k+1} + \gamma Q_k(S_{k+1},A_{k+1}) - Q_{k-1}(S_k,A_k)] Gt:t+n=Qt−1(St,At)+k=t∑min(t+n,T)−1γk−t[Rk+1+γQk(Sk+1,Ak+1)−Qk−1(Sk,Ak)]
同理对于n步期望SARSA,最后一步则是所有状态动作二元组价值的期望:
G t : t + n = R t + 1 + γ R t + 2 + . . . + γ n − 1 R t + n + γ n ∑ a π ( a ∣ S t + n ) Q t + n − 1 ( S t + n , a ) G_{t:t+n} = R_{t+1} + \gamma R_{t+2} + ... + \gamma^{n-1} R_{t+n} + \gamma^{n}\sum_{a}\pi(a|S_{t+n}) Q_{t+n-1}(S_{t+n},a) Gt:t+n=Rt+1+γRt+2+...+γn−1Rt+n+γna∑π(a∣St+n)Qt+n−1(St+n,a)
更新公式则是:
Q ( S t , A t ) = Q ( S t , A t ) + α [ G t : t + n − Q ( S t , A t ) ] Q(S_t,A_t) = Q(S_t,A_t) + \alpha[G_{t:t+n} - Q(S_t,A_t)] Q(St,At)=Q(St,At)+α[Gt:t+n−Q(St,At)]
可以通过回溯图理解这个过程,对应的n步SARSA算法如下所示:
这里需要注意的是,对策略进行预测时,需要考虑到开发与探索两者矛盾,通常遵循同一个贪心策略,例如 ϵ − \epsilon- ϵ−贪心策略。
4、n步时序差分离轨策略预测与控制
对于离轨策略下,采用基于重要度采样的方法,通过观察行动策略的经验和收益来预测目标策略,重要度采样比是:
ρ t : T − 1 = ∏ k = t T − 1 π ( A k ∣ S k ) p ( S k + 1 ∣ S k , A k ) ∏ k = t T − 1 b ( A k ∣ S k ) p ( S k + 1 ∣ S k , A k ) = ∏ k = t T − 1 π ( A k ∣ S k ) b ( A k ∣ S k ) \rho_{t:T-1}=\frac{\prod_{k=t}^{T-1}\pi(A_k|S_k)p(S_{k+1}|S_k,A_k)}{\prod_{k=t}^{T-1}b(A_k|S_k)p(S_{k+1}|S_k,A_k)}=\prod_{k=t}^{T-1}\frac{\pi(A_k|S_k)}{b(A_k|S_k)} ρt:T−1=∏k=tT−1b(Ak∣Sk)p(Sk+1∣Sk,Ak)∏k=tT−1π(Ak∣Sk)p(Sk+1∣Sk,Ak)=k=t∏T−1b(Ak∣Sk)π(Ak∣Sk)
如果只对n步进行重要度采样,则是 ρ t : t + n − 1 \rho_{t:t+n-1} ρt:t+n−1。
其中 b b b是行动策略, π \pi π是目标策略。
基于重要度采样的离轨策略的策略预测公式为:
V t + n ( S t ) = V t + n − 1 ( S t ) + α ρ t : t + n − 1 [ G t : t + n − V t + n − 1 ( S t ) ] V_{t+n}(S_t) = V_{t+n-1}(S_t) + \alpha\rho_{t:t+n-1}[G_{t:t+n} - V_{t+n-1}(S_t)] Vt+n(St)=Vt+n−1(St)+αρt:t+n−1[Gt:t+n−Vt+n−1(St)]
基于重要度采样的离轨策略的策略控制公式为:
Q t + n ( S t ) = Q t + n − 1 ( S t ) + α ρ t : t + n − 1 [ G t : t + n − Q t + n − 1 ( S t , A t ) ] Q_{t+n}(S_t) = Q_{t+n-1}(S_t) + \alpha\rho_{t:t+n-1}[G_{t:t+n} - Q_{t+n-1}(S_t,A_t)] Qt+n(St)=Qt+n−1(St)+αρt:t+n−1[Gt:t+n−Qt+n−1(St,At)]
事实上,其与之前的同轨策略不同地方就是多乘一个重要度采样比。
本节看似公式比较多,但基本上和单步TD很类似,只是在选择估计值上看的更长远。在基于表格型的有限马尔可夫决策时,n步时序差分是比较合理、有用的算法。基于这个还有一系列推广,比如n步树回溯、蒙特卡洛树回溯(MCTS)等,下一节将会主要对这两个算法进行讲解。
强化学习(七):n步自举法(多步引导法)相关推荐
- DeepMind 的新强化学习系统是迈向通用 AI 的一步吗?
作者 | Ben Dickson 来源 | 数据实战派 这篇文章是我们对 AI 研究论文评论的一部分,这是一系列探索人工智能最新发现的文章. 对于已经精通围棋.星际争霸 2 和其他游戏的深度强化学习模 ...
- 2019年伯克利大学 CS294-112《深度强化学习》第1讲:课程介绍和概览(笔记)
这里是CS294-112深度强化学习课程,我的名字叫Sergey Levine是这门课的授课老师,材料会放在课程主页:http://rail.eecs.berkeley.edu/deeprlcours ...
- 【17】 强化学习 17章 前沿技术
文章目录 名词 离轨策略 折扣过程 折扣系数 价值函数 广义策略迭代(4.6节)或者"行动器一评判器"算法 正文 17.1 广义价值函数和辅助任务 1.广义价值函数是什么? 2.辅 ...
- 第一章 强化学习介绍
Reinforement Learning Reinforcement Learning 强化学习讨论的问题是一个 智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大 ...
- 机器学习笔记(十六)强化学习
16.强化学习 16.1任务与奖赏 强化学习(reinforcementlearning)的过程就是机器通过一系列的动作和环境交互,从而得到最佳的动作序列.图示: 强化学习任务用马尔可夫决策(Mark ...
- 强化学习笔记5:learningplanning, explorationexploitation
1 learning & planning Learning 和 Planning 是序列决策的两个基本问题. 在强化学习中,环境初始时是未知的,agent 不知道环境如何工作,agent 通 ...
- 深度强化学习探索算法最新综述,近200篇文献揭示挑战和未来方向
©作者 | 杨天培.汤宏垚等 来源 | 机器之心 强化学习是在与环境交互过程中不断学习的,⽽交互中获得的数据质量很⼤程度上决定了智能体能够学习到的策略的⽔平.因此,如何引导智能体探索成为强化学习领域研 ...
- 强化学习蘑菇书Easy RL第二、三章学习(马尔可夫决策过程、表格型方法)
马尔可夫决策过程概述 Markov Process(MP)通常来说是未来状态的条件概率分布仅依赖于当前的状态.在离散随机过程里,我们需要把随机变量所有可能取值的集合放到一个状态空间里,在强化学习里,我 ...
- 【重磅推荐】哥大开源“FinRL”: 一个用于量化金融自动交易的深度强化学习库
深度强化学习实验室 官网:http://www.neurondance.com/ 论坛:http://deeprl.neurondance.com/ 编辑:DeepRL 一.关于FinRL 目前,深度 ...
- 【强化学习】《动手学强化学习》马尔可夫决策过程
[强化学习]<动手学强化学习>马尔可夫决策过程 一.随机过程.马尔可夫过程.马尔可夫奖励过程 二.马尔可夫决策过程 三.蒙特卡洛方法 四.最优策略与贝尔曼最优方程 一.随机过程.马尔可夫过 ...
最新文章
- NLP经典算法复现!CRF原理及实现代码
- 巴西CC成为FreeStor全球首个用户
- 把软件架构演进体现在栈上
- pip install升级包
- 前端路由和后台路由有什么区别?
- python分析数据走势_Python数据分析及可视化实例之个股走势预测(26)
- windows消息宏(转)
- 广州市出租车GPS数据(20210127)
- 人工智能之-产生式系统
- 在 MQL5 中使用 WININET。第二部分:POST 请求和文件
- vue实例的watch选项
- 解决Xcode真机测试时ineligible devices的问题
- 南华大学计算机学院赵畅,资源环境与安全工程2020年“砥砺六十载,逐梦新时代”元旦师生联欢会顺利举办...
- 深入理解卷积网络的卷积
- C++11 学习笔记(持续更新)
- 关于ARM的内核架构
- RPC VS REST
- BIOS密码清除方法--unlock6的使用.
- 50TB ExaDrive SSD投入商用,EB级容量闪存系统来日可期
- 手把手带你玩转Spark机器学习-使用Spark构建回归模型