1. Introduction
自从2012年AlexNet兴起,人工神经网络(ANN)在图像分类领域大放异彩。然而这么多年过去了,这些成熟的神经网络模型不论是在功能上还是结构上,与生物的大脑还有很大的差距。从结构上来讲,生物大脑中的神经元结构远比ANN中的复杂,就大脑神经元的信号模型进行比较,ANN的神经元只需要对信号求和然后直接通过简单的激活函数后全部输出就可以,而大脑神经元接收信号后直接影响的是膜电位,当膜电位足够大时再放出脉冲信号。从功能上来说,人类可以通过很少的样本就学习到一个新类别的特征,而ANN则需要大量标签样本用于学习。正是这些差异,激发了人们对于强人工智能的进一步探索,让脉冲神经网络(SNN)和小样本学习(Few-Shot Learning)成为近些年很多人关注的热点。
2. SNN与ANN的差异
顾名思义,脉冲神经网络(SNN)最大的特点就是用到了脉冲信号,SNN与ANN最主要的不同就是使用离散的脉冲信号替代ANN网络中传播的连续的模拟信号。SNN的网络结构与ANN类似,主要使用类似于全连接网络或者CNN结构的网络。为了在这种网络结构上产生脉冲信号,SNN使用了更加复杂也更加贴近于生物的神经元模型,目前使用最多的是Integrity-Fire(IF)模型和Leaky integrity-Fire(LIF)模型。对于这类神经元模型来说,输入信号直接影响的是神经元的状态(膜电位),只有当膜电位上升到阈值电位时,才会产生输出脉冲信号。
图1 LIF模型
这种神经元与ANN中所使用的简单将输入信号求和输出神经元有着很大的区别。首先,神经元的输入输出信号形式不同;其次,这种神经元不需要额外的激活函数;最后,这种神经元不需要输入偏置(bias)。这种神经元模型的复杂特性,使得后续很多工作可以基于神经元模型开展。
图2 感知机神经元
前面提到过SNN的网络结构与ANN类似,但是它们之间也有不同之处,这个不同就是源于生物神经网络中神经元的侧向抑制作用。所谓侧向抑制,就是指处于同一层中的不同神经元之间的相互作用。当一个神经元接受刺激被激活以后,它除了将刺激传递到下一层神经元,还会因为本身被激活而抑制其同一层内周边神经元被激活的概率。从神经元模型中体现的就是膜电位高于静息电位(-65mV或者是其他预设值)的神经元会抑制其周围甚至同层内所有神经元的膜电位增长。这种侧向抑制作用使得受到刺激较多的神经元比其他神经元有更大概率产生脉冲信号输出,从ANN的角度来看,这有点类似于Attention机制,但是又比Attention机制更加强烈和粗暴。
图3 侧向抑制示例,最右一层的黄色神经元对蓝色神经元的影响
3. SNN的优化方式
有了网络和信号,就要考虑如何获得网络连边权重了,在SNN中连边其实就是突触,这完全模仿了生物神经网络的设置。顺理成章,很多人也认为SNN的优化方式也应该模仿生物神经网络,这就产生了最早的使用STDP(Spike-Timing-Dependency Plasticity)方法进行优化的SNN。
STDP是一种非常经典的模拟生物的神经网络优化方法。STDP认为在一个事件中,对于相邻的位于前后两层的两个都产生了神经冲动的神经元,如果前一个神经元先产生脉冲,那么随着两个脉冲之间的时间间隔的减小,两个神经元之间突触连接的可能性逐渐增大。反之,如果前一个神经元后产生脉冲,则随着两个脉冲之间的时间间隔的减小,两个神经元之间突触连接的可能性逐渐减小。应用在SNN中,这里的突触连接可能性可以转变为突触连接强度。
图4 STDP突触连接更新示例
显然,STDP是一种无监督的学习方法,它并没有考虑目标与预测值之间的差距,也就是平时所说的误差,只是单纯的将图片和标签经脉冲编码后的信号注入网络。这种方法最大的问题就是效果不好,不能像监督学习那样能够让网络始终朝着目标(哪怕是local minimum)前进。为了解决这一问题,很多监督学习方法被提出来。这里主要分为on-line和off-line两类。Off-line的方法主要是先训练ANN网络,然后再将连边权重等训练所得参数以及各种超参数固化到SNN网络中。这种方法虽然效果较好,但是很显然丢掉了SNN本身仿生的意义。而很多on-line的方法则是将目光聚焦在神经元模型的膜电位上。
图5 一种基于膜电位的端到端SNN优化方式
众所周知,脉冲信号是不可求导的,那么现有的众多基于梯度的优化方法也就没法直接应用于SNN。但是与网络中传播的信号不同,神经元的膜电位在很多情况下都是连续可导的,而且前后两个神经元的膜电位变化状况也能反应它们之间传递的脉冲信号。所以很多研究也就集中在使用膜电位制造可导信号上。除此之外,on-line的另一类方法则是关注了脉冲信号累积的效果,同样可以产生类似于连续模拟信号的可导信号。这两类on-line学习方式虽然在传统任务上与off-line方式还有一点差距,但是在动作信号、动画信号甚至文字的识别上展现了强大的能力,在一定程度上实现了将多种任务整合的能力。
除了以上两类优化方式,基于规则的优化方法也逐渐显现出其强大的分类能力。通过对于生物神经网络长期的研究,以及对于ANN和传统图像分类任务的深刻认识,自动化所张铁林老师等人提出了基于稳态调节的SNN优化方法。这种方法中使用了多达五种的SNN突触强度更新规则,同时考虑到了膜电位、侧向抑制、突触短时可塑性、神经元间反向传播信号和生物稳态对于膜电位的作用,最后再用STDP方法将膜电位的变化情况固化到突触连接强度上,实现突触连接的长期可塑变化。相比于STDP,这种方法在一定程度上使用了监督学习方法;相比于其他监督学习方式,这种方法又有着非常充分的生物结构理论背书。这种方法使用简单的三层全连接结构网络就实现了高效的图像分类。但是这种方法同样也有着自己的缺陷,它使用了多种规则进行网络优化,那么需要调节的超参数比其他方法多出许多,使得本来就难以调出较好参数配置的SNN更加难以调参。
这三类方法各有优劣,还不能像ANN一样简洁地进行权重更新,不过它们给SNN带来的ANN所不具有的能力值得我们关注。
4. 小样本分类(Few-ShotClassification)
与SNN一样,小样本学习也是源于对人类自身的认知。小样本学习的提出最早是因为数据不足对机器学习造成的困扰。随着互联网时代越来越多数据的公开,大家的关注都被强大的深度学习吸引过去了,越来越多效果惊人的网络出现并被部署商用。但是这些网络存在的一个共同的问题就是要使用数以万计的标签样本进行训练,否则就会出现严重的过拟合问题,在标签样本不足的情况下泛化能力堪忧。
考虑到人可以通过很少的几个标签样本学习到一个类别的特征,那么神经网络也应该拥有这样的能力。与人类相比,现在的神经网络的不同点主要有两点。一是人类具有很多先验知识,即使是刚出生的婴儿也知道美丑。二是人类在学习的过程中很多情况下不光是学到一个概念,而是在加强自己学习的能力,这是传统神经网络所不具有的能力。针对这两点不同,一些研究者使用元学习方法解决小样本学习问题,这次主要讨论一下小样本分类问题。
要想从元学习的角度来讨论小样本分类问题,首先要明确任务(task)的概念。与普通的机器学习不同,元学习的数据集的基本单位是任务,对于整个元学习任务来说,训练集和测试集都是包含很多任务的数据集,而每一个任务当中又包含等量的训练数据(支撑集)和测试数据(查询集),另外训练集和测试集中类别没有交叉。对于小样本分类来说,训练集中有大量的标签数据,而测试集中的标签数据非常少。
图6 mini-ImageNet数据集tasks示例
元学习中解决小样本分类问题的方法有三类,一类是使用一个Hyper Network产生整个网络的参数,这种方法因为参数空间太大,而训练数据没有那么多,所以训练无法搜索足够大的参数空间;二是使用条件神经网络,最典型的方法就是原型神经网络(Prototypical Networks, PN),将查询集中的样本特征与支撑集中学到的类别特征进行比较;三是元学习领域著名模型无关元学习(Model-Agnostic Meta-Learning, MAML),使用一种简单的两层梯度下降方法大幅减少训练轮数,还能保持较好的训练效果。
图7 元学习解决小样本分类问题的方法示例
图7中简洁地展示了四种小样本学习领域中最为经典的方法,现在绝大多数state-of-the-art的方法都是基于这四个方法的改进的。目前效果最好的方法是ICLR2019收录的LEO方法,它集合了RelationNet和MAML两种方法,利用编解码器帮助MAML大幅缩小了参数搜索空间,又使用RelationNet加强了编解码过程中利用样本和标签映射的精度。
图8 LEO网络结构
版权声明