作者 | 杨晓凡
编辑 | 唐里
当前的基于 CNN 的图像识别模型确实能在许多任务中得到很高的识别准确率、也得到了许多实际应用,但 CNN 模型的泛化性和鲁棒性仍然远逊于人类视觉 —— 面对经过细微修改的、或者带有噪声的图像,人类的视觉识别几乎不受影响,而 CNN 的识别准确率则可能大幅波动;场景和视角也能显著影响 CNN 的表现,更别提从很少的样本学习物体识别了。
如果说「视觉智慧」的至高水准是具有不变性的神经表征,以及图像经过复杂变换以后仍然能够识别处理的泛化能力的话,人类的/生物的视觉系统显然具有视觉智慧,而现代的 CNN 并不具备;研究生物视觉系统中视觉智慧的来源、并尝试在人工设计的视觉系统中重现它,近些年来都是神经科学领域以及机器学习领域的热门研究课题。
最近,NeurIPS 2019 论文《Learning From Brains How to Regularize Machines》(从大脑学习如何做机器的正则化)就在这个问题上做出了有趣的尝试。此前我们介绍过日本研究人员的成果,他们从人脑的 fMRI 成像解码重现出眼睛看到的画面。但根据大脑的神经活动直接影响人工神经网络学习表征的过程,从而影响模型在分类任务中的表现,这个方法就相当新颖有趣。AI 科技评论把论文主要内容介绍如下。
在这篇论文中,作者们重点比较了视觉智慧其中的一个方面:面对对抗性攻击和噪声干扰的鲁棒性。对抗性攻击可以对给定图像做微小的修改就让 CNN 模型以很高的置信度把物体识别为另外一个类别,噪声则普遍地影响 CNN 的识别准确率。面对相同的干扰,生物视觉系统的表现几乎不受影响。这很可能表明,不仅 CNN 缺乏生物视觉系统中那种高级的场景理解能力,CNN 识别物体时使用的视觉特征也可能和生物视觉系统完全不同。
遗憾的是,生物神经网络和人造神经网络的工作机理有很大区别,即便我们能从生物视觉系统中解码出不同级别的视觉特征,我们也很难把它直接拷贝到人造神经网络中去。有一些研究者对生物视觉系统做过直接的研究,比如纽约大学教授 Eero Simoncelli 从纹理和层次化感知的角度做过研究和实验(他在 ICLR 2017 的特邀演讲上做了介绍),但他的理论也没办法直接拿来改进 CNN。
不过,想要模仿生物神经网络中的特征,我们也许不是完全束手无策:我们在训练神经网络时会引入各种隐式的归纳偏倚,以及使用不同的正则化方法,它们能对网络的参数空间增加限制,以及引导改变模型学习和使用特征的方式,最终对模型的鲁棒性和泛化性产生影响。虽然现阶段的神经网络训练中我们很难事先就明确各种选用的偏倚的影响,而且模型学习到的模式也时常无法泛化到训练数据范围之外,但这起码是一个有希望的突破口。
一个从侧面起到帮助的事情是,近期有许多研究表明,经过任务中训练的 CNN 网络的感知表征和灵长类动物大脑中测量到的表征信号有相似之处。作者们就大胆假设,如果能让人工神经网络的表征和生物视觉系统的受激神经活动体现出的表征更为相似,就有可能对 CNN 的表现产生正面的影响 —— 比如和生物视觉系统一样面对有噪声、有变化的图像也有较稳定的表现。
这篇论文的作者们就是引入额外的偏倚,对模型进行正则化(引导),让模型学习到的模式与生物视觉系统的模式更为相近。具体来说,作者们直接测量了小鼠看到各种不同的复杂自然场景时,大脑中视觉皮质的神经响应。然后,作者们在训练 CNN 时也不再采用传统的仅以识别率为核心的训练目标,而是鼓励卷积特征的激活模式于生物神经信号的模式更为相近,也就是让 CNN 学习更接近生物视觉系统的特征表征。
测量小鼠
作者们在几天的时间内、在多只小鼠身上重复进行了许多轮主要视觉皮层的扫描。在实验中,小鼠的头部被固定,身体可以在履带上跑步。研究者们从 ImageNet 数据集中抽取了 5100 张不同的图像并转换为灰度色彩,分辨率降低到 64x36,然后展示给小鼠看(小鼠的视觉能力不如人类强,而且对彩色不敏感);其中的 5000 张只展示一次(测量一次),100 张展示 10 次(测量 10 次),这样每只小鼠的每轮实验一共有 6000 组测量数据。
选择小鼠作为实验动物的主要原因是,针对小鼠的基因改造方法比较多比较成熟,能让作者们同时测量 8000 个不同神经单元的信号。固然,足够复杂、足够接近人类的其它灵长目动物的视觉系统是理想的研究对象,但毕竟难度较大,而且视觉系统对小鼠来说仍然是重要的感知输入途径,仍然有测量意义。
作者们根据测量到的信号计算信噪比,对重复实验中采集到的信号进行平均处理,以及根据图像-测量信号对设计了一个降噪模型,最终对原始测量数据进行了有效的降噪,得到可靠的神经信号特征以便后续实验使用。然后,作者们在降噪后的数据上建立了 5000x5000 的相似性矩阵,并把它作为正则化 CNN 网络的目标。
CNN 训练
作者们选用了一个 18 层的 ResNet 模型作为要模仿小鼠的 CNN 模型主干,要让它在学习图像分类任务的同时,模仿小鼠视觉系统的激活模式。
典型的 CNN 分类任务训练中,要优化的损失只有一项任务损失,比如交叉熵损失。为了让 CNN 模仿小鼠,作者们增加了一项相似性损失。具体的工作模式是:
这样,作者们就通过正则化的方式,让原始的 CNN 模型学习到和生物视觉系统更为相近的视觉表征。
在结果对比部分,作者们首先把带有相似性损失训练的「生物视觉 CNN」(基于 ResNet18)和正常训练的几个模型做对比,而且是在转换为灰度的 CIFAR 图像上进行测试。完全没有额外正则化的 ResNet18 对于没有添加噪声的图像取得了最高的识别准确率,但随着添加噪声,准确率迅速下降;在测试中的最高噪声下,「生物视觉 CNN」的准确率仍然有 50%,远高于其他的模型;也就是说模型鲁棒性得到了显著提升。
作为对照试验,作者们也测试了不同程度的「模仿生物视觉」,比如用随机的相似性矩阵做正则化,以及用 VGG19 的 conv3-1 层的相似性矩阵做正则化,表现仍然不如「生物视觉 CNN」,但利用了 VGG19 的层的是最相似的。
另外还有一组对照实验是,作者们用未经过降噪的小鼠神经信号测量数据直接做正则化,发现模型鲁棒性的提升很小;作者们认为原因是原始神经信号有高度变化/随机性,这说明了降噪步骤的重要性。
在包含了多种对抗性攻击方法的对抗性图像识别测试中,「生物视觉 CNN」的表现也远好于其他的模型。
我们常说神经科学可以为机器学习带来启发,但是我们一直缺少能让神经生理学的研究成果直接转化成人工神经网络的方法。在这篇论文中,作者们展示了一种利用神经信号测量数据的正则化方法,它能给神经网络模型增加偏倚,让模型学习到的表征和小鼠大脑(生物视觉系统)的视觉表征更为相近,提高网络在推理任务中的鲁棒性。作者们认为,未来如果能让人工神经网络的视觉表征和生物视觉系统中 V1 以上的视觉皮层之间的相似性进一步提高的话,模型的鲁棒性、泛化性表现也能跟着继续提高。这些从生物大脑实际模仿学习到的表征有可能能够帮助机器学习算法的表现更接近人类视觉系统的表现。
针对方法,作者们使用的表征相似性方法是一种较为通用的方法,他们的原始信号降噪方法也帮助改进了生物视觉表征的评估(把视觉相关的信号进行解耦,以及把单独出现的神经信号转换为可靠的、降噪后的神经信号)。还有一种让 CNN 模型模仿生物神经表征的方法是,在训练执行任务的 CNN 模型时,从网络的中间层上联合训练一个线性读出器,让它直接从图像特征预测生物神经响应。不过,作者们认为他们选用的方法有更高的限制以及引导力度,因为 CNN 中有大量的仿形变换都可以被线性读出器补偿,在提高预测神经响应的准确率的同时,对 CNN 学习到的表征的影响却很小。
在这篇论文中作者们主要测量了「生物视觉 CNN」的鲁棒性,但显然,这个方向的研究的长远目标是利用模仿生物视觉的视觉表征,在领域迁移、小样本学习等等更多方面都带来改进。作者们未来也会在视觉系统的其它表现、以及更多的相似性限制方面做更多的探索。
另外,虽然方法设计以及实验结果表明模仿生物视觉特征能带来改进,但具体学习到了生物视觉表征的哪个方面还是一个有待探究的问题,这也是这项研究背后最值得做深入探究的问题。如果能够弄清具体的影响原理,可以不再借助大规模神经信号采集实验,而直接根据这些原理设计以及训练机器学习模型 —— 这也就是这条研究路线的至高目标。
阅读论文原文:https://arxiv.org/abs/1911.05072
点击“阅读原文”查看 图解十大 CNN 架构