这算是一篇综述性文章,讲的不深,但是可以了解做planning都有哪些方法。这篇文章里全部使用了Q的说法,因为实现上可能是网络DQN,也可以是经典的Table。

Models and Planning

Models指的是Environment Models,可以分为两大类:

  1. 当前状态和采取的动作作为输入,输出下一个所有可能状态和奖励的分布
  2. 当前状态和采取的动作作为输入,输出下一个状态和奖励

Planning则是指对模型的合理使用,指定使用模型的"策略"(跟policy区分开,使用策略的意思),用最低的成本收敛到价值函数。

Dyna-Q: Integrating Planning, Acting, and Learning

如果能有完美的环境模型,就可以使用类似动态规划那样的planning方法来更快更好地收敛Q,但是实际上由于各种各样的原因,我们手上的模型可能没有那么完美。

于是乎,是不是可以先学出个差不多的环境模型,然后使用这个环境模型来学习Q?这当然可以,而且学到的Q也能用于优化策略从而生成更好的样本,然后更新环境模型和Q,这样持续的迭代下去。这样我们就有了两种更新Q的方式:

  1. 通过真实经验学到的环境模型生成的模拟样本更新
  2. 直接通过真实经验更新

这个过程可以描述为:

Tabular Dyna-Q

1 : I n i t i a l i z e Q ( s , a ) 1:\ Initialize Q(s,a) 1: InitializeQ(s,a) and M o d e l ( s , a ) Model(s,a) Model(s,a) for all s ∈ S s \in S s∈S and a ∈ A ( s ) a \in A(s) a∈A(s)
2 : D o f o r e v e r 2:\ Do \ forever 2: Do forever:
3 : ( a ) S ← 3:\ \qquad (a) \ S \leftarrow 3: (a) S← current (nonterminal) state
4 : ( b ) A ← ϵ 4:\ \qquad (b) \ A \leftarrow \epsilon 4: (b) A←ϵ-greedy ( S , Q ) (S,Q) (S,Q)
5 : ( c ) E x e c u t e 5:\ \qquad (c) \ Execute 5: (c) Execute action A A A, observe resultant reward R R R and next state S ′ S' S′
6 : ( d ) Q ( S , A ) ← Q ( S , A ) + α [ R + γ m a x a Q ( S ′ , a ) − Q ( S , A ) ] 6:\ \qquad (d) \ Q(S,A) \leftarrow Q(S,A) + \alpha[R+\gamma max_aQ(S',a)-Q(S,A)] 6: (d) Q(S,A)←Q(S,A)+α[R+γmaxa​Q(S′,a)−Q(S,A)]
7 : ( e ) M o d e l ( S , A ) ← R , S ′ 7:\ \qquad (e) Model(S,A) \leftarrow R,S' 7: (e)Model(S,A)←R,S′(assuming deterministic environment)
8 : ( f ) R e p e a t n 8:\ \qquad (f) Repeat \ n 8: (f)Repeat n times:
9 : S ← 9:\ \qquad \qquad S \leftarrow 9: S← random previously observed state
10 : A ← 10: \qquad \qquad A \leftarrow 10:A←random action previously taken in S S S
11 : R , S ′ ← M o d e l ( S , A ) 11: \qquad \qquad R,S' \leftarrow Model(S,A) 11:R,S′←Model(S,A)
12 : Q ( S , A ) ← Q ( S , A ) + α [ R + γ m a x a Q ( S ′ , a ) − Q ( S , A ) ] 12: \qquad \qquad Q(S,A) \leftarrow Q(S,A) + \alpha[R+\gamma max_aQ(S',a)-Q(S,A)] 12:Q(S,A)←Q(S,A)+α[R+γmaxa​Q(S′,a)−Q(S,A)]

算法里写的 A A A指代整个动作集合,实际运作时只会执行 a a a, S S S和 S ′ S' S′同理。原算法这样给的,我也不敢随便改。

算法里plannaing步骤中,

算法可以使用下面这张图描述:

Prioritized Sweeping

前面的Planning搜索是随机的,见算法 D y n a − Q Dyna-Q Dyna−Q第9行,第10行。下面要讲的优先扫除算法加入了优先队列,每次把变化最大的临近4个(可以单步直接到达)加进去,与广度优先搜索求最短路径有相似地方。

我觉得其实是贪心算法+beam search,维持search窗口大小为4,窗口大小对结果肯定有影响,所以实际做的时候可以尝试改变这个4.

Prioritized sweeping for a deterministic environment

1 : I n i t i a l i z e Q ( s , a ) , M o d e l ( s , a ) 1:\ Initialize Q(s,a), \ Model(s,a) 1: InitializeQ(s,a), Model(s,a), for all s , a s,a s,a and P Q u e u e PQueue PQueue to empty
2 : D o f o r e v e r : 2:\ Do \ forever: 2: Do forever::
3 : ( a ) S ← 3:\ \qquad (a) S \leftarrow 3: (a)S← current (nonterminal) state
4 : ( b ) A ← p o l i c y 4:\ \qquad (b) A \leftarrow policy 4: (b)A←policy(S,Q)
5 : ( c ) E x e c u t e 5:\ \qquad (c) Execute 5: (c)Execute action A A A; observe resultant reward, R R R, and state, S ′ S' S′
6 : ( d ) M o d e l ( S , A ) ← R , S ′ 6:\ \qquad (d) Model(S,A) \leftarrow R,S' 6: (d)Model(S,A)←R,S′
7 : ( e ) P ← ∣ R + γ m a x a Q ( S ′ , a ) − Q ( S , A ) ∣ . 7:\ \qquad (e) P \leftarrow |R + \gamma max_a Q(S',a) - Q(S,A)|. 7: (e)P←∣R+γmaxa​Q(S′,a)−Q(S,A)∣.
8 : ( f ) i f P > θ , t h e n 8:\ \qquad (f) if \ P > \theta, \ then 8: (f)if P>θ, then insert S , A S,A S,A into PQueue with priority P P P
9 : ( g ) R e p e a t n 9:\ \qquad (g) Repeat \ n 9: (g)Repeat n times, while PQueue is not empty:
10 : S , A ← 10:\qquad \qquad S,A \leftarrow 10:S,A← from P Q u e u e PQueue PQueue with top priority
11 : R , S ′ ← M o d e l ( S , A ) 11: \qquad \qquad R,S' \leftarrow Model(S,A) 11:R,S′←Model(S,A)
12 : Q ( S , A ) ← Q ( S , A ) + α [ R + γ m a x a Q ( S ′ , a ) − Q ( S , A ) ] 12: \qquad \qquad Q(S,A) \leftarrow Q(S,A) + \alpha[R+\gamma max_a Q(S',a)-Q(S,A)] 12:Q(S,A)←Q(S,A)+α[R+γmaxa​Q(S′,a)−Q(S,A)]
13 : R e p e a t , f o r a l l S ‾ , A ‾ 13: \qquad \qquad Repeat, \ for \ all \ \overline{S},\overline{A} 13:Repeat, for all S,A predicted to lead S:
14 : R ‾ ← 14: \qquad \qquad \qquad \overline{R} \leftarrow 14:R← predicted reward for S ‾ \overline{S} S, A ‾ \overline{A} A, S S S
15 : P ← ∣ R ‾ + γ m a x a Q ( S , a ) − Q ( S ‾ , A ‾ ) ∣ . 15: \qquad \qquad \qquad P \leftarrow |\overline{R} + \gamma max_a Q(S,a) - Q(\overline{S}, \overline{A})|. 15:P←∣R+γmaxa​Q(S,a)−Q(S,A)∣.
16 : i f P > θ t h e n 16: \qquad \qquad \qquad if \ P > \theta \ then 16:if P>θ then insert S ‾ \overline{S} S, A ‾ \overline{A} A into P Q u e u e PQueue PQueue with priority P P P

Trajectory Sampling

动态规划中不计算所有的节点,而是选择重要的进行更新。

Heuristic Search

在选择action时,通过一定深度的搜索得到最好的路径。这种方法在Model准确但是Q不准确的条件下可用。

Rollout Algorithms

As explained by Tesauro and Galperin (1997), who experimented with rollout algorithms for playing backgammon, the term rollout “comes from estimating the value of a backgammon position by playing out, i.e., rolling out,” the position many times to the game’s end with randomly generated sequences of dice rolls, where the moves of both players are made by some xed policy.

Rollout算法是决策时规划算法,它基于Monte Carlo Control(Model-Free Control里有一个小节的介绍),应用于从当前环境状态中采样迹(trajectories)。通过在大量从任何一个可能的动作上开始然后遵循策略的模拟迹上取平均来评估一个给定策略的动作价值。当动作-价值估计被认为是足够准确的时候,最高估计值的动作(或者动作集中的一个)被执行,然后在下一个状态重复该过程。

Monte Carlo Tree Search

蒙特·卡罗尔树搜索(MCTS)是一个最近的并且特别成功的决策时planning的例子。

蒙特·卡罗尔树搜索和Rollout算法类似,但是不是随机搜索而是有"指导"的搜索,目的是为了更大概率地获得更好的路径。

MCTS也是Alpha Go核心技术之一,同时不局限于棋类搜索,所有的可以进行不高效模拟的问题都可以使用这个方法。

MCTS并不是每次都从当前状态开始搜索,而是会利用以前搜索到的以当前状态为开始状态的高分路径作为候选。

MCTS可以分为如下图所示的四个步骤:

有三个注意点:

  • backup之后,rollout的路径不更新价值函数,只更新selection和expansion的路径
  • 上面四个步骤将按序循环执行,直到时间耗尽或者找不到新的状态
  • 并不是每次搜索都从当前节点开始,而是会服用出现过的当前节点的树结构

Planning and Learning相关推荐

  1. 强化学习系列(八):Planning and learning with Tabular Methods(规划和离散学习方法)

    一.前言 本章是对前面七章的一个总结归纳,前七章中我们首先介绍马尔科夫决策过程(MDP),而后介绍了求解环境模型已知的MDP的方法(model-based)--动态规划方法(DP),启发式搜索也属于这 ...

  2. 强化学习笔记-08 Planning and Learning

    前几篇我们介绍了一个重点概念model-base和model-free,其中model-base是建立在存在某个环境模型,从模型中可以获得状态.动作.奖励的转移信息,比如动态规划方法,当我们确定了状态 ...

  3. 深度强化学习综述论文 A Brief Survey of Deep Reinforcement Learning

    A Brief Survey of Deep Reinforcement Learning 深度强化学习的简要概述 作者: Kai Arulkumaran, Marc Peter Deisenroth ...

  4. 初探强化学习(10)强化学习中的一些术语(non-stationray,sample efficiency,planning和Learnin,Reward,off-policy和on-policy )

    1. 关于stationray 参考博客. Stationary or not 根据环境是否稳定.可以将强化学习问题分为stationary.non-stationary. 1.1 stationar ...

  5. 学习世界模型,通向AI的下一步:Yann LeCun在IJCAI 2018上的演讲

    来源:机器之心 摘要:人工智能顶会 IJCAI 2018 的主要议程于昨日在瑞典首都斯德哥尔摩开始.昨天上午,Facebook 首席人工智能科学家.纽约大学教授 Yann LeCun 在会上发表了近一 ...

  6. 3.5k欧/m,HIIT 博士后招募,共48个项目可选

    芬兰阿尔托大学和赫尔辛基大学正在寻找信息和通信技术多个领域的博士后研究人员,包括: artificial intelligence and machine learning(人工智能和机器学习) da ...

  7. 请查收!顶会AAAI 2020录用论文之自然语言处理篇

    文章目录 自然语言处理篇(NLP)         Question Answering         Sequence Labeling         Semantics and Summari ...

  8. 【ICML2018】63篇强化学习论文全解读

    https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/81230588 由全球最大中文IT社区CSDN与全球AI技术社区AICamp共同打造的 ...

  9. 多机器人系统仿真平台(摘要与目录)

    来源:http://www.robotdiy.com/article.php?sid=125 如何实现多个机器人之间的协调与协作已经成为当前机器人学研究的新课题之一.这篇论文针对多机器人系统的运动规划 ...

最新文章

  1. linux下的重要服务dns
  2. java i 原子_为什么i ++不是原子的?
  3. java Datasource,数据库连接池
  4. JavaScript知识点总结(二)
  5. 1.16 项目实例:Java图书信息查询
  6. click group list in left launchpad
  7. 转:JS动态加载JS
  8. 鸿蒙系统和你,鸿蒙系统面世,但与您所想的不一样
  9. 33. Implement strStr()
  10. 借助离散数学解决“哈弗大学智商测试”一题 --编程算法
  11. android测试tf卡读写速度,手机TF卡速度的研究经验sandisk/金士顿 C2,C4,C6测速软件测速图数据...
  12. wps页眉显示一级标题_wps页眉(WPS页眉设置为章节标题)
  13. 有关照度和亮度的单位
  14. 微服务究竟是“灵丹”还是“毒药”?
  15. Java Ucase_JSP页面中的变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)统称为JSP标记。...
  16. 5+App和uni-app在App开发上有何区别?
  17. 用汇编实现256以内的三个数的加减乘除运算
  18. Linux操作系统下复现github上的项目(一):下载项目、配置环境
  19. 4.17每日一题之杂物(洛谷c++)
  20. 放弃文华财经,自己编程实现期货程序化交易

热门文章

  1. unity学习之VideoPlayer
  2. 【超详细】计算机组成原理总结及思维导图
  3. 产品策划三:App注册登录系统策划方案
  4. 巨量广告:常见提量 提消耗 三大招
  5. Flutter开发之——动画,移动终端软件开发
  6. Highly-Resilient, Energy-Effificient Multipath Routing in Wireless Sensor Networks阅读报告
  7. RewriteCond指令格式(个人学习笔记仅供参考)
  8. Android写的播放器控制之starService和bindService混合使用知识总结
  9. DotC United Group赵漪涛:如何通过算法提升巨头蚕食剩下30%的广告市场?
  10. ppt幻灯片如何直接转换成pdf电子书