• Exploration by random network distillation论文笔记


    Exploration by Random Network Distillation (2018)

    随机网络蒸馏探索

    0、问题

    这篇文章提出的随机网络蒸馏方法与Curiosity-driven Exploration by Self-supervised Prediction中提出的好奇心机制的区别?

    猜想:本文是基于随机网络蒸馏提出的intrinsic reward设计方式,好奇心是基于前向动力学模型的误差设计的intrinsic reward。

    1、Motivation

    依然旨在为智能体的探索提供一种有效的探索奖励,文章还提供一种灵活的结合intrinsic 和 extrinsic reward的方法。

    论文使用随机网络蒸馏算法。

    问题:以往的论文,探索奖励是基于智能体过去经验训练的网络的预测误差来量化新经验的新颖性,但是最大化这种预测误差的智能体,往往会被输入是随机的transition所吸引。举例来说就是,如果预测问题是在给定当前观察和动作(前向动态)的情况下预测下一个观察结果,那么对于一个transition(st,at,r,st+1),输入的st是例如电视雪花一样的随机噪声,那么预测出来的st+1肯定是误差最大的,因此智能体会陷入这种transition中。

    于是本论文提出新的方案解决这种问题,即在当前观测值的基础上预测一个固定的随机初始化神经网络的输出。

    为了结合exploration bonus和extrinsic rewards,文章引入了PPO算法的修改版本。

    2、方法

    Target网络:一个固定且随机初始化的网络。

    Predictor网络:在智能体收集的数据上进行训练的网络。

    Target网络对智能体的observation进行映射:
    f : O → R k f:\mathcal{O}\to\mathbb{R}^k f:ORk
    Predictor网络也对智能体的observation进行映射:
    f ^ : O → R k \hat{f}:\mathcal{O}\to\mathbb{R}^k f^:ORk
    并且通过梯度下降来最小化期望MSE:
    ∥ f ^ ( x ; θ ) − f ( x ) ∥ 2 \|\hat{f}(\mathrm{x};\theta)-f(\mathrm{x})\|^2 f^(x;θ)f(x)2
    以此来更新Predictor网络的参数θ,如果observation是Predictor网络没有训练过的,那么预测出来的误差将比较高,以此可以来作为智能体的探索奖励来推动智能体探索新颖的环境。

    3、预测误差的来源以及其他模型的问题

    1. 训练数据量。对于Predictor很少看到的类似的例子的observation,预测误差很高。
    2. 随机性。由于目标函数是随机的,因此预测误差很高。随机的Transition是前向动力学模型预测误差的来源。
    3. 模型错误规范。因为缺少必要的信息,或者模型类太有限,无法适应目标函数的复杂性,使得预测误差很高。
    4. 学习动力。因为优化过程未能在模型类中找到最接近目标函数的预测器,所以预测误差很高。

    因素1是能用预测误差来作为exploration bonus的原因。因素2会导致基于forward dynamics model的预测误差为exploration bonus的智能体陷入局部熵源中,例如“noisy-TV”。

    有论文提出了改进方法来避免因素2和3带来的不良影响问题,但是这些方法往往是计算昂贵的,难以扩展。

    而RND方法消除了因素2和3带来的不良影响,因为Target网络是被固定下来的,并且在Predictor网络的模型类内。

    tips:【伏羲讲堂】强化学习的探索方法简介 - 知乎 (zhihu.com)对此处有详细解释

    4、奖励和Observation归一化

    在不同的环境和不同的时间点,奖励的规模可能会有很大的不同,所以要对exploration bonus进行归一化处理。

    对observation进行归一,如果缺乏归一化处理,嵌入的方差可能会非常低,并且携带的关于输入的信息很少。

    5、实验

    1. 在纯intrinsic reward的实验中,发现non-episodic agent比episodic agent表现得更好,探索到的房间更多。

    2. 针对状态价值结合方式:
      V = V E + V I V=V_{E}+V_{I} V=VE+VI
      实验得出结论,在使用两个状态价值函数,即状态Extrinsic reward价值函数和状态intrinsic reward价值函数的情况下,使用non-episodic的intrinsic reward结合episodic的extrinsic reward这种组合要优于都是episodic的intrinsic reward和extrinsic reward的组合。

      而在episodic的设置中,使用单个的状态价值函数来直接估计VE和VI的结合,分别使用两个状态价值函数分别估计VE和VI效果差不多,但是文章的实验还是基于两个状态价值函数,这样做是为了将VE和VI与各自不同的特征结合起来。

    3. 实验研究extrinsic reward和intrinsic reward折扣因子的性能,发现外部奖励的折扣因子越高,性能越好,而对于内在奖励,它会损害探索。实验发现当extrinsic reward的折扣因子γE为0.999,intrinsic reward的折扣因子γI为0.99时,性能最好,但是当γI增加到0.999时,性能反而受到了损害。

    4. 实验表明在使用不同数量并行环境进行实验时,通过调整批次大小并保持内在奖励递减速率恒定,能够帮助策略模型有效地利用那些临时的、随着时间消失的内在奖励,以促进对于新颖状态的探索和学习。

    5. 实验表明基于RNN的策略要更频繁地优于基于CNN的策略,因为基于RNN的策略可以保持总结过去的状态。

    6、结论

    RND探索奖励足以处理局部探索,即探索短期决策的结果,如是否与特定对象互动或避免它。然而,涉及长期协调决策的全局勘探超出了RND方法的范围。

    文章指出未来仍然有需要继续研究的地方:举了个例子,在Montezuma’s Revenge游戏的第一关中,智能体要想通关必须打开进入一个由两扇门锁着的房间,这就需要两把钥匙。但是整个环境中,一共有6扇门和4把钥匙,这就意味着智能体需要保留4把钥匙中的2把,以留到最后的两扇门中来打开,但是打开前面4扇门又能够立即获得外部奖励,这意味着智能体需要有足够的内在奖励来使智能体放弃打开前4扇门中的2扇,以平衡由于早期使用密钥而失去的外部奖励。可是RND方法并不能很好的实现这种策略。

    7、RND+PPO算法的伪代码在这里插入图片描述

  • 相关阅读:
    C++ Primer学习笔记-----第十三章:拷贝控制
    亚马逊电动移动设备法规、标准和要求准则!!!
    SpringCloud(6):feign详解
    千兆以太网硬件设计及链路层 MAC 协议格式
    C语言之自定义类型_结构体篇(1)
    【深度学习】卷积神经网络之语义分割|FCN、DeepLab v1 v2 v3、U-Net、转置卷积、膨胀卷积
    43、Spring AMQP TopicExchange
    关于XCP标定CANape的界面安全会话DLL库
    python基础知识整理 08-多任务:进程
    Kafka 生产者解析
  • 原文地址:https://blog.csdn.net/gabriel1217/article/details/134338172