卷积神经网络十五问:CNN与生物视觉系统的研究探索
作者:媒体转发 时间:2018-06-17 09:40
CNN 的发展早期从大脑神经网络取得了很多灵感,现在相关研究中的一些思路和方法也在反过来帮助神经科学方面的研究,如DeepMind近期用AI探索大脑导航和多巴胺功能的工作。近日,哥伦比亚大学神经生物学与行为学博士 Grace Lindsay 在其博客上发文,通过问答的形式讨论了 CNN 和生物视觉系统之间的区别和联系。
和我近期的大多数博文一样,我写这篇文章的起因是近期一个 Twitter 讨论,具体是关于如何将深度卷积神经网络(CNN)的组件与大脑联系起来。但是,这里的大多数思考都是我以前考虑并讨论过的。当有人使用 CNN 作为视觉系统的模型时,我通常(在研究讨论和其它对话上)必须鼓励和支持这一选择。部分原因是它们(在某种程度上)是神经科学领域相对较新的方法,还有部分原因是人们对它们持怀疑态度。计算模型一般在神经科学领域发展较慢,很大部分(但并非全部)是来自不使用或构建计算模型的人;它们通常被描述成不切实际或没有用处。在对技术宅的普遍反感和深度学习/人工智能(会值多少钱?)的过度炒作氛围中,不管你得到了什么模型,某些人都会厌恶它。
所以在这里我希望使用一个简单(但很长)的问答形式来相对合理且准确地阐释使用 CNN 建模生物视觉系统的情况。这个子领域很大程度上仍处于发展阶段,所以文中不会有太多确定无疑的事实,但我会尽可能引述。此外,这些显然是我个人对这些问题的答案(以及我个人提出的问题),所以请相信其中值得相信的。
我重点关注的是作为视觉系统的模型的 CNN——而不是更宽泛的问题,比如「深度学习能否帮助我们理解大脑?」——因为我相信这一领域是比较起来最合理、信息最多、最富成效的(而且也是我研究的领域)。但这种通用流程(根据生物学信息指定一个架构然后在相关数据上训练)也可用于帮助理解和复现其它大脑区域和功能。当然,已经有人做过这种事了,可参阅:
https://www.frontiersin.org/articles/10.3389/fncom.2016.00094/full
(我希望机器学习和数据科学领域的读者都能读懂这篇文章,但其中确实有些神经科学词汇没有给出定义。)
1. CNN 是什么?
卷积神经网络(CNN)是一类人工神经网络。因此,它们是由被称为「神经元」的单元构成的,这些单元可根据输入的加权和输出一个活动水平。这个活动水平通常是输入的非线性函数,通常只是一个整流线性单元(ReLU),其中当输入全为正时活动等于输入,当输入全为非正时活动等于 0。
CNN 的独特之处是神经元之间的连接的构建方式。在一个前馈神经网络中,单元会被组织成层的形式,给定层的单元只会获得来自其下面一层的输入(即不会有来自同一层或后续层的其它单元的输入,大多数情况下也不会有来自之前超过 1 层的输入)。CNN 是前馈网络。但不同于标准的单纯的前馈网络,CNN 中的单元具有一种空间排列。在每一层,单元都会被组织成 2D 网格形式,这被称为特征图(feature map)。每一个特征图都是在其下面一层上执行卷积所得的结果(CNN 也因此得名)。这意味着在其下面一层的每个位置都应用了同样的卷积过滤器(权重集)。因此,在该 2D 网格上特定位置的单元只能收到来自其下面一层相似位置的单元的输入。此外,输入上附带的权重对一个特征图中的每个单元都是一样的(而各个特征图各不相同)。
在卷积(和非线性)之后,通常还会完成一些其它计算。一种可能的计算是交叉特征归一化(尽管这种方法在现代的高性能 CNN 中已不再流行)。其中,特征图中某个特定空间位置的单元的活动会除以其它特征图中同一位置的单元活动。一种更常见的操作是池化(pooling)。其中,每个 2D 特征图的一小个空间区域中的最大活动会被用于表示该区域。这能缩减特征图的大小。这一组操作(卷积+非线性→归一化→池化)整体被称为一层。一个网络架构就是由层的数量和各种相关参数(比如卷积过滤器的大小)的选择定义的。

大多数现代 CNN 都有多个(至少 5)这样的层,其中最后一层会向一个全连接层馈送数据。全连接层就像是标准的前馈网络,其中没有空间布局或受限的连接。通常会有 2-3 个全连接层连在一起使用,并且网络的最后一层执行分类。举个例子,如果该网络执行的是 10 类目标分类,那么最后一层将会有 10 个单元,会有一个 softmax 操作应用在它们的活动水平上以得到每个类别相关的概率。




