未来的AI——从卷积神经网络到脉冲神经网络

未来的AI以及计算机视觉——从卷积神经网络到脉冲神经网络

 

本文主要进行了三方面的工作:一,回顾了计算机视觉技术的过去,计算机视觉的过去只要是指深度学习被应用于计算机视觉之前计算机视觉所采取的技术。二,总结了计算机视觉技术的现状,主要是介绍了卷积神经网络也就是深度学习在各个计算机视觉任务中的应用情况。三,展望了计算机视觉技术的未来,也就是脉冲神经网络在计算机视觉中的应用。其中,脉冲神经网络是一种很新,很前沿,也很先进的技术。它是一种完全仿生模仿人脑神经元和人脑神经网络机理的智能算法。它是人类目前从原理上来说最有希望实现初步的强人工智能的技术,在学术界和工业界日益受到重视。

1, 引言

计算机视觉与自然语言处理以及语音识别并列为机器学习的三大热点方向。计算机视觉问题以及计算机视觉技术由来已久,用最简朴的语言来说,计算机视觉就是教计算机如何看到这个世界并且根据看到的东西去完成更深入的理解或者做出相关的反应的学科。最早的计算机视觉研究起源于20世纪70年代,从这时起人们就在努力的试图替计算机总结人眼观察事物的规律和方法,这也就是所谓的图像内容建模,这也叫做三维建模、立体视觉等。其中较有代表性,在当时较为著名的模型有弹簧模型、广义圆柱体模型等[1]。在今天的人看来这些理论都是很不科学的,但是正是它们使得计算机视觉被作为一门正式的学科来研究。到了20世纪80年代,人们提出了主动视觉理论和定性视觉理论,著名的图像金字塔和Canny边缘检测算子就是在这段时间里提出的[1]。而在20世纪90年代人脸识别迎来了一个小的研究高潮。各种用来描述图像特征的算子不断发明出来,比如著名的SIFT算法就是在这期间提出的[1]。进入21世纪之后,深度学习、卷积神经网络在计算机视觉中开始了大规模的应用。这也就是计算机视觉发展到今天的最近状况了。深度学习技术目前已经成为了计算机视觉中的主流方法。像这样以自适应学习图像特征的智能算法为框架完成计算机视觉任务的方法已经稳定成为公认的主流并且今后相当长的一段时间内不会动摇。所以思考未来的计算机视觉是什么样就是相当于要思考未来的深度学习是什么样的,卷积神经网络的下一步是什么样的新技术呢?这就是脉冲神经网络。脉冲神经网络被誉为第三代神经网络技术,第一代神经网络技术就是在20世纪80年代火爆一时的多层感知机(Perceptron),其数学本质其实是支持向量(张量)机;第二代神经网络就是现在大家都在用的卷积神经网络。脉冲神经网络被认为是第三代神经网络说明了它极端重要的理论潜力和现实价值。本文的最后一节就会着重展示一下脉冲神经网络在计算机视觉中的应用。

 

2, 计算机视觉的过去——手工提取特征

图像特征提取就是将高维的图像数据进行简化表达,用图像中的关键元素、关键像素、基本元件来代表整个图像所表达的内容的类别或特点。这些关键元素、关键像素、基本原件就称之为图像的特征。深度学习其实就是用卷积神经网络来自动的识别出图像中可学习的特征,而在深度学习大规模运用以前,这些特征都是通过手工的程式算法来提取的。一般会手工提取的特征主要包括:角点、斑点、边缘、特征描述子描述的特定形状。

 

2.1, 角点检测

角点就是物体的拐角,它有两个具体定义的类型[1]

(1) 角点可以是两个边缘的交叉点。

(2) 角点是邻域内具有两个主方向的特征点。

角点检测算法主要有:Harris角点检测算法、Fast角点检测算法、Fast-ER角点检测算法。其中Harris角点检测算法是在各个方向上移动一个特定的小窗口,窗口内区域的灰度发生了较大的变化那么就认为在窗口内遇到了角点。而Fast角点是考虑角点的某些属性与众不同,比如考虑灰度图像的话若该点的灰度值比邻域内足够多的像素点的灰度值大或者小则认为该点是角点。而Fast-ER主要是在考虑如何衡量检测到的特征点是否能在第二张图像上被检测到。

 

2.2, 斑点检测

斑点通常是指与周围有着颜色和灰度差别的区域。斑点是图像中最常出现的元素。例如,一棵树是一个斑点,一块草地也是一个斑点,一栋房子也可以是,正因为其是一个区域,它具有很强的稳定性,很强的抗噪声能力。人工检测斑点的主要思路就是从图像中检测出其内部像素灰度值比它周围像素的大或者小的区域。有两种办法实现这个目标:基于求导的微分方法(微分检测器)、基于局部极值的分水岭算法。

其中微分算法适用范围较为广泛而且更为灵活,其基本原理可理解为用一个形似高斯核函数的三维曲面去套这个斑点,如果该三维曲面从上往下套过程中套到某个高度时完全套下了则认为时斑点。这个函数可以随意进行几何变换从而适应于椭圆形斑点,凹形斑点等各种情况[1]

 

2.3, 边缘检测

边缘检测时图像处理与计算机视觉中极为重要的一种分析图象的方法,其目的为找到图像中亮度变化剧烈的像素点构成的集合,表现出来往往是轮廓。通常以下四种情况会被视为一个边缘[1]

(1) 深度的不连续,物体处于不同平面上。

(2) 表面方向的不连续,如正方体相邻的两个面。

(3) 材质不同,这会导致反光系数不同。

(4) 场景中光照不同,比如被树荫覆盖的路面。

边缘检测方法主要有如下四个步骤[1]

(1) 图像滤波(降低噪声,因为边缘检测算法一般都是二阶微分算子,对噪声非常敏感。)

(2) 图像增强(即边缘增强,一般是通过计算梯度幅值来完成)

(3) 图像检测(区分梯度幅值大的区域哪些是边缘哪些不是)

(4) 图像定位(用一根线代表了边缘区域包含的所有像素点以表明该条边缘的位置)

常见的边缘检测算法有:梯度算子、一阶微分算子、二阶微分算子、SUSAN窗口模板检测算子、小波分析、模糊算法。

 

 

2.4, 特征描述子

特征描述子是指检测图像的局部特征,比如边缘、角点、轮廓等,然后根据匹配目标的需要进行特征的组合、变换已形成易于匹配,稳定性好的特征向量从而把图像匹配的问题转换成了特征向量的匹配问题。较为知名的特征描述子有:BRIEF描述子、ORB描述子、BRISK特征提取子、FREAK特征提取子[1]

 

3, 计算机视觉的现在——卷积神经网络

 

卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色的表现[1]。卷积神经网络与普通神经网络非常相似,它们都由具有可学习的权重和偏置常量的神经元组成。每个神经元都接受一些输入并做一些点积运算,输出每个分类的分数,不同之处在于卷积神经网络输入的是像2图片这样的三维数据。可以把特定的性质编码入网络结构使得前馈函数更有效率并减少了大量的参数。卷积神经网络把神经元设计成了三个维度:宽度、高度、深度。利用多层(深度)卷积神经网络的机器学习就称之为深度学习。

 

3.1, 神经网络的基本原理简介

人工神经网络最重要的方面 —- 学习。这种系统最大的威力在于,它们可以像人类一样,一旦在训练过程中熟悉了某种问题,随后便可以解决同类型的问题。人工神经网络中最小也是最重要的单元叫神经元。与生物神经系统类似,这些神经元也互相连接并具有强大的处理能力。每个神经元都有输入连接和输出连接。这些连接模拟了大脑中突触的行为。与大脑中突触传递信号的方式相同——信号从一个神经元传递到另一个神经元,这些连接也在人造神经元之间传递信息。每一个连接都有权重,这意味着发送到每个连接的值要乘以这个因子。再次强调,这种模式是从大脑突触得到的启发,权重实际上模拟了生物神经元之间传递的神经递质的数量。所以,如果某个连接重要,那么它将具有比那些不重要的连接更大的权重值。由于可能有许多值进入一个神经元,每个神经元便有一个所谓的输入函数。通常,连接的输入值都会被加权求和。然后该值被传递给激活函数,激活函数的作用是计算出是否将一些信号发送到该神经元的输出。整个训练的关键是给权重设置正确的值,从而在神经网络中得到期望的输出。

 

3.2, 图像分类

图像分类任务是深度学习在计算机视觉领域所处理过的第一个任务。2012年ILSVRC世界大赛上Alex Krizhevsky等人的有监督深度卷积神经网络模型打破了分类任务的精确度纪录以高出第二名10%的性能取得了冠军,这就是大名鼎鼎的AlexNet,它是计算机视觉领域的革命性成果吗,从此深度卷积神经网络成为多数视觉任务的主导结构。

 

 

后来,为了探索网络深度与性能之间的关系牛津大学计算机视觉组VGG又发明出了VGGNet。之后谷歌的研究人员又想到通过把全连接变成稀疏链接来减少参数量,进一步减轻过拟合,开发出了GoogleNet,并且在其中第一次加入了现在大家都很常用的batch_normalize操作。紧接着又诞生了一个在深度学习历史上具有里程碑意义的成果,深度残差网络ResNet。它突破了深度神经网络深度的限制,它通过捷径连接直接把输入传到输出作为初始结果,当深度神经网络接近饱和时,接下来网络层的学习目标就转变为近似恒等映射的学习。这有效的解决了平原网络中臭名昭著的“梯度消失”问题,使得理论上说神经网络可以无限深而不会出现精度下降[1]

 

 

3.3, 目标检测

目标检测时计算机视觉中一类重要问题,在给定的图片中精确找到物体所在的位置,标出物体的类别。与分类问题不同,目标检测的图像中通常会存在很多物体,需要对多个物体进行检测,提升了任务难度。R-CNN时首个将候选区域和卷积神经网络结合在一起的模型。其基本步骤如下[1]

(1) 通过选择性搜索等传统方法找出一系列候选框包含了可能存在物体的区域。

(2) 把各个区域的尺寸归一化成卷积网络的输入尺寸输入卷积层中。

(3) 对网络输出的结果进行分类来判断具体类别。

(4) 通过回归器修正候选框的位置。

(5) 对于每一个类都训练一个线性回归模型去判断这个框的准确度。

但是R-CNN的最大问题是其计算过程极其重复和复杂,导致其计算异常缓慢。为了解决这一问题,现今著名的YOLO网络被发明出来,YOLO将候选区域提取和分类这两个阶段整合到一个完整的网络里,它不再通过专门的传统方法来预测候选框的位置,而是设计一部分卷积网络结构用来完成这一任务并且直接和后面的分类任务的网络结构对接。YOLO包括24个卷积层和2个全连接层,通过一系列卷积层来提取图像特征,全连接层进行位置预测和分类[1]

 

 

3.4, 语义分割

图像语义分割的概念由Ohta等人提出,可基本概括为:对图像中的每一个像素进行分类,用一个预先定好的标注来表示像素的语义类型,在图像分割的基础上对图像中的目标或前景加上一定的语义信息或语义标签,根据图像本身的纹理、上下文和其他深层语义特征来得出图像本身需要表达的信息[2]

基于深度学习的图像语义分割可分为两个大类[2]

第一大类是基于区域分类的方法,它里面又有两类方法[2]

(1) 基于候选区域的方法

(2) 基于分割掩膜的方法

第二大类是基于像素分类的方法,它里面则分有七种方法[2]

(1) 基于全卷积网络的方法(没有全连接层而以反卷积层代替之的网络结构)

(2) 基于优化卷积结构的方法

(3) 基于编码器-解码器的方法

(4) 基于概率图模型的方法

(5) 基于特征融合的方法

(6) 基于循环神经网络的方法

(7) 基于生成对抗网络的方法

 

 

3.4, 图片描述与关系识别

图像描述与关系识别问题本质上是视觉到语言的问题,是一种动态的目标检测,由全局信息生成图像摘要。一般来说对于图像描述任务,最基本的模型架构分为两个部分[1]

(1) 一个卷积神经网络用于提取图像特征。

(2) 一个循环神经网络用于输入特征输出生成对应的文字描述。

后来人们又根据人们观察图片内容时的思维特性在编码器-解码器的卷积层中加入了attention注意力机制使得图片描述这一存在很多一对多关系的问题得到了更好的解决。

 

4, 计算机视觉的未来——脉冲神经网络

 

脉冲神经网络被誉为第三代人工神经网络。被视为目前人类最有机会产生强人工智能的前沿技术。神经科学的研究表明,神经信息被编码为精确定时的脉冲序列而不仅仅是简单的脉冲发放频率。脉冲神经网络作为新一代人工神经网络计算模型,由更具生物真实性的脉冲神经元为基本单元构成,应用精确定时的脉冲序列表示和处理信息[3]

 

4.1, 脉冲神经网络基本原理简介

人工神经网络是对生物神经系统结构和功能的抽象和模拟,在信息处理和模式识别等领域发挥着重要作用。传统人工神经网络应用生物神经元的脉冲发放频率编码信息,神经元的输出一般表示为给定区间的模拟量。然而生物神经系统对于机体内外环境的各种变化均以神经元发放脉冲序列的形式做出响应,而且越来越多的神经科学研究表明基于精确脉冲定时编码与处理神经信息的重要性。由更具生物可解释性的脉冲神经元模型为基本单元构成脉冲神经网络,应用脉冲序列表示与处理信息,这种编码方式整合了信息的多个方面,如时间、空间、频率和相位等。脉冲神经元在某一特定时间点发放一个脉冲,然后通过神经元的轴突传递至下一个神经元。脉冲的大小和形状与神经元的输入无关,但是神经元发放脉冲的时间依赖于神经元的输入。它拥有更强大的计算能力,可以模拟各种神经信号和任意的连续函数,非常适合大脑神经信号的处理,是进行复杂时空信息处理的有效工具[3]

 

4.2, 脉冲神经网络的图像分割方法

脉冲耦合神经网络是一种特殊的脉冲神经网络模型,该模型具有对图像二维空间中灰度相似像素进行分组的特点,在图像分割领域显示出了独特的优越性,取得了诸多研究成果。

假设分割图像的大小为W*H,则脉冲神经网络中每层对应的神经元数目为W*H,中间层每个神经元对应的感受野大小为N*N。对于图像像素灰度值采用首脉冲触发时间线性编码策略,然后以感受野为单位送入中间层,计算神经元的膜电位V(t),判断是否达到了神经元的阈值电位Vthresh最后根据分割阈值Tthresh得到分割后的二值图像[3]

 

模型第一层表示光感输入层,所有的像素都对应着一个接收器;第二层也即是中间层,每个神经元都对应着一个输入层的感受野,整合来自感受野中的脉冲序列;第三层表示输出层,输出层的每一个神经元对应中间层神经元的脉冲输出[3]。输出层的脉冲发放时间就表示相应的输入层图像的分割结果。

 

4.3   脉冲神经网络的图像识别方法

应用具有内部反馈的局部递归脉冲神经网络进行图像识别,在递归脉冲神经网络结构中,输入层输入编码后的图像信息,输出层输出分类结果,所有神经元的输入和输出都是由多个脉冲组成的脉冲序列。输入层神经元与隐藏层神经元之间前馈连接。突触前神经元与突触后神经元之间由延迟不同的几条突触连接。递归脉冲神经网络一般采用随时间演化的反向传播算法对神经元的突触权值进行学习,基本思路是把网络各时刻的处理变换成一个等价的前馈普通神经网络,变换后的网络是前向传递的,可用稍加修正的反向传播算法来训练吗,可借鉴该思想扩展构造递归脉冲神经网络的监督学习算法[3]

 

5, 结论

计算机视觉在日后的发展必然愈发蓬勃和迅速,而它的发展就必定会是与新技术革命紧密结合的。脉冲神经网络作为目前为止人类唯一的下一代神经网络模型担当着继续发展人类人工智能事业,向强人工智能迈进的重任。目前广泛使用的深度学习技术固然成熟且重要,但是它终究不是人工智能的最终答案,这本质上源于它的生物不可解释性。所以说,在未来,未来的计算机视觉很可能是脉冲神经网络的天下。

 

 

 

 

 

 

参考文献

[1] 双锴,计算机视觉(第一版)[M]2020,北京邮电大学出版社.

[2] 田萱,基于深度学习的图像语义分割技术(第一版)[M]2019,海洋出版社.

[3] 王向文,脉冲神经网络原理及应用(第一版)[M]2018,科学出版社.

资源下载: