论文笔记 Hierarchical Deep Q-Network from Imperfect Demonstration in Minecraft

摘要

论文作者通过使用Hierarchical Deep Q-Network(HDQfD)在MineRL比赛中获得第一名。HDQfD工作在不完美的示范上,并且使用了专家轨迹(expert trajectories)的分层结构。论文介绍了从示范数据中提取出一个元动作(meta-actions)和子目标(subgoals)的有效序列的程序。论文展示了一个结构化的任务依赖的replay buffer一个自适应优先级排序(adaptive prioritizing)技术。这让HDQfD得以逐渐从buffer中淘汰低质量的专家数据。论文还展示了HDQfD的细节。

介绍

深度强化学习在许多复杂的序列决策问题上取得重大成功,但这往往需要使用大量环境-样本训练。从示范中学习是一个熟知的解决方法,不过在复杂的非单一任务的环境中,未取得任何被认可的成功。这很程度上是因为在样本受限的真实世界领域,获取充足的高质量专家示范并非易事。

由于Minecraft这个电子游戏十分火热,MineRL比赛组织方得以获取并公布Minecraft领域最大的人类示范数据集。

解决MineRL最大的困难是示范的不完美和子任务的分层关系。

HDQfD工作在不完美的示范上,并且使用了专家轨迹(expert trajectories)的分层结构。每个子任务都由它自己简单的策略解决,这延伸了DQfD,依赖于一个结构化的缓冲区,并逐渐降低低质量专家数据的比例。

背景

用专家数据来探索领域的一种方法是behavior cloning(BC)。纯有监督学习BC方法会有分布飘移(distribution shift),因为agent贪婪地模仿示范动作。由于误差积累,agent会从示范状态飘走。

用专家数据来探索policy的另一种方法是使用传统深度学习方法,例如PPO、DDDQN等。

主要方法是使用从专家policy采样的示范轨迹来引导学习程序。既可以通过把示范放入一个replay buffer,也可以通过使用示范轨迹和有监督方法来预训练policy。

作者的最佳解决方案使用将专家数据注入agent replay buffer的方法,该方法是基于DQfD的。DQfD是强化学习领域的一个先进的方法,且附带专家示范。DQfD的主要思想是使用一个叫Deep Q-Network(DQN)的算法和一个损失函数J(Q)

 

Hierarchical Deep Q-Network from Demonstrations

动作和状态空间

使用动作离散化和一些为状态空间准备的技术,尤其是frameskip和framestack。

动作离散化:agent可以从Table 1中的10个动作中选择一个执行。例如,要完成摄像头右转10度,需要分解为两个(摄像头右转5度 + 攻击)动作。所有的“移动”-动作(前后左右)都是被允许的。

frameskip:在连续的若干步中,重复agent选择的一个动作。

framestack:使用当前和若干之前的环境状态的拼接来代替当前的状态。

专家数据的自适应比例

由于示范中存在许多噪声,空间离散化可以帮助behavior cloning有更好表现。可以通过增加一个改变专家数据比例的功能来处理噪声问题。

示范和agent的轨迹在Aggregating Buffer中被分开存储。Buffer控制着mini-batch中示范的比例。随着episode数的增加,示范的比例线性递减(见Figure 1)。

提取分层的子任务结构

作者分析发现,在专家轨迹中,agent拥有物品的出现有一个时间顺序(chronological order)。Figure 2展示了一个获取物品的可能顺序的例子。而且,这个顺序可以被当成一个语义网络(semantic network)。该语义网络有两种结点:为agent已获取物品列表定义的特定动作和子任务。作者认为每个子任务结点是一个强制的子目标,完成了该子目标agent才能继续前进。作者为每个子目标训练了一个单独的策略(strategy),可以被当成是一个独立agent的集合(a set of individual agents)。这些agents的任务就是获取足够数量的所需物品。

解决子任务的agent又可以被分为2个同时执行动作的agents(见Figure 3):在环境中执行基本动作的agent(POV或item agent)和执行语义动作(semantic action)的agent。语义动作:顺序执行语义网络对应结点的动作。

item agents的训练过程如Figure 4所示。训练过程中,所有的ObtainIronPickaxe环境的专家数据都被使用到。一个mini-batch中,对应于当前训练的item agent的帧(frame)被视为专家数据,而其他的帧被视为额外数据且其奖励无效。

 

实验

出了log agent以外,所有agent都在ObtainIronPickaxeDense数据集中获取的专家数据上训练。Table 2总结了每次提交的过程及结果。

第一次提交:只使用专家数据训练HDQfD agent。每个item agent使用10000步预训练。而log agent从Treechop环境数据学习。

第二次第三次提交:使用与环境交互来训练log agent:用Treechop环境数据训练200 episodes,然后用ObtainDiamondDense环境数据训练300 episodes(见Figure 5)。这两次提交的区别在于第三次提交的预训练步数更多。

另外,Table 3提供了在Treechop环境中测试,各算法的比较。

 

总结

在将来的工作中,作者计划为全分层端到端结构(full hierarchical end-to-end architecture)训练所有的item agents。另外,作者计划确保这些agents可以使用所有关于物品列表的子任务中的所有示范,以达到更好的表现。

 


Reference

  1. Skrynnik A , Staroverov A , Aitygulov E , et al. Hierarchical Deep Q-Network from Imperfect Demonstrations in Minecraft[J]. 2019.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值