- 问题定义
在真实世界中进行无定位辅助,类似于人直觉长距离导航。输入为当前的视觉输入和目标地点。输出就是接下来应该怎么走,才能到达目的地。PS:Navigation相比于planning来说更加粗糙,就是不需要具体到某个地点,而是一个大概的方向确定。
- 问题解决
使用DRL,定义状态:当前视觉输入;定义动作:五个离散动作,快慢向前,这个应该是由Google Map采集地图的摄像头确定的;奖励:最开始的是由当前agent的位置到目标距离的最短路径决定,成比例的,应该是距离越远,给的reward越小;另外走的步数会给予更高的奖励(我觉得走的步数越多,给予的奖励应该是更多加个负号,比较DRL的目标是最大化reward,步数越多可不是好事情,比如一直围绕某个建筑物,步数非常多,这不是我们希望看到的优化结果)输入的目标定义,这个定义的方法有很多,比如给GPS位置,给定目的地周围的视觉形态,这篇论文是使用周围五个最近的landmark确定的,landmark是确定的,任何一个地点周围五个landmark也是确定的,所以使用这种方法,是对目的地进行了一种编码表示,数据压缩吧。这个逼我给满分~
policy:P(a|s,g) 给定当前输入的图片和目的地的状态表示,接下来的动作;
value function:E(s,g) 在该状态下,已知目的地,它的期待奖励,这个东西是为了指导policy那块的network更快收敛的。
- 训练心得
Deepmind的paper就是看上去很高大上,然后更多是提出问题,给出benchmark,自己复现吧。当然,考虑到需要的计算量和实用性,更多小伙伴应该就是看看它训练的时候网络和技巧,定义DRL怎么做的,很少会去复现这些东西。
迁移能力:
使用子网络,来实现迁移学习。
加速收敛:
使用子任务提供更多约束
训练网络使用IMPALA和A3C都可以。
Ref:
https://deepmind.com/blog/learning-to-navigate-cities-without-a-map/
https://papers.nips.cc/paper/7509-learning-to-navigate-in-cities-without-a-map.pdf