DRL强化学习:

拥有回忆 提交于 2019-11-28 16:39:48

 


 

DRL前沿之:Hierarchical Deep Reinforcement Learning

来源:互联网 发布:域名隐私保护 免费 编辑:IT博客网 时间:2019/08/26 23:49

1 前言

如果大家已经对DQN有所了解,那么大家就会知道,DeepMind测试的40多款游戏中,有那么几款游戏无论怎么训练,结果都是0的游戏,也就是DQN完全无效的游戏,有什么游戏呢? 
这里写图片描述 
比如上图这款游戏,叫做Montezuma’s Revenge。这种游戏类似超级玛丽,难在哪里呢?需要高级的策略。比如图中要拿到钥匙,然后去开门。这对我们而言是通过先验知识得到的。但是很难想象计算机如何仅仅通过图像感知这些内容。感知不到,那么这种游戏也就无从解决。

那么这篇文章: 
Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motivation

时间:2016年4月20号  
来源: arXiv.org

尝试解决这种问题。

2 文章思路

它的思路很简单,就是弄一个两个层级的神经网络,顶层用于决策,确定下一步的目标,底层用于具体行为。 
这里写图片描述

不得不说,这个想法显而易见(本人也想过啦)但是,问题的关键是

如何确定内在的目标???

作者在paper中说了这么一段话: 
“We assume having access to an object detector that provides plausible object candidates.” 
说白了就是人工给定目标。然后再来训练。(本质上就是嵌套两个DQN)

那就没什么意思了。

这样从直观感觉可以训练出来。

但是意义就比较小了。

小结

这篇文章比较夸大的提出层次DRL来解决稀疏反馈的问题,但是实际上并不算真正的解决,中间的目标给定太过人工,不具备通用性。也不太可能像作者说的专门为这些游戏开发一个游戏目标物体检测算法。

但是,在否则这篇文章价值的同时,它也是有一定意义的。比如对于自动驾驶汽车,之前Nvidia完全的端到端训练实现自动驾驶,但是如果中间加入一个物体检测作为顶层决策环节,或许可以大大提高控制水平

而对于image caption这种问题,也是同样的道理。先物体检测,再进入RNN输出文字描述。

不过,个人却不喜欢这种做法。虽然会work,但不智能。

0  0

 


 

【强化学习算法 15】h-DQN

这里的h-DQN是一种hierarchical deep reinforcement learning方法。

原文传送门:

Kulkarni, Tejas D., et al. "Hierarchical deep reinforcement learning: Integrating temporal abstraction and intrinsic motivation." Advances in neural information processing systems. 2016. 

特色:

有一类比较困难的强化学习问题,其环境反馈是sparse和delayed的。这里的解决方法是构造一个两个层级的算法。这很符合人类完成一个复杂任务的模式,遇到一个复杂任务的时候,我们会把它拆解成一系列的小目标,然后逐个去实现这些小目标。通过这样的算法,文章能够学习到Montezuma’s Revenge游戏(一个简单的类似魔塔的小游戏,形式上也有点像超级马里奥)的策略。

分类:

model-free hierarchical RL, value-based, for specific task

过程:

考虑一个两层级的算法。

一个层级叫做meta-controller,它负责获取当前状态 

 ,然后从可能的子任务里面选取一个子任务 

交代给下一个层级的控制器去完成。它是一个强化学习算法,其目标是最大化实际得到的extrinsic reward之和, 

。在这里,这一层使用的是DQN方法,这一层Q-value的更新目标是

另一个层级叫做controller,它负责接收上一个层级的子任务 

 以及当前的状态 

,然后选择一个可能的行动 

 去执行。它也是一个强化学习算法,其目标是最大化一个人为规定的critic给出的intrinsic reward之和, 

。这里也使用DQN方法,更新目标为

算法框架如图所示

算法:


这个工作有哪些不足之处?

1. 对于特定的这个Montezuma’s Revenge任务做了太多特定的engineering,对于其他任务并不是普遍适用。比如critic的判断规定为“小人是否到达某个位置”这样的yes-or-no的判断条件;再比如由于子任务是需要小人到达某个位置,因此就先训练子网络让子网络基本上能知道如何操作才能使得小人移动到规定的地点。个人感觉,文章选择的这个任务属于本身就具有明显层级结构的任务,只要做了合适的分层,效果应该都还有。

2. 文章并没有对比其他hierarchical RL的算法(当然,也有可能2016年还没有特别多这方面可以用于对比的算法)。文中的算法是面向特定任务有做特定工程优化的算法,用于对比的baseline算法只是简单的DQN,这样的对比也不公平。

3. sub-goal的选取和学习是否可以更普适呢?最近看的有些文章感觉做的更好,比如reward稀疏我们就更多地利用环境反馈的state,我们希望个体能更多样地探索状态空间[1];再比如好奇心算法[2](还没仔细看)。其他的这些方法之后有空再聊。

 

[1] Eysenbach, Benjamin, et al. "Diversity is All You Need: Learning Skills without a Reward Function."arXiv preprint arXiv:1802.06070(2018).

[2] Burda, Yuri, et al. "Large-Scale Study of Curiosity-Driven Learning."arXiv preprint arXiv:1808.04355(2018).

 


 

 

 

 

 

 


 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!