Deepmind经典文章回顾网格细胞表征导航中用到的空间结构
在DeepMind去年发表的一篇和空间导航有关的论文里, 首次将一种和空间有关的脑部结构- Grid Cell 引入到了它们的网络架构里,而非常有趣的是, 如同当年的认知科学家所阐述的, 这个空间坐标结构的引入, 使得导航出现了类似于直接利用捷径这样的行为。本文将对这篇经典论文进行详解。参考文献;https://www.nature.com/articles/s41586-018-0102-6
深度学习和人工智能的发展, 一直以视觉为主线, 自然语言为侧翼, 而有一个十分基本但很少人提及的问题, 就是导航。因为即使阿法狗可以打败李世石,机器靠自己的知觉来在一个空间寻找目标, 依然是比较困难的。我们在深度学习的早期, 就知道, 越是人类看起来像空气一样存在的认知功能, 对于机器时间反而艰难, 比如之前的视觉, 这个问题远比让机器做计算,下象棋要困难, 也仅仅在2012年后得到突破。空间里的探索和导航(当然还有更困难的意识和动机的产生等,在我们对知觉和运动都没搞清楚的情况,那些就更难了)是另一个例子。我们司空见惯的空间概念由于已经刻画在我们的头脑里了, 所以我们不再觉得这件事情的非同寻常。而一旦你闭上眼睛在屋子走一走,比如去找厕所, 你就会发现它是多么的不容易。当然导航在高科技根本算不上人工智能问题,如果你有gps一切都只是一个路径规划问题。但是没有, 问题就不再简单了,你想想古人类花了多少时间才走出非洲,走到世界?这, 也就是我们今天的主题,在没有gps的情况下,如何让人工智能体通过感知和行为,形成对空间的认知,然后达到目的地。一 , 师法自然, 动物是如何导航的我们围绕感知和运动来谈导航问题, 你要先有感知外界环境信号的能力才谈的上空间探索, 视觉当然是第一位的,但是其它的感知比如听觉, 磁场等也等可以作为好的信号。例如鱼类利于太阳感知,鸽子利用地磁场, 蜜蜂利用偏振光。无论哪一点,空间的认识都是从感知作为起点。你就拿你自己为例, 你要去学校食堂, 其实基本上就是看到教学楼往右拐, 操场往左拐, 仅此而已, 这里的关键, 就是看。除了看 ,第二个要素就是知道自己的运动, 动物需要知道自己在往哪里走, 走了多远, 而不能像喝酒的醉汉一样四处乱走而不知道走到了哪里。比如当你自己看导航去找目标, 你会看到前进300米往右, 500米往左这种, 那你能够完成这个过程 , 首先是要能够感知自己的运动, 知道自己在往哪个方向走,.那么导航的第二个基础, 就是自己开始觉察到自己的运动,并且相对的度量它, 这里就自然包含了记忆,说白了就是得知道自己大概走了多远, 没有这个要素, 你是不能知道自己其实是向东走了500步.这两个要素紧密结合, 你知道自己走了多少步, 并且感知到周围环境的变化, 把这个步数和相应的物体联系在一起, 你就可以得到一个概念, 那就是学校操场往右多少步是食堂, 往左多少步是教学楼, 这就好比一个心中的地图了。这些要素就像机器学习所说的空间探索的基础元素, 而那个地图就是空间探索的高级特征。就像像素是图像数据的基础元素, CNN从基础的像素里提取出构成图像的更有代表性的下一级特征,如纹理, 物体的不同性质的部分。而此处,神经网络的挑战是从刚刚讲的感知和行为里提取出和空间有关的基础特征- 并构成某种程度一个虚拟和地图.看看生物神经网络是怎么做的, 科学家一直觉得这个虚拟的地图应该存在在生物神经网络之中,还就真的发现了在小鼠海马体及其周边组织, 存在一组叫做place cell的细胞群,这个东西简直就是一个地图, 小鼠走到哪里, 就有一个对应那个位置的细胞(及其周边细胞)开始fire。神经科学家认为这个虚拟的大脑地图是小鼠能够在迷宫里不至迷惑的关键了。科学家发现, 栅格神经元和位置神经元具有某种对应关系。为什么要这么麻烦?你不是表示一个位置就得了吗?还要一个六边形?这里得关键是我们的位置细胞不仅要对一个环境中的特定位置编码, 更要对所有可能环境中的位置编码。比如说你的某个细胞既要能表达北京王府井又要表示上海东方明珠。这样我们就需要一个强大有效的特征表示, 可以很快的对新的环境空间重新进行位置编码, **grid cell 构成的六边形基地正是这个表示, 某种程度,它们代表了空间的基础性质, 是从完全真实空间里抽象来的.这个原理其实有点像量子力学里, 任何具有特定位置的质点都可以看作不同周期的波函数叠加而来, 这些波一组基底。此处, 冥冥之中,量子力学和神经科学在握手。
栅格神经元和位置神经元的对应关系貌似某种傅里叶变换
二.关于deepmind的那个人工智能体 好了 , 我们来说说AI吧, 关于deepmind这次做成的人工智能体,其实故事没有那么精彩, 因为它无非是之前建立好的神经导航模块上加入了这个类似动物的栅格细胞群落, 然后得到了更好的导航性能。如果要你来设计这样一个人工智能体, 你会如何做呢?
对了, 设计一个虚拟的大脑 – 神经网络, 让他做和生物类似的处理, 刚刚讲的探索的两个要素 - 视觉感知, 运动记忆, 要用我们的深度神经网络来综合在一起, 然后用强化学习来训练, 如同训练动物一样。这个模型就是深度学习与极强悍的强化学习框架 – actor-critic的结合. 。强化学习就是根据奖励学习, 这与训练小鼠在迷宫里行走的设定其实是相似的, 你要得到隐藏在空间某个角落里的奶酪, 就是学习空间导航。强化学习就要有状态(观测),行为,策略,奖励。从观测到行为的过程是由人工智能体配备的人工神经网络完成的, 也就是这个虚拟生物的神经中枢。它根据行为体对四周的观测(视野内的物体),得到一个决策行为(速度),比如向北走50米这种。这个神经网络一开始只知道进行随机游走,而只有在规定时间达到目标的时候它才会得到奖励, 通过强化学习的过程, 它可以学习到在空间里综合各种感知和运动信息的正确行为的方法。这个方法被称为actor-critic, 是深度强化学习里一种非常强大的方法,所谓的actor- 行为者, 指的是一个产生人工智能体行为的神经网络, 它不停的对每个时刻所观测到的信息得到最优的行为(概率表示),而这个行为, 要被另一个神经网络- 所谓的critic检验, critic评估每个行为最终可能得到的收益,好比一个批评家。并根据每一步骤下奖励的情况调整这个收益的估计(TD学习)。两者结合起来, actor不停的大胆提可能的最优行为, 然后critic不停的指出这个行为到底是好是坏,两者的一个动态博弈将导致行为越来越优化, 这个方法可谓结合了强化学习两大分支策略梯度和态函数的重大优势。当你的行为产生一个后果(奖励或惩罚), 行动者actor和批评者critic都会被改进。比如当某一次人工智能体成功得到了奖励, 行为者会直接提高中间所有行动的权值, 而评估者会提高中中级过程那些动作的评估分数, 这些最终都体现在神经网络权重的更新上.Actor - Critic 网络 , actor是决策者, critic是评论者 , 两者共同决定损失函数
所谓的深度强化学习, 是除了训练方法外, 神经网络的基础都是深度学习的基础工具. 我们所强调的空间导航的第一要素视觉, 它看到周围的环境, 这个图像由CNN卷积网络解决, 它得到的图像特征, 和人工智能运动的速度一起, 输入到下一个网络. 这就是我刚刚描述的导航需要视觉和运动两方面信息综合的思想. 大家能否猜到这个网络究竟是何物呢? 它就是用于自然语言处理的利器 - 时序神经网络RNN。RNN具有记忆功能, 因此它满足我们刚说的导航第二要素 - 运动记忆。我们在此处使用了RNN的加强版 – LSTM 了. LSTM一方面收集运动的速度, 一方面收集由CNN传过来的感知信号.如此, 是否我们的”虚拟老鼠” 可以像真的老鼠一样走迷宫呢?答案是否定的, 单纯的强化学习能够让agent进行空间探索, 但是其行为的确显得有点笨拙, 比如说如果空间里出现了一条新的捷径到达目标, 它是比较难使用这样的信号的.而让这个笨拙变得聪明的最关键一步, 也是deepmind新论文的亮点,是加入了类似于海马栅格细胞这样的空间表示,最终得到了十分类似真实动物走迷宫的那种能力。这就真的是在师法自然了。但是这个装配动物栅格细胞的过程可不是直接复制粘贴就可以, 我们依然用学习的方法, 把普通的神经网络训练成栅格网络. 这个想法也是十分合理的, 如果栅格网络这个东西是生物导航的依靠, 那么它很可能从空间预测有关的学习里自发的演化出来. Deepmind 设定了这样一个任务, 就是让人工智能的虚拟生物不停的在迷宫里行走, 但这次它不需要寻找奖励, 而是直接预测它自己所在的位置, 这个预测工作同样是由主管时序记忆的神经网络– LSTM + 一层普通的前向网络构成的, 这个LSTM的输入是每一时刻人工智能体的速度, 然后最终由前向网络输出当下的位置. 明眼人一下子就看出来这实际需要的就是个路径积分啊, 你需要把每个时刻的速度加和在一起,就得到新的位置. 在这个任务之上, 这个前向网络居然演化出了和自然界的grid cell(栅格细胞)真假难辨的感受野。被监督学习训练出来的“栅格细胞”被天衣无缝的插入到整个神经网络里, 然后和CNN处理的视觉信息一起被决策LSTM接受, 决定下一刻的运动方向
这篇文章的精彩处在于我们利用监督学习得到了和生物真实使用类似的关键特征, 然后在用一个深度强化学习得到正确的行为, 可谓把认知和决策完美结合了起来。**整个流程可以被一个端对端的计算图表达。虽然被吹的玄乎其玄,我们其实就是在做一个空间运动有关的特征工程, 所谓对位置信息恰当的神经编码, 给决策网络来使用, 这样, 无论这个agent到了什么样的环境里 ,它都可以利用它学到的这个绝技, 来对陌生的空间进行定位和学习,适应那些环境的新变化, 利用捷径等。这样的一门技术在现实的应用之大是显然的,比如所有的机器人运动控制问题. 而这个方法也启示我们,那些辛苦神经生物博士所做的看起来用处不大的研究里, 对人工智能的启发可以多么巨大。