论文阅读——learning to navigate in complex environments

introduction

challenge

在部分可观察环境中使⽤RL来学会导航,存在以下困难:
1.奖励稀疏
2.对于环境中各种不同的动态元素,需要agent⽤不同⻓短的时间来记忆不同的东⻄:
a. 对于⽬标, one-shot
b.速度信号和视野中的障碍,短时记忆
c.环境中的不变的部分(边界,线索),⻓时记忆

challenge

approach

challenge
为了增加增强学习的数据有效性,完成找东⻄的任务,论⽂考虑了两个辅助任务,⼀个深度图预测,输
⼊视觉图像给出深度信息,这样有利于避障和短期的路径规划。⼀个是有关slam的循环闭包,就是让
agent 预测这个地⽅我是否来过。

architecture

architecture
作者试了多种不同的⽹络结构图。 a.FF A3C是最简单的⽹络结构,只有⼀个CNN卷积神经⽹络(也就是
上图的enc)⽤于图像的解码encode,然后进⼊⼀个全连接层,输出动作和价值。 b.LSTM A3C增加了
LSTM记忆模块,即图像通过CNN提取了特征之后,输⼊到LSTM,使得整个⽹络能够记忆之前的图像信
息。 c.加⼊了上⼀次的动作信息a和上⼀次的回馈信息reward。构造了两层LSTM⽹络,第⼀层LSTM⽹
络输⼊图像特征信息和上⼀次的reward信息,第⼆层⽹络输⼊图像特征信息、上⼀个LSTM的输出,及
当前的价值和上⼀次的动作。然后说d.图
Details:
action : rotations,accelerate forward or backward or sideways,+ rotation
input:当前图像信息,上⼀次的动作信息a和上⼀次的回馈信息reward

auxiliary tasks

architecture
d.则是多加了两类loss.
深度图可以提供环境3D结构的⼤量信息,因此这⾥除了主线训练A3C之外,在CNN⽹络之后,⼜在外部
引出⼀个深度信息Depth的输出。作者通过实验证明,将深度信息作为输⼊,远没有作为⽀线预测任务
的效果好——⽽且这个好处是超出“导航”范围的(然后通过在仿真环境中获取深度数据单独训练CNN⽹
络。??)
然后对于深度预测有两种⽅法,⼀个是将它看成回归问题,⼀个是把他看成分类问题。在实际操作中,
作者将它分为8类这样做更快收敛。 (实验中,是$pow(\frac{depth value }{256},10)$,最后区间划分为

[0,005,0.175,0.3,0.425,0.55,0.675,0.8,1])
另⼀个是判断机器⼈是不是⾛过某⼀个位置,也就是是否进⼊循环loop中,这样有利于有效的探索和空间推理。对于当前点pt,存在之前⾛过的点pt’与之相似,输出为1,没有则为0。为了避免轨迹的连续点上的微⼩闭环,我们在添加额外条件
——中间点pt’‘远离pt。

experiments

experiments
下⾯是游戏场景:
过程是,起始点是随机的,然后⼀旦agent到达⽬标后,⻢上随机初始化在⼀个起点,然后继续寻路回
到⽬标,直到回到⽬标的时间固定位置。尝试了三种maze,goal 和fruit固定的静态maze,以及goal和
fruit会变的动态maze(每个回合中是不变的)
从下图的验证结果来看, Nav A3C+D2效果最好, static1和static 2达到human-level。在random 分别达到了91%和59%。

结论

这篇文章的亮点应该是将深度预测和判断循环作为附加任务提升了效果和训练速度,我猜测是否是因为将深度预测作为子任务引到了agent更加注意到深度信息??

找到了源码想跑跑看,如果加了额外的移动路障,比如考虑防撞——可以把撞到之前的行驶距离作为一个奖励??是否能够依旧有好的效果

此外,我找到了两篇相关的文章:
do deep reinforcement learning algorithms really learn to navigate

一篇将model的attention可视化,可以看出,重生时attention均匀分布,走廊中导航时,迅速发生变化,集中到某一区域,然后关注目标,apple,和贴纸

这篇文章,也尝试了test和train map不一样的情况,模型失败了。作者提出疑问,DRL真的学会寻路了吗?
learning to navigate in cities without a map

一篇将他用到了真实环境数据中,两层lstem,一层学习地区特定信息,当前位置和目标位置信息,一层学习区域不变性信息,因此,第一层可以换个城市就替换掉,而第二层时固定不变的