zoukankan      html  css  js  c++  java
  • DRL强化学习:


    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).


    exploration by random network distillation

    总结:
    1.采用随机生成的固定网络作为目标网络,另一网络不断最小化与其的误差,从而达到评估观察的新颖性
    2.介绍了一种灵活地结合内在和外在奖励的方法
    abstract
    我们为深度强化学习方法引入了一个探索方法,该方法易于实现,并且为执行的计算增加了最小的开销。奖励是神经网络预测由固定随机初始化神经网络给出的观察特征的误差。我们还介绍了一种灵活地结合内在和外在奖励的方法。

    1.Introduction
    但是当奖励稀疏且难以找到时往往会失败。实际上,为想要RL代理解决的每个任务设计密集奖励函数通常是不切实际的。在这些情况下,有必要以有针对性的方式探索环境.

    RL的最新发展似乎表明解决了极具挑战性的任务需要处理从并行运行多个环境副本获得的大量样本。鉴于此,期望具有在大量经验下可以很好地扩展的探索方法。然而,许多最近引入的基于计数,伪计数,信息增益或预测增益的探索方法难以扩展到大量并行环境。

    本文介绍了一种特别易于实现的探索奖励,适用于高维观测,可与任何策略优化算法一起使用,并且计算效率高,因为它只需要批量生成神经网络的单个正向传递经验。我们的探索奖金是基于以下观察:神经网络往往在类似于训练他们的示例上具有显着更低的预测误差。这促使了使用代理人过去经验训练的网络的预测误差来量化新体验的新颖性。

    最大化这种预测误差的代理往往会被吸引到过渡,如Noise TV.我们的解决方案,我们预测当前观察的固定随机初始化神经网络的输出。

    内在回报+外在回报的PPO在第一关中能找到24个房间中的22个。有时甚至能通关。

    2.Method
    通常有两种方法,一种是基于计数,另一种是基于它为相关的代理的转变的问题的预测误差。

    2.2Random network distillation
    本论文采用了一种随机生成预测问题的不同方法(预测观察的新颖性)。这涉及两个神经网络:一个随机初始并固定的目标网络f。另一个是预测网络f^θf^θ。其中预测网络通过最小MSE|f^θ(x;θ)f(x)|2MSE|f^θ(x;θ)−f(x)|2进行优化(目标网络是固定,不用更新的)。对于与预测器已经训练过的状态不同的新状态,预计预测误差会更高。

    2.2.1 Sources of Prediction Errors

    1.训练数据量:如果预测网络只观测过很少数据,那么预测误差就会很高
    2.随机性:预测误差很高,因为目标函数是随机的(任意不确定)。随机转移是前向动态预测的这种误差的来源。(Noise TV)
    3.模型的不适用:必要的信息丢失了,或者模型过于简单无法适应目标函数的复杂度导致预测误差很高
    4.学习动态。预测误差很高,因为优化过程无法在模型类中找到最接近目标函数的预测器。

    RND能够避免2,3。因为目标网络可以被选择为确定性的并且在预测器网络的模型类内

    2.3 Combining Intrinsic and Extrinsic Returns
    epoch结束得分清零的外部奖励以及得分不清零的内部奖励结合。我们的解决方案是观察到回报是线性的奖励等可以分别作为外在和内在收益的和 R=RE+RIR=RE+RI 来分解。因此,我们可以使用它们各自的返回值分别拟合两个值头 VEVE 和 VIVI ,并将它们组合起来给出值函数 V=VE+VIV=VE+VI 。同样的想法也可以用于将奖励流与不同的折扣因子组合。

    2.4 Reward and Observation Normalization
    使用预测误差作为探索奖励的一个问题是奖励的规模在不同环境之间和不同时间点之间可能变化很大,使得难以选择在所有设置中工作的超参数。为了使奖励保持在一致的范围内,我们通过将内在回报除以内在回报的标准差的运行估计来对其进行归一化。

    同样观察的归一化也很重要。在使用随机神经网络作为目标时至关重要,因为参数被冻结,因此无法适应不同数据集的规模。缺乏归一化可能导致嵌入的方差极低并且几乎没有关于输入的信息

    Discussion
    本文介绍了一种基于随机网络蒸馏的探测方法,并通过实验证明该方法能够对几种具有非常稀疏奖励的Atari游戏进行定向探索。这些实验表明,使用相对简单的通用方法可以在硬探索游戏方面取得进展,特别是在大规模应用时.

    我们发现RND探索奖励足以应对局部探索,即探索短期决策的后果,例如是否与特定对象互动或避免它。然而,涉及长期视野的协调决策的整体探索超出了我们的方法的范围。

    要解决Montezuma复仇的第一级,代理人必须进入一扇锁在两扇门后面的房间。整个楼层共有四个钥匙和六扇门。四个钥匙中的任何一个都可以打开六个门中的任何一个,但在此过程中消耗。因此,为了打开最后两扇门,代理商必须放弃打开两个更容易找到的门,并立即奖励它打开它们。
    为了激励这种行为,代理人应该获得足够的内在奖励来保存关键,以平衡外在奖励的损失,尽早使用它们。根据我们对RND代理人行为的分析,它没有足够大的动力来尝试这种策略,并且很少偶然发现它。

    解决这个以及需要高水平探索的类似问题是未来工作的重要方向。


    exploration by random network distillation

    看了半天这篇文章给的源码,大概思路能理解,但是要完全读明白OpenAI的代码,感觉有点难,没什么注释,还缺少文件。

    这篇文章读下来是基于18年Deepmind提出的一种不确定性度量法。

    随后OpenAI,就是用这个这个思想在这个内部奖励/好奇心/内在动机的思路中。

    并且取得了相对可观的效果。

    首先讨论了以下以前提出的基于table的counts based方法以及non-table的pseudo-counts的方法。

    之后开始介绍

    主要是随机初始化一个fixed以及random init的Net

    以及一个经过训练的预测Net

    优化目标

    很好理解,就是让预测网络和fixed的网络尽可能接近
    内部奖励被定义为:两个相减的差距。这个想法和我上一篇写的那个基于KL的k step 的方法极其类似。

    也就是经常见到的状态in reward会很低,相反会很高。

    伪代码如下:恕我实在读不太明白他的代码,但是整体思路和伪代码一样,只是细节上很有一些不同。


    RND(Exploration by Random Network Distillation)算法

    文章目录
    1. 1. 研究问题
      1. 1.1. Noisy-TV 问题
    2. 2. Random Network Distillation
    3. 3. 实验

    传统上,Agent 从他们的经验中学习下一状态预测模型,并将预测误差用作内在 reward。与现有方法不同,RND引入的内在 reward 基于预测下一状态下固定且随机初始化的神经网络的输出。在不熟悉的状态下,很难预测输出,因此奖励很高。 它可以应用于任何强化学习算法,实现简单而且高效。

    研究问题

    强化学习( RL )方法的目标是最大化策略的期望 return。当环境中有大量 reward 时,传统的探索方法很有效,这些奖励很容易通过随机的一系列行动找到,但是当奖励很少且很难找到时,这种方法往往会失效。

    经典的 DQN 算法在《蒙特祖玛的复仇》中无法取得任何得分。简单的探索策略极不太可能得到任何奖励,或者看到该级别的24个房间中的更多,从那时起,该游戏进展被许多人视为探索进步的代名词。

    之前有关 Curiosity-Driven 的文章大都是从经验中学习下一状态的预测模型,并将预测结果和实际结果的误差作为内在 reward 使用。

    基于 Curiosity-Driven 的 Next-State 预测模型
    p0

    Noisy-TV 问题

    Agent 被安排在一个迷宫里,它的任务是找到最高奖励的对象(和在超市里找奶酪的道理一样)。迷宫中有一台电视,而 Agent 有它的遥控器。但是电视只有几个台(每个台放的节目不一样),每按一下遥控器,电视就会随机切换频道。在这种情况下, Agent 应该怎么做呢?

    对于基于误差的好奇心方程来说,调换频道会导致较大的奖励,因为每次换台都是无法预测的,充满惊喜。重要的是,当所有频道轮换一遍之后,随机选择仍会让 Agent 感到惊奇, Agent 仍然可能会预测错误。所以, Agent 为了获得不断的惊喜、得到奖励,就会一直站在电视机前不走。所以为了避免这种情况,该如何重新定义好奇心呢?

    因为 TV 上的节目是随机播放的,也就是下一状态根本无法预测,之前的 Curiosity-Driven 的预测模型无法解决这个问题。在《蒙特祖玛的复仇》游戏里,基于 与现有方法不同,RND引入的内在 reward 基于预测下一状态下固定且随机初始化的神经网络的输出。在《蒙特祖玛的复仇》游戏中,基于 Curiosity-Driven 的算法会出现在两个房间来回切换的问题。

    Random Network Distillation

    对于预测模型,一般来说,预测误差和四个因素有关:

    • 预测器无法泛化,因为训练集不够
    • 预测目标是随机的
    • 缺少必要的输入信息
    • 模型能力不足以适应目标函数

    第一点是必要的,泛化能力差就代表了预测误差高也就是好奇心高。第二点导致到了Noisy-TV问题,应该避免。同样的,第三点和第四点也要去除。

    于是提出了RND算法,引入的内在 reward 是基于预测下一状态下 固定且随机初始化的神经网络 的输出。
    p1

    通过两张图片的对比可以发现,之前的 Curiosity-Driven 算法输入是 (Oi,ai),输出是下一状态的预测 fi+1^,对于 Noisy-TV 问题,下一状态 fi+1^ 是无法确定的,自然也就无法预测,永远会算出一个很高的好奇心,对应了第二点。

    RND模型预测的输出是确定的,规避了第二点。为了避免三号和四号因素,RND 选择和目标网络相同的架构

    实验

    超级马里奥:

    • Agent通过了11关,找到了许多隐藏的房间,并打败了库巴大魔王。

    蒙特祖玛的复仇:

    • 最好成绩,当然是24个房间都攻破,顺利通过第一关,得分17.5k。
    • 并且,多数情况下,智能体都能解锁20-22个房间,得分14.5k。
    • 对比一下,人类平均分是4.7k。

    等等

    REF:


    Yumho

    幽幽微醺淡淡咖啡香

    所有文章 关于我
     
     
       

     Information-Directed Exploration for Deep Reinforcement

    Abstract: Efficient exploration remains a major challenge for reinforcement learning. One reason is that the variability of the returns often depends on the current state and action, and is therefore heteroscedastic. Classical exploration strategies such as upper confidence bound algorithms and Thompson sampling fail to appropriately account for heteroscedasticity, even in the bandit setting. Motivated by recent findings that address this issue in bandits, we propose to use Information-Directed Sampling (IDS) for exploration in reinforcement learning. As our main contribution, we build on recent advances in distributional reinforcement learning and propose a novel, tractable approximation of IDS for deep Q-learning. The resulting exploration strategy explicitly accounts for both parametric uncertainty and heteroscedastic observation noise. We evaluate our method on Atari games and demonstrate a significant improvement over alternative approaches.

    >>>  


  • 相关阅读:
    20199319 《深入理解计算机系统》第一章学习总结
    速读《深入理解计算机系统》
    《文献管理与信息分析》快速学习
    速读《构建之法(第三版)》 20199319
    2019-2020-1 20199319《Linux内核原理与分析》第六周作业
    2019-2020-1 20199319《Linux内核原理与分析》第五周作业
    2019-2020-1 20199319《Linux内核原理与分析》第四周作业
    2019-2020-1 20199319《Linux内核原理与分析》第三周作业
    2019-2020-1 20199319《Linux内核原理与分析》第二周作业
    2019-2020-1 20199319《Linux内核原理与分析》第一周作业
  • 原文地址:https://www.cnblogs.com/cx2016/p/11415855.html
Copyright © 2011-2022 走看看