这里是普通文章模块栏目内容页
卷积神经网络十五问:CNN与生物视觉系统的研究探索

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

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

#p#分页标题#e#

这些网络主要通过监督学习和反向传播训练。这时,提供给网络的输入是图像及其相关类别标签构成的配对集。图像像素值输入网络的第一层,然后网络最后一层得出一个预测类别。如果这个预测得到的标签与所提供的标签不一致,那么就会计算梯度,确定应该如何修改权重(即卷积过滤器中的值)以使分类正确。如此重复很多很多次(很多网络都是在 ImageNet 数据库上训练的,这个数据库包含 1000 个目标类别的超过 100 万张图像),就能得到在留存测试图像上有很高准确度的模型。CNN 的某些变体模型现在已能达到 4.94% 乃至更低的错误率,优于人类水平。要得到优良的表现,通常需要很多训练「技巧」,比如智能学习率选择和权重正则化(主要是通过 dropout,即在每个训练阶段都有随机一半的权重关闭)。

历史上曾使用无监督预训练来初始化权重,然后再使用监督学习来进行改善。但是,这似乎已经不再是优越性能所必需的了。

神经科学家能够理解的深度 CNN 介绍可参阅《深度神经网络:一种用于建模生物视觉和大脑信息处理的新框架》:

https://www.annualreviews.org/doi/10.1146/annurev-vision-082114-035447

2. CNN 是否曾受视觉系统的启发?

是的。首先,从名称上就能看出来,人工神经网络整体都受到了 20 世纪中期开始发展的神经生物学的启发。人工神经元被设计用来模拟神经元接收和转换信息的基本特性。

其次,卷积网络所执行的主要功能和计算受到了某些关于视觉系统的早期发现的启发。1962 年,Hubel 和 Wiesel 发现初级视觉皮层中的神经元会响应视觉环境中特定的简单特征(尤其是有向的边)。此外,他们注意到了两种不同类型的细胞:简单细胞(它们只在非常特定的空间位置对它们偏好的方向起最强烈的响应)和复杂细胞(它们的响应有更大的空间不变性)。他们得出结论:复杂细胞通过在来自多个简单细胞(每个都有一个不同的偏好位置)的输入上进行池化而实现了这种不变性。这两个特征(对特定特征的选择性以及通过前馈连接增大空间不变性)构成了 CNN 这样的人工视觉系统的基础。

神经认知机

神经认知机(neocognitron)

CNN 的发展可以通过被称为神经认知机的模型直接追溯到这一发现。神经认知机是福岛邦彦(Kunihiko Fukushima)于 1980 年开发的,其融合了当时有关生物视觉的知识,以期构建出一个能够工作的人工视觉系统。神经认知机由「S 细胞」和「C 细胞」构成,可通过无监督学习来学习识别简单的图像。最早开发出 CNN 的 AI 研究者 Yann LeCun 明确表明他们的开发根基于神经认知机,参阅:

https://www.cs.toronto.edu/~hinton/absps/NatureDeepReview.pdf

3. CNN 什么时候开始流行起来的?

纵观整个计算机视觉史,很多研究工作都集中在人工设计要在图像中检测的特征上,这些设计都基于人们对图像中最有信息的部分的看法。经过这些人工设计的特征的过滤之后,学习只会在最后的阶段进行,以将特征映射到目标类别。通过监督学习端到端训练的 CNN 提供了一种自动生成这些特征的方法,这是最适合这种任务的方法。

这方面最早的主要示例出现在 1989 年。那时候 LeCun 等人使用反向传播训练了一个小型 CNN 来识别手写数字。随着 1999 年 MNIST 数据集的引入,CNN 的能力得到了进一步的发展和验证。尽管取得了这样的成功,但由于研究界认为这种训练很困难,这种方法失势了,非神经网络方法(比如支持向量机)迎来了发展势头。

下一个大事件直到 2012 年才出现,那一年完全通过监督方法训练的一个深度 CNN 赢得了当年的 ImageNet 竞赛。那时候,1000 类目标分类的优良错误率大约是 25%,但 AlexNet 实现了 16% 的错误率,这是一个巨大进步。这一挑战赛之前的获胜方法依赖于更古老的技术,比如浅网络和 SVM。CNN 的这一进展得益于使用了某些全新的技术,比如 ReLU(而不是 sigmoid 或双曲正切非线性)、将网络分配在 2 个 GPU 上执行和 dropout 正则化。但这并不是无中生有突如其来的,神经网络的复兴早在 2006 年就初见端倪了。但是,这些网络大都使用了无监督预训练。2012 年的这一进展绝对算得上是现代深度学习大爆发的一个重磅时刻。

参阅《用于图像分类的深度卷积神经网络:全面回顾》:

https://www.mitpressjournals.org/doi/abs/10.1162/neco_a_00990

4. CNN 与视觉系统的当前联系是何时出现的?

#p#分页标题#e#

当今神经科学领域对 CNN 的热情喧嚣很多都源自 2014 年左右发表的少数研究。这些研究明确比较了在不同的系统看到同样的图像时,从人类和猕猴身上记录到的神经活动与 CNN 中的人工活动。

首先是 Yamins et al. (2014)。这一研究探索了很多不同的 CNN 架构,以确定是什么导致了预测猴子 IT 细胞的响应的优良能力。对于一个给定的网络,数据的一个子集被用于训练能将人工网络中的活动映射到单个 IT 细胞活动的线性回归模型。在留存数据上的预测能力被用于评估该模型。另外还有使用另外一种方法:表征相似度分析(representational similarity analysis)。这一方法不涉及对神经活动的直接预测,而是会问两个系统是否能以相同的方式表征信息。这是通过为每个系统构建一个矩阵实现的,其中的值代表对两个不同输入的响应的相似度。如果这些矩阵在不同的系统上看起来一样,那么它们表征信息的方式也是类似的。

不同系统的表征相异度矩阵

不同系统的表征相异度矩阵(Representational Dissimilarity Matrix)

通过这两种措施,为目标识别优化过的 CNN 的表现超越了其它方法。此外,该网络的第 3 层能更好地预测 V4 细胞的活动,而第 4 层(最后一层)能更好地预测 IT 细胞的活动。这表明模型层与脑区之间存在对应关系。

另一个发现是在目标识别上表现更好的网络在获取 IT 活动上也表现更好,而无需直接在 IT 数据上进行优化。这一趋势在更大更好的网络上也能大致保持,直到遇到某些限制(见第 11 问)。

CNN 的后面几层有与人类 IT 更相似的表征

CNN 的后面几层有与人类 IT 更相似的表征

另一篇论文 Khaligh-Razavi and Kriegeskorte (2014) 也使用了表征相似度分析,其将 37 种不同的模型与人类和猴子 IT 进行了比较。他们也发现更擅长目标识别的模型也能更好地匹配 IT 表征。此外,通过监督学习训练的深度 CNN(AlexNet)是表现最好的,也是最匹配的,其中该网络的后面基层的表现比前面几层更好。

5.  神经科学家过去是否使用过类似 CNN 的方法?

是的!第 2 问中提到的神经认知机受到了 Hubel 和 Wiesel 的发现的启发,并且又转而启发了现代 CNN,但它也还催生了一些视觉神经科学领域的研究分支,其中最显眼的是 Tomaso Poggio、Thomas Serre、Maximilian Riesenhuber 和 Jim DiCarlo 的实验室的研究。基于卷积的堆叠和最大池化的模型被用于解释视觉系统的各种性质。这些模型通常使用了不同于当前 CNN 的非线性和特征的无监督训练(在当时的机器学习领域也很流行),而且它们没有达到现代 CNN 的规模。

视觉神经科学家和计算机视觉研究者所选择的道路有各种不同的重合和分岔,因为他们所追求的目标不同但又相关。但总体而言,CNN 可以很好地被视为视觉神经科学家的建模道路的延续。来自深度学习领域的贡献涉及到计算能力和训练方法(以及数据),让这些模型最终发挥了作用。

6. 我们有什么证据说 CNN 的工作方式「类似大脑」?

卷积神经网络有三个主要特点能支持将它们用作生物视觉的模型:(1)它们可以以接近人类的水平执行视觉任务,(2)它们的工作架构复制了有关视觉系统的已知基本功能,(3)它们产生的活动能与视觉系统中不同区域的活动直接关联。

视觉层次结构的特征

首先,究其根本和架构,它们有视觉层次结构的两个重要组件。首先,单个单元感受野的大小会随网络中层的递进而增大,就像 V1 到 IT 中感受野的增大一样。第二,随着层的递进,神经元所响应的图像特征也越来越复杂,就像调谐过程从 V1 中的简单线条到 IT 中的目标部分一样。这种特征复杂度的增长可直接通过可用于 CNN 的可视化技术看到。

网络在不同层所学习的特征的可视化

网络在不同层所学习的特征的可视化

再更深入地看一下第(3)点,在原来的 2014 年的研究(Q4)之后的很多研究都在进一步确定 CNN 中的活动与视觉系统之间的关系。这些都表明了同样的一般性发现:在观看同样的图像时,人工网络中的活动可与视觉系统的活动关联起来。此外,人工网络中后面的层能对应于腹视流(ventral visual stream)中更后的区域(或使用 MEG 等方法时所得响应中更后的时间点)。

#p#分页标题#e#

很多不同的方法和数据集都可被用于制作这些点,比如下列研究:Seibert et al. (2016)、Cadena et al. (2017)、Cichy et al. (2016)、Wen et al. (2018)、Eickenberg et al. (2017)、Güçlü and van Gerven (2015) 和 Seeliger et al. (2017)。

不同 CNN 层与脑区的表征的对应

不同 CNN 层与脑区的表征的对应(来自 Cichy et al.)

这些研究关注的重点一般是在简单呈现不同目标类别的自然图像时所得到的初始神经响应。因此,这些 CNN 实现的是所谓的「核心目标识别」或「快速鉴别给定视觉目标与其它所有目标的能力,即使出现了身份保持不变的变换(位置、尺寸、视角和视觉背景改变)」。一般而言,标准的前馈 CNN 能最好地得到视觉响应的早期组件,这说明它们复现了从视网膜到更高的皮层区的初始前馈信息扫视。

视觉系统创建的一系列神经表征可以被 CNN 复现,这一事实说明它们执行了一样的「解开(untangling)过程。也就是说,这两种系统都会取图像/视网膜层面上不可分的不同目标类别的表征,并且创建允许线性可分的表征。

除了比较活动,我们还可以更深入(1),即网络的表现。这些网络与人类和动物的行为之间的详细比较可以进一步被用于验证它们作为模型的使用情况以及确定仍然需要进展的领域。来自这类研究的发现已经表明这些网络可以比之前来自多个领域的模型更好地取得人类分类行为的模式(甚至能预测/操作它),但在某些特定领域这些网络表现很差,比如图像中出现噪声或图像差别很小但准确度下降很多的情况。

这种行为效应的研究包括:Rajalingham et al. (2018)、Kheradpishesh et al. (2015)、Elsayed et al. (2018)、Jozwik et al. (2017)、Kubilius et al. (2016)、Dodge and Karam (2017)、Berardino et al. (2017) 和 Geirhos et al. (2017)。

所有这些是否满足优秀大脑模型的标准?我们最好看看视觉领域的人说他们希望从视觉系统模型中得到什么:

理解大脑的目标识别解决方案的进展需要构建人工识别系统(通常会用到生物学启发,比如 [2-6]),其最终目的是模拟我们自己的视觉能力。这样的计算方法是至关重要的,因为它们能提供可通过实验检验的假设,也因为有效识别系统的实例化是理解目标识别上一种特别有效的成功度量。

——Pinto et al., 2007

 

从这个角度看,很显然 CNN 并不是视觉科学领域目标的转移,而是实现其目标的一种方法。

7. 有其它能更好预测视觉区域的行为的模型吗?

总体而言,没有。已经有一些研究直接比较了 CNN 与之前的视觉系统模型(比如 HMAX)的获取神经活动的能力。CNN 出类拔萃。这样的研究包括:Yamins et al. (2014)、Cichy et al. (2017) 和 Cadieu et al. (2014)。

8. CNN 是视觉系统的机制模型还是描述模型?

机制模型的合理定义是该模型的内部部分可以映射到系统中相关的内部部分。而描述模型则是仅匹配他们的整体输入-输出关系。所以视觉系统的描述模型可能是一个输入图像并且能输出与人类给出的标签一致的目标标签的模型,但可能其工作方式与大脑并没有明显的联系。但是,如上所述,CNN 的层可以映射到大脑的区域。因此,在 CNN 执行目标识别时,它是腹侧系统所执行的表征变换的机制模型。

整体而言,如果要让 CNN 是机制模型,我们不需要让所有组件都有对应机制。举个例子,传统的大脑回路模型中基于放电率(rate-based)的神经元的使用。基于放电率的神经模型只是一个将输入强度映射到输出放电率的简单函数。因此,它们只是神经元的描述性模型:模型中没有内部组件与导致放电率的神经过程有关(Hodgkin-Huxley 神经元等更细化的生物物理模型是机制的)。然而,我们仍然可以使用基于放电率的神经元来构建回路的机制模型(我喜欢的一个案例:https://www.ncbi.nlm.nih.gov/pubmed/25611511)。所有机制模型都依赖描述模型作为它们的基本单元(否则我们都需要深入到量子机制来构建模型了)。

#p#分页标题#e#

所以 CNN 的组件(即层——由卷积、非线性、可能的归一化和池化构成)是脑区的机制模型还是描述模型?这个问题更难以回答。尽管这些层是由人工神经元构成的,其可以合理地映射到真实的神经元(或神经元群),但很多计算的实现都不是生物式的。比如,归一化(在使用它的网络中)是使用高度参数化的除法方程实现的。我们相信这些计算可以使用拟真的神经机制实现(见上面引用的研究),但目前的模型并没有这样使用(不过我和其他一些人正在研究这个问题……见第 12 问)。

9. 我们应该如何解读 CNN 的不同部分与大脑的关系?

对于习惯了处理细胞层面的事物的神经科学家而言,可能会觉得 CNN 这样的模型的抽象价值大过实用价值(尽管研究抽象多区域建模的认知科学家可能会更熟悉它们)。

将 CNN 与大脑的区域和处理关联起来

将 CNN 与大脑的区域和处理关联起来

但就算没有确切的生物学细节,我们还是可以将 CNN 的组件映射到视觉系统的组件。首先,CNN 的输入通常是三维(RGB)的像素值,它们已经过了一些归一化或变白处理,大致可以对应视网膜和背外侧膝状体核所执行的计算。卷积所创造的特征图有一个空间布局,类似于在视觉区域中找到的视网膜拓扑映射(retinotopy),这意味着每个人工神经元都有一个空间受限的感受野。与每个特征图相关的卷积过滤器确定了该特征图中的神经元的特征调制。单个人工神经元并不是要直接映射到单个真实神经元;将单个单元想成是皮质柱(cortical column)可能会更合理一点。

CNN 的哪些层对应于哪些脑区?早期使用仅包含少量层的模型的研究为一层映射一个脑区提供了支持。比如,在 Yamins et al. (2014) 中,最后的卷积层能最好地预测 IT 活动,而倒数第二层能最好地预测 V4。但是,其确切的关系将取决于所使用的模型(更深度的模型允许每个脑区有更多层)。

在卷积网络末尾的全连接层有更复杂的解读方式。它们与分类器的最终决策的紧密关系以及它们不再有视网膜拓扑的事实说明它们更像是前额皮质。但它们在预测 IT 活动上也可能表现很好。

10. 视觉系统有哪些 CNN 不具备的东西?

有很多。尖峰、扫视(saccade)、分开的激励和抑制细胞、动态、反馈连接、跳过某些层的前馈连接、振荡、树突、皮质层、神经调质、中央凹、横向连接、不同细胞类型、双眼视觉、适应、噪声以及大脑的其它细节。

当然,还有一些特性是当今用作模型的大多数标准 CNN 默认没有的。但它们中很多都已经在更新型的模型中得到了研究,比如:skip 连接、反馈连接、扫视、尖峰、横向连接和中央凹。

所以很显然,CNN 并不是对灵长类视觉的直接复制。还应该清楚这并不意味着模型不合格。模型不可能是(也不应该)是相关系统的完整复现。我们的目标是让模型具备能解释我们想要了解的关于视觉的信息的必要特性,所以某个特性的缺乏对不同的人来说重要性也不一样。比如说,预测 IT 神经元在前 100 ms 左右对图像的平均响应需要哪些特性?这是一个需要实证的问题。我们不能事先就说某个生物特性是必要的或没有这个特性的模型不好。

我们可以说没有尖峰、E-I 类型和其它实现特性的细节的模型比有这些细节的模型更加抽象。但抽象没有错。这只是意味着我们愿意把问题分成不同的层次,然后单独解决它们。我们某天应该能将这些不同层面的解释组合到一起,得到在大尺度和精细尺度上复现大脑的复制品。但我们必须记住,不要让完美成为成功路上的敌人。

11. CNN 能做到什么视觉系统无法做到的事?

对我而言,这是一个更加相关的问题。使用某种非生物学的模型来绕过困难问题比使用缺乏某些特定生物特性的模型更有问题。

第一个问题:卷积权重有正有负。这意味着前馈连接有激励性的,也有抑制性的(而在大脑区域之间的大脑连接大都是激励性的),单个的人工神经元可以激励也可以抑制。如果我们只把权重看作是净效果,那么这还问题不大,这实际上也许可以通过连接抑制细胞的前馈激励连接而执行。

接下来:权重是共享的。这意味着特征图中某个位置的神经元在其输入上会使用与同一特征图中另一个不同神经元完全一样的权重。尽管方位调谐(orientation tuning)等功能在 V1 中的视网膜拓扑上是这个情况,但我们不相信在一个视觉空间中更偏爱垂直线的神经元会与另一个位置更偏爱垂直线的神经元有完全一样的输入权重。这里可没有确保所有权重都相关和共享的「鬼魅般的超距作用」。因此,当前使用的帮助训练这些网络的权重共享应该被更接近生物创建空间不变调节的方法替代。

#p#分页标题#e#

第三:最大池化怎么样?用神经科学的术语讲,最大池化操作类似于神经元的放电率,其等于其最高放电输入的放电率。因为神经元会汇集很多神经元的信号,所以很难设计一个能直接做到这一点的神经元。但池化操作是受复杂细胞的发现启发的,而且最早是被用作一种平均化操作,这是神经元可以轻松实现的。但事实已经证明最大池化在目标识别表现和拟合生物数据方面会更加成功,而且现在已被广泛使用。

机器学习研究者对 CNN 的进一步发展已经让它们远远超越了视觉系统的范畴(因为机器学习研究者的目标只有表现水平本身)。某些表现最优的 CNN 现在有很多在生物学角度上看起来很奇怪的特征。此外,这些更新的模型的极端深度(大约 50 层)已然降低了它们的活动与视觉系统的关联。

当然,也还存在这些网络的训练方式的问题(通过反向传播)。这会在第 13 问讨论。

12. CNN 能做得更像人脑吗?

我当计算神经科学家的一个主要原因是(没有实验设置的限制)我们可以做任何我们想做的事情。所以,是的!我们可以让标准 CNN 有更多生物启发式特性。让我们看看我们已经取得的成果:

正如第 10 问中提及的,很多架构元素已经被添加到了 CNN 的不同变体中,这使得它们更接近腹侧流。此外,在增加学习过程的合理性方面也已经有了一些研究成果(见第 13 问)。

除了这些努力之外,在复现生物细节方面的具体研究还包括:

受生物学启发的 Spoerer et al. (2017) 表明横向连接和反馈连接可以让模型更好地识别有遮挡和有噪声的目标。

增加生物学启发的连接

增加生物学启发的连接,来自 Spoerer et al. (2017)

我本人的一些研究(在 Cosyne 2017 上呈现并在准确提交期刊)涉及到将稳定超线性网络(stabilized supralinear network)(一种实现归一化的仿生物回路模型)纳入 CNN 架构中。这会为 CNN 引入 E 和 I 细胞类型、动态和循环(recurrence)。

Costa et al. (2017) 使用生物学启发的组件实现了长短期记忆网络(LSTM)。在为人工神经网络添加循环时,LSTM 是很常用的,所以确定可以如何通过生物式的方式实现这种功能会很有用。

13. CNN 使用反向传播学习权重的方法是否重要?

反向传播涉及到计算网络中任意位置的权重应该变化的方式,以便减少分类器产生的误差。这意味着第一层的一个突触会有一些关于错误的信息并一直传递到顶层。但真正的神经元往往依赖于局部的学习规则(比如赫布可塑性(Hebbian plasticity)),其中权重的变化主要是由神经元之前和之后的突触决定的,而不会受到任何遥远因素的影响。因此,反向传播应该不是模拟生物方式。

这无需影响我们对完全训练的 CNN 作为视觉系统的模型的影响。计算模型中的参数往往是用与大脑学习方式(比如用于获取功能连接性的贝叶斯推理)没有任何相似之处的技术拟合的。但这并不会让所得到的回路模型无法解读。在极端的情况下,我们可以将反向传播看作是一个和其它技术一样的单纯的参数拟合工具。而且 Yamins et al. (2014) 确实使用了一种不同的参数拟合技术(不是反向传播)。

但是,采纳这一观点并不意味着模型的特定方面是无法解读的。比如,我们并不期望学习曲线(误差随模型学习的变化方式)与人类或动物学习时犯错的情况有关联。

使用分离树突(segregated dendrite)的局部误差计算

使用分离树突(segregated dendrite)的局部误差计算

尽管当前实现的反向传播不具有生物合理性,但其可被看作是大脑实际工作方式的一种抽象版本。目前有多个研究正努力使反向传播具有生物合理性,比如通过局部计算和拟真的细胞类型来实现反向传播,比如《Towards deep learning with segregated dendrites》和《An Approximation of the Error Backpropagation Algorithm in a Predictive Coding Network with Local Hebbian Synaptic Plasticity》。这会让这一学习过程获得更好的生物学解释。使用更有生物合理性的学习流程是否能得到更匹配数据的神经活动?这还是一个需要实证解答的问题。

#p#分页标题#e#

另一方面,无监督学习看起来像是一个大脑机制,因为它不需要关于标签的明确反馈,而是使用了有关环境的自然统计来发展表征。到目前为止,无监督学习还没有实现监督学习那样高的目标分类表现。但使无监督学习和方法具有生物合理性的进展可能最终会带来更好的视觉系统模型。

14. 我们能使用 CNN 了解到有关视觉系统的什么信息?

只靠 CNN,什么也了解不到。所有的见解和发展都需要通过与实验数据的交互而进行验证和延展。也就是说,CNN 对我们理解视觉系统的方式可以有三种贡献。

第一是验证我们的直观理解。就像费曼说的「我们不能理解我们不能创造的东西」。有了收集到的所有数据和发展起来的视觉系统理论,神经科学家为什么不能创造一个可工作的视觉系统呢?这应该能让我们警醒,并意识到我们错过了一些关键的东西。现在我们可以说我们对视觉系统的直观理解基本上是正确的,我们只是缺少计算能力和训练数据。

第二是允许实现理想的实验检验平台。这是科学界对机制模型的常用方法。我们可以使用已有数据建立一个模拟我们所感兴趣的内容的合理模型。然后我们测试其各个部分,看哪些部分对功能实现是重要的。这能用于产生假设以便未来实验和/或解释之前未用于构建该模型的数据。

第三种贡献方式是通过数学分析。对于计算建模而言,情况总是如此;将我们关于视觉系统工作方式的信念整合成具体的数据术语,从而开启新型的研究方向。尽管在模型上进行分析时通常需要将它们进一步简化,但这仍然能为模型行为的一般趋势和局限性提供有帮助的见解。在这种特定情况下,还会有一些额外的发展动力,因为某些机器学习也有兴趣在数学上剖解这些模型。这样他们的见解就能在适当的情况成为我们的见解,比如 ~wenjie/papers/nips16/top.pdf

15. 使用 CNN 作为视觉系统模型已让我们了解到了什么?

首先,我们表明我们的直观理解实际上可以用来构建可工作的视觉系统,从而验证了这些直观理解。此外,这种方法已经帮助我们定义了(用 Marr 的术语)视觉系统的计算层面和算法层面。通过在目标检测上训练而获得如此之多神经数据和行为数据的能力说明这是腹侧流的核心计算作用。而一系列卷积和池化就是做到这一点所需的算法的一部分。

我相信,这些网络的成功也有助于我们改变对视觉神经科学领域基本研究单元的看法。很多视觉神经科学领域(乃至所有神经科学领域)一直以来都被以单个细胞及其调谐偏好为中心的方法所主导。没有严格一个神经元对应一个神经元的获取数据的抽象模型将关注焦点放在了群编码(population coding)上。某天有可能对理解单个调制函数的尝试会得到同样的结果,但目前群层面的方法看起来更有效。

此外,将视觉系统看作一整个系统,而不是隔离的区域,能重塑我们对这些区域的理解方式。人们在研究 V4 上投入了大量工作,比如试图用语言或简单的数学来描述什么会导致该区域的细胞产生响应。当 V4 被看作是目标识别路径上的中间立足点时,似乎就更不可能将其拿出来单独描述了。就像这篇综述论文《Deep neural networks: a new framework for modelling

biological vision and brain information processing》说的:「对一个单位的口头功能解释(比如作为眼睛或人脸检测器)可能有助于我们直接理解某些重要的东西。但是,这样的口头解释可能会夸大分类和定位的程度,并低估这些表征的统计和分布本质。」事实上,对训练后的网络的分析已经表明对单个单元的强大且可解读的调制与优良表现无关,这说明历史上对单个单元的关注的方向有误。

在探索不同的架构方面还有一些更加具体的进展。通过检查获取神经和行为响应的哪些元素上需要哪些细节,我们可以得到结构和功能之间的直接联系。在《Deep Recurrent Neural Network Reveals a Hierarchy of Process Memory during Dynamic Natural Vision》这项研究中,加入网络的横向连接在解释背侧流响应的时间过程上比在腹侧流上的作用更大。其它研究说明反馈连接对于获取腹侧流动态而言是很重要的。还有研究表明神经响应的特定组分可以通过随机权重的模型取得,这说明分层架构本身就能解释它们。而其它组分则需要在自然且有效的图像类别上训练得到。

#p#分页标题#e#

此外,我们还观察到,特定表现优良的 CNN 并不能准确预测神经行为(见第 11 问)。这个观察很重要,因为这说明并非所有具有视觉能力的模型都是大脑的良模型。这让我们相信,我们看到的能很好预测神经活动的架构(通过大脑区域和层之间的对应)表现良好的原因是它们确实获取到了大脑所执行的变换的某些过程。

因为 CNN 提供了一种生成拟真神经响应的「图像可计算的」方式,所以它们也可被用于将更少被理解的信号与视觉处理关联起来,比如这两项关于 contextualizing oscillation 的研究:《Using DNNs as a yardstick for estimating the representational value of oscillatory brain signals.》和《Activations of Deep Convolutional Neural Network are Aligned with Gamma Band Activity of Human Visual Cortex》。

我自己也有使用 CNN 作为视觉系统的模型的研究《Understanding Biological Visual Attention Using Convolutional Neural Networks》,我的研究主要是证明特征相似性增益模型(它描述了注意的神经影响)可以解释注意机制对表现效果的有益影响。

最后,某些研究已经记录到了没有被 CNN 所实现的神经或行为元素(见第 6 问)。这些研究有助于确定需要进一步实验和计算探索的区域。

案例还有很多。总而言之,鉴于这方面的研究从 2014 年左右才真正开始,我会说研究的数量已经相当不错了。

原文链接:

https://neurdiness.wordpress.com/2018/05/17/deep-convolutional-neural-networks-as-models-of-the-visual-system-qa/

【本文是51CTO专栏机构“机器之心”的原创文章,微信公众号“机器之心( id: almosthuman2014)”】

戳这里,看该作者更多好文

【编辑推荐】

【深度学习系列】用PaddlePaddle和Tensorflow实现经典CNN网络GoogLeNet

AI = 神经网络?这8个技术就不是!

想入门设计卷积神经网络?这是一份综合设计指南

关于神经网络:你需要知道这些

无需深度学习框架,如何从零开始用Python构建神经网络

收藏
0
有帮助
0
没帮助
0