最前沿:视觉导航(Visual Navigation),让人惊讶
“ 机器人视觉导航是机器人领域的一个重要研究方向,本文介绍了视觉导航的前沿技术。”
一、前沿
视觉导航(Visual Navigation)一直是人工智能领域,机器人领域非常重要的一个研究方向,在之前我在专栏里曾写过这篇文章(知乎专栏链接:zhuanlan.zhihu.com):
( Flood Sung:最前沿:深度增强学习再发力,家用机器人已近在眼前 )
文章链接:
https://zhuanlan.zhihu.com/p/22523121
介绍了Fei-Fei Li组的使用深度增强学习做视觉导航的文章。那么一年时间过去了,这个领域又发生了什么翻天覆地的变化呢?
我想这两天,deepmind最新的进展是让人惊讶的:
https://deepmind.com/blog/learning-to-navigate-cities-without-a-map/deepmind.com
https://deepmind.com/blog/learning-to-navigatecities-without-a-map/
现在的端到端神经网络竟然可以在这么大的真实地图上进行第一视角的导航,你能想象吗?以前搞机器人做planning的人能想到吗?
我真的是蛮震惊的,我觉得会有进展,也仅仅局限在仿真环境中,我依然觉得真实环境太过复杂了,但是当真正做到的时候,我们反而有点不敢相信。纯神经网络的视觉导航呀!
所以,今天我们要来谈谈基于深度学习视觉导航的最近的一些重要进展,包括以下三篇文章:
一、https://arxiv.org/abs/1804.00168
二、https://arxiv.org/abs/1803.10760
三、https://openreview.net/forum?id=BkisuzWRW
其中前两篇也就是 deepmind 最近发的,而第三篇 zero shot imitation learning则是 UCB 在 ICLR 2018 录用的 oral paper 。
二、Learning to Navigate in Cities Without a Map
就先说说这篇让人震惊的paper吧!看了方法论你会发现,nothing new!
并没有看到太多很新的东西,可以说就是作者之前成果的综合。
我们可以看到,整个网络是非常非常简单的,输入是目标位置g和当前的视觉状态x,然后输出具体动作和价值。作者专门为目标位置g构造了一个rnn模块,来让神经网络来感知位置信息,同时这样实现了模块化,从而来可以直接实现多个城市的训练与迁移。
然后我觉得就没了,文章对目标位置g做了一点特殊构造,使用周围的地标距离来描述。整个网络使用IMPALA的一个分布式RL算法来训练,并且使用了curriculum learning循序渐进的来训练整个网络,让网络能够记忆各种位置导航的方式。
整个方法论作者在paper里面其实也就是用了一页纸来描述。效果为什么这么好?
不是很清楚其实,文章里没有细说。整个网络规模应该是很大的,从文章中说使用512个actor来分布式训练可以看出来。
简单的说,在方法论并没有新奇的情况下做出了难以置信的效果,不得不说深度学习很神奇!
三、Unsupervised Predictive Memory in a Goal-Directed Agent
这篇文章做的工作不一样,可以实现one shot navigation。在上一篇paper中,实际上这个神经网络在地图上已经跑了无数遍了,记住了所有路线。但是人可以做到只走一遍就能记住路线,下次就不用再探索了。而这篇文章其中的一个实验,就做了这个one shot navigation的问题。
但这篇文章的思路完全不一样,也肯定要不一样,因为是one shot,意味着需要很好的记忆。所以这篇文章的关键在于构造了一个非常复杂的记忆模块,来更好的提取记忆信息。我们这里不讲详细的细节,只是说说思想。实际上这篇文章提出的MERLIN依然是一个meta reinforcement learning的模型,因为它把之前的reward信息也一并输入进去,这是meta的一个关键,不了解的童鞋可以看看这篇paper:
https://arxiv.org/abs/1611.05763
所以,首先是这个模型具备meta属性,才使其能够做到one shot navigation,其次是其复杂的memory模块大幅度提升了记忆之前信息的能力,可以说通过一次的探索构建出了整个地图模型,从而能够提取信息到下一步的policy网络进行处理。大家可以看看这篇文章的演示视频,依然非常让人印象深刻。
四、Zero-Shot Imitation Learning
那么这篇文章呢就换个角度故意不做reinforcement learning了,改用imitation learning来做。道理也很显然呀,我们可以用一些专家的甚至最优的轨迹来直接训练网络,而不需要通过reinforcement learning的方式来自己探索。我们先看看这篇文章的网络结构:
有没有觉得和第一篇paper的其实相当接近。只是这里的目标也是用图片来表示的。但是这篇文章除了改用imitation learning之外,很重要的一点是所谓的zero shot?那这里什么叫做zero shot呢?
引用一下原文:
“Our method is ”zero-shot” in that we never see expert actions and never see demonstrations during learning. ”
这个网络模型在训练的时候是没有使用任何的专家动作的,那么怎么训练呢?使用随机探索的trajectory (s1,a1,s2,a2,s3,a3....) 有这样的轨迹,我们可以把任何一点的状态s作为目标位置。看到这,大家会不会觉得很hindsight experience replay的思想很像呢:
[1707.01495] Hindsight Experience Replay
所以这篇文章这个idea真的很棒,并且在网络结构上我们看上面最右边的那个图,它还加一个对未来state的预测模块,进一步强化了其学习效果。
五、小结
由于时间有限,我这里也只是很初略的介绍了一下这三篇paper的一些思想上的东西,这三篇paper实现的结果都是让人觉得有点‘啊哈这样也行’。但是idea可能真的没有那么复杂,实现上倒是会很复杂。有了这三篇paper的结果,我们可以说深度学习在视觉导航这块取得了挺大的进展了。那么未来呢?
我想肯定都要往真实场景上上手了,要不然还有什么意思呢?比如这个one shot navigation。如果真实的机器人在真实的房子里走几圈之后,你让他去找啥他就能去,那么这个视觉导航的目标也就实现了,简直都可以落地了有木有?
家用机器人确实在一步一步的走进现实,让我们拭目以待!一起加油!
------ END ------