LEARNING TO NAVIGATE IN COMPLEX ENVIRONMENTS 笔记

增强学习面临的一个问题是reward是稀疏的,所以增强学习通常都是需要大量的数据来训练才行。提高数据的学习效率一直都是增强学习努力要解决的问题,从2016年底到今年初,deepmind发布了两篇同样主题的论文来说明他们研究的一个方向,除了追求累计的reward的最大化以外,辅以多个副任务。就像游戏中的主线和支线一样。网络训练过程中,兼顾累积的reward最大化和辅助任务的loss函数降低,达到提高数据效率和训练效果的目标。Learning to navigate in complex environments就是这种思路。在导航任务中,需要定位,基本的解决思路是slam。而这篇论文则是要在完成主线的时候,顺便做点slam的工作,如果对于人来说,这好像是非常理所当然的,比如我要去某个房间拿个东西,一定要知道我现在在哪里,怎么去那个房间,或者不知道在那个房间,我要记住我去过的房间和路线。

对于agent来讲,困难就很多,环境中经常出现各种动态元素,需要agent用不同长短的时间来记忆不同的东西。对于目标,one-shot。对于不同的速度信号和视野中的障碍,要短时的记忆。同时也要长期记住环境的地形的一些因素,比如不同房间的边界和一些线索等等。

为了增加增强学习的数据有效性,完成找东西的任务,论文考虑了两个辅助任务,一个是对于agent输入的视觉图像给出深度信息,这样有利于避障和短期的路径规划。一个是要知道slam的loop closure,就是知道这个地方我曾经来过。

下面是游戏(deepmind你懂的)中的场景和maze的平面图:

LEARNING TO NAVIGATE IN COMPLEX ENVIRONMENTS 笔记_第1张图片

而下图是论文尝试的几种不同的模型用来做测试和结果对比的:

LEARNING TO NAVIGATE IN COMPLEX ENVIRONMENTS 笔记_第2张图片

a是一个FF A3C,基于cnn的A3C网络。b是一个典型的CNN+LSTM的网络。c是stacked lstm,同时把速度、前一个状态的动作和奖赏也作为输入,下文称做NavA3C。d是基于NavA3C网络,一种增加了通过CNN对深度的做预测Nav A3C+D1。一种是通过LSTM进行深度预测Nav A3C+D2。一种增加对loop closure的预测Nav A3C+L。把所有的辅助任务的loss都考虑在内的是Nav A3C+D1D2L

从下图的验证结果来看,Nav A3C+D2效果最好,static1和static 2达到human-level。在random 分别达到了91%和59%。static指目标的地点固定,但是机器人的起始点随机的设定。 random是指目标的地点和机器人的起始点都随机的设定。

LEARNING TO NAVIGATE IN COMPLEX ENVIRONMENTS 笔记_第3张图片

下图就是具体的网络图了,图里面对每一层和输入输出都表示出来了,不需要特别的解释。但是对于网络的训练是特别关键的,论文中提到价值和策略网络是通过增强学习来训练的。深度和loop closure是通过监督学习来训练的,所有的梯度汇合来一起更新网络。深度似乎是游戏本身可以提供的。深度并没有采用回归的网络,而是做成了分类的网络,针对每个像素的,所以输出是64*8,8分类。Loop closure似乎是根据平方差来确定的,但是不知道样本的标签是怎么来的。

LEARNING TO NAVIGATE IN COMPLEX ENVIRONMENTS 笔记_第4张图片

你可能感兴趣的:(LEARNING TO NAVIGATE IN COMPLEX ENVIRONMENTS 笔记)