导读:书山有路勤为径,学海无涯苦作舟
AI:让机器展现出人类智力
机器学习:抵达AI目标的一条路径
深度学习:实现机器学习的技术
需要卷积神经网络学习资料的还有配套的可以加微信
卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一 。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)” 。
卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 它包括卷积层(convolutional layer)和池化层(pooling layer)。
结构
输入层
卷积神经网络的输入层可以处理多维数据,常见地,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组;三维卷积神经网络的输入层接收四维数组。由于卷积神经网络在计算机视觉领域有广泛应用,因此许多研究在介绍其结构时预先假设了三维输入数据,即平面上的二维像素点和RGB通道。
与其它神经网络算法类似,由于使用梯度下降进行学习,卷积神经网络的输入特征需要进行标准化处理。具体地,在将学习数据输入卷积神经网络前,需在通道或时间/频率维对输入数据进行归一化,若输入数据为像素,也可将分布于
的原始像素值归一化至
区间。输入特征的标准化有利于提升算法的运行效率和学习表现。
隐含层
卷积神经网络的隐含层包含卷积层、池化层和全连接层3类常见构筑,在一些更为现代的算法中可能有Inception模块、残差块(residual block)等复杂构筑。在常见构筑中,卷积层和池化层为卷积神经网络特有。卷积层中的卷积核包含权重系数,而池化层不包含权重系数,因此在文献中,池化层可能不被认为是独立的层。以LeNet-5为例,3类常见构筑在隐含层中的顺序通常为:输入-卷积层-池化层-卷积层-池化层-全连接层-输出。
卷积层(convolutional layer)
1. 卷积核(convolutional kernel)
卷积层的功能是对输入数据进行特征提取,其内部包含多个卷积核,组成卷积核的每个元素都对应一个权重系数和一个偏差量(bias vector),类似于一个前馈神经网络的神经元(neuron)。卷积层内每个神经元都与前一层中位置接近的区域的多个神经元相连,区域的大小取决于卷积核的大小,在文献中被称为“感受野(receptive field)”,其含义可类比视觉皮层细胞的感受野。卷积核在工作时,会有规律地扫过输入特征,在感受野内对输入特征做矩阵元素乘法求和并叠加偏差量:
式中的求和部分等价于求解一次交叉相关(cross-correlation)。b为偏差量,和
表示第
层的卷积输 入和输出,也被称为特征图(feature map),为的尺寸,这里假设特征图长宽相同。对应特征图的像素,K为特征图的通道数,是卷积层参数,对应卷积核大小、卷积步长(stride)和填充(padding)层数。
上式以二维卷积核作为例子,一维或三维卷积核的工作方式与之类似。理论上卷积核也可以先翻转180度,再求解交叉相关,其结果等价于满足交换律的线性卷积(linear convolution),但这样做在增加求解步骤的同时并不能为求解参数取得便利,因此线性卷积核使用交叉相关代替了卷积。
特殊地,当卷积核是大小,步长
且不包含填充的单位卷积核时,卷积层内的交叉相关计算等价于矩阵乘法,并由此在卷积层间构建了全连接网络:
由单位卷积核组成的卷积层也被称为网中网(Network-In-Network, NIN)或多层感知器卷积层(multilayer perceptron convolution layer, mlpconv)。单位卷积核可以在保持特征图尺寸的同时减少图的通道数从而降低卷积层的计算量。完全由单位卷积核构建的卷积神经网络是一个包含参数共享的多层感知器(Muti-Layer Perceptron, MLP)。
在线性卷积的基础上,一些卷积神经网络使用了更为复杂的卷积,包括平铺卷积(tiled convolution)、反卷积(deconvolution)和扩张卷积(dilated convolution)。平铺卷积的卷积核只扫过特征图的一部份,剩余部分由同层的其它卷积核处理,因此卷积层间的参数仅被部分共享,有利于神经网络捕捉输入图像的旋转不变(shift-invariant)特征。反卷积或转置卷积(transposed convolution)将单个的输入激励与多个输出激励相连接,对输入图像进行放大。由反卷积和向上池化层(up-pooling layer)构成的卷积神经网络在图像语义分割(semantic segmentation)领域有重要应用,也被用于构建卷积自编码器(Convolutional AutoEncoder, CAE)。扩张卷积在线性卷积的基础上引入扩张率以提高卷积核的感受野,从而获得特征图的更多信息,在面向序列数据使用时有利于捕捉学习目标的长距离依赖(long-range dependency)。使用扩张卷积的卷积神经网络主要被用于自然语言处理(Natrual Language Processing, NLP)领域,例如机器翻译、语音识别等。
2. 卷积层参数
卷积层参数包括卷积核大小、步长和填充,三者共同决定了卷积层输出特征图的尺寸,是卷积神经网络的超参数。其中卷积核大小可以指定为小于输入图像尺寸的任意值,卷积核越大,可提取的输入特征越复杂
卷积步长定义了卷积核相邻两次扫过特征图时位置的距离,卷积步长为1时,卷积核会逐个扫过特征图的元素,步长为n时会在下一次扫描跳过n-1个像素 。
由卷积核的交叉相关计算可知,随着卷积层的堆叠,特征图的尺寸会逐步减小,例如16×16的输入图像在经过单位步长、无填充的5×5的卷积核后,会输出12×12的特征图。为此,填充是在特征图通过卷积核之前人为增大其尺寸以抵消计算中尺寸收缩影响的方法。常见的填充方法为按0填充和重复边界值填充(replication padding)。填充依据其层数和目的可分为四类 :
- 有效填充(valid padding):即完全不使用填充,卷积核只允许访问特征图中包含完整感受野的位置。输出的所有像素都是输入中相同数量像素的函数。使用有效填充的卷积被称为“窄卷积(narrow convolution)”,窄卷积输出的特征图尺寸为(L-f)/s+1。
- 相同填充/半填充(same/half padding):只进行足够的填充来保持输出和输入的特征图尺寸相同。相同填充下特征图的尺寸不会缩减但输入像素中靠近边界的部分相比于中间部分对于特征图的影响更小,即存在边界像素的欠表达。使用相同填充的卷积被称为“等长卷积(equal-width convolution)”。
- 全填充(full padding):进行足够多的填充使得每个像素在每个方向上被访问的次数相同。步长为1时,全填充输出的特征图尺寸为L+f-1,大于输入值。使用全填充的卷积被称为“宽卷积(wide convolution)”
- 任意填充(arbitrary padding):介于有效填充和全填充之间,人为设定的填充,较少使用。
带入先前的例子,若16×16的输入图像在经过单位步长的5×5的卷积核之前先进行相同填充,则会在水平和垂直方向填充两层,即两侧各增加2个像素(
)变为20×20大小的图像,通过卷积核后,输出的特征图尺寸为16×16,保持了原本的尺寸。
3. 激励函数(activation function)
卷积层中包含激励函数以协助表达复杂特征,其表示形式如下:
类似于其它深度学习算法,卷积神经网络通常使用线性整流函数(Rectified Linear Unit, ReLU),其它类似ReLU的变体包括有斜率的ReLU(Leaky ReLU, LReLU)、参数化的ReLU(Parametric ReLU, PReLU)、随机化的ReLU(Randomized ReLU, RReLU)、指数线性单元(Exponential Linear Unit, ELU)等 。在ReLU出现以前,Sigmoid函数和双曲正切函数(hyperbolic tangent)也有被使用 。
激励函数操作通常在卷积核之后,一些使用预激活(preactivation)技术的算法将激励函数置于卷积核之前 。在一些早期的卷积神经网络研究,例如LeNet-5中,激励函数在池化层之后 。
池化层(pooling layer)
在卷积层进行特征提取后,输出的特征图会被传递至池化层进行特征选择和信息过滤。池化层包含预设定的池化函数,其功能是将特征图中单个点的结果替换为其相邻区域的特征图统计量。池化层选取池化区域与卷积核扫描特征图步骤相同,由池化大小、步长和填充控制 。
1.池化(Lp pooling)
池化是一类受视觉皮层内阶层结构启发而建立的池化模型,其一般表示形式为:
式中步长
像素
的含义与卷积层相同,P是预指定参数。当P=1时,池化在池化区域内取均值,被称为均值池化(average pooling);当时,池化在区域内取极大值,被称为极大池化(max pooling)。均值池化和极大池化是最常见的池化方法,二者以损失特征图尺寸为代价保留图像的背景和纹理信息。此外当P=2时,池化在一些工作中也有使用。
2. 随机/混合池化
混合池化(mixed pooling)和随机池化(stochastic pooling)是L池化概念的延伸。随机池化会在其池化区域内按特定的概率分布随机选取一值,以确保部分非极大的激励信号能够进入下一个构筑。混合池化可以表示为均值池化和极大池化的线性组合:
有研究表明,混合池化和随机池化有利于防止卷积神经网络的过度拟合,比均值和极大池化有更好的表现。
3. 谱池化(spectral pooling)
谱池化是基于FFT的池化方法,可以和FFT卷积一起被用于构建基于FFT的卷积神经网络。在给定特征图尺寸和池化层输出尺寸时,谱池化对特征图的每个通道分别进行DFT变换,并从频谱中心截取,大小的序列进行DFT逆变换得到池化结果。谱池化有滤波功能,可以最大限度地保存低频变化信息,并能有效控制特征图的大小。此外,基于成熟的FFT算法,谱池化能够以很小的计算量完成。
Inception模块(Inception module)
Inception模块是对多个卷积层和池化层进行堆叠所得的特殊隐含层构筑。具体而言,一个Inception模块会同时包含多个不同类型的卷积和池化操作,并使用相同填充使上述操作得到相同尺寸的特征图,随后在数组中将这些特征图的通道进行叠加并通过激励函数。由于上述做法在一个构筑中引入了多个卷积计算,其计算量会显著增大,因此为简化计算量,Inception模块通常设计了瓶颈层,首先使用单位卷积核,即NIN结构减少特征图的通道数,再进行其它卷积操作。Inception模块最早被应用于GoogLeNet并取得了显著的成功,也启发了Xception算法中的深度可分卷积(depthwise separable convolution)思想。
全连接层(fully-connected layer)
卷积神经网络中的全连接层等价于传统前馈神经网络中的隐含层。全连接层通常搭建在卷积神经网络隐含层的最后部分,并只向其它全连接层传递信号。特征图在全连接层中会失去3维结构,被展开为向量并通过激励函数传递至下一层。
在一些卷积神经网络中,全连接层的功能可部分由全局均值池化(global average pooling)取代,全局均值池化会将特征图每个通道的所有值取平均,即若有特征图,全局均值池化将返回一个256的向量,其中每个元素都是步长为7,无填充的均值池化。
输出层
卷积神经网络中输出层的上游通常是全连接层,因此其结构和工作原理与传统前馈神经网络中的输出层相同。对于图像分类问题,输出层使用逻辑函数或归一化指数函数(softmax function)输出分类标签。在物体识别(object detection)问题中,输出层可设计为输出物体的中心坐标、大小和分类。在图像语义分割中,输出层直接输出每个像素的分类结果。
性质
连接性
卷积神经网络中卷积层间的连接被称为稀疏连接(sparse connection),即相比于前馈神经网络中的全连接,卷积层中的神经元仅与其相邻层的部分,而非全部神经元相连。具体地,卷积神经网络第l层特征图中的任意一个像素(神经元)都仅是l-1层中卷积核所定义的感受野内的像素的线性组合 。卷积神经网络的稀疏连接具有正则化的效果,提高了网络结构的稳定性和泛化能力,避免过度拟合,同时,稀疏连接减少了权重参数的总量,有利于神经网络的快速学习,和在计算时减少内存开销 。
卷积神经网络中特征图同一通道内的所有像素共享一组卷积核权重系数,该性质被称为权重共享(weight sharing)。权重共享将卷积神经网络和其它包含局部连接结构的神经网络相区分,后者虽然使用了稀疏连接,但不同连接的权重是不同的 。权重共享和稀疏连接一样,减少了卷积神经网络的参数总量,并具有正则化的效果 。
在全连接网络视角下,卷积神经网络的稀疏连接和权重共享可以被视为两个无限强的先验(pirior),即一个隐含层神经元在其感受野之外的所有权重系数恒为0(但感受野可以在空间移动);且在一个通道内,所有神经元的权重系数相同 。
表征性
基于反卷积和向上池化的卷积神经网络特征重构
作为深度学习的代表算法,卷积神经网络具有表征学习能力,即能够从输入信息中提取高阶特征。具体地,卷积神经网络中的卷积层和池化层能够响应输入特征的平移不变性,即能够识别位于空间不同位置的相近特征。能够提取平移不变特征是卷积神经网络在计算机视觉问题中得到应用的原因之一。
平移不变特征在卷积神经网络内部的传递具有一般性的规律。在图像处理问题中,卷积神经网络前部的特征图通常会提取图像中有代表性的高频和低频特征;随后经过池化的特征图会显示出输入图像的边缘特征(aliasing artifacts);当信号进入更深的隐含层后,其更一般、更完整的特征会被提取 。反卷积和反池化(un-pooling)可以对卷积神经网络的隐含层特征进行可视化 。一个成功的卷积神经网络中,传递至全连接层的特征图会包含与学习目标相同的特征,例如图像分类中各个类别的完整图像 。
生物学相似性
卷积神经网络中基于感受野设定的稀疏连接有明确对应的神经科学过程——视觉神经系统中视觉皮层(visual cortex)对视觉空间(visual space)的组织 。视觉皮层细胞从视网膜上的光感受器接收信号,但单个视觉皮层细胞不会接收光感受器的所有信号,而是只接受其所支配的刺激区域,即感受野内的信号。只有感受野内的刺激才能够激活该神经元。多个视觉皮层细胞通过系统地将感受野叠加完整接收视网膜传递的信号并建立视觉空间 。事实上机器学习的“感受野”一词即来自其对应的生物学研究 。卷积神经网络中的权重共享的性质在生物学中没有明确证据,但在对与大脑学习密切相关的目标传播(target-propagation, TP)和反馈调整(feedback alignment, FA) 机制的研究中,权重共享提升了学习效果 。
应用
计算机视觉(小编)
图像识别(image classification)
物体识别(object recognition)
行为认知(action recognition)
姿态估计(pose estimation)
神经风格转换(neural style transfer)
自然语言处理
总体而言,由于受到窗口或卷积核尺寸的限制,无法很好地学习自然语言数据的长距离依赖和结构化语法特征,卷积神经网络在自然语言处理(Natural Language Processing, NLP)中的应用要少于循环神经网络,且在很多问题中会在循环神经网络的构架上进行设计,但也有一些卷积神经网络算法在多个NLP主题中取得成功。
在语音处理(speech processing)领域,卷积神经网络的表现被证实优于隐马尔可夫模型(Hidden Markov Model, HMM)、高斯混合模型(Gaussian Mixture Model, GMM )和其它一些深度算法。有研究使用卷积神经网络和HMM的混合模型进行语音处理,模型使用了小的卷积核并将替池化层用全连接层代替以提升其学习能力。卷积神经网络也可用于语音合成(speech synthesis)和语言建模(language modeling),例如WaveNet使用卷积神经网络构建的生成模型输出语音的条件概率,并采样合成语音。卷积神经网络与长短记忆模型(Long Short Term Memory model, LSTM)相结合可以很好地对输入句子进行补全。其它有关的工作包括genCNN、ByteNet等。
其他
物理学
遥感科学
卷积神经网络在遥感科学,尤其是卫星遥感中有广泛应用。在解析遥感图像的几何、纹理和空间分布特征时,卷积神经网络在计算效率和分类准确度方面均有明显优势。依据遥感图像的来源和目的,卷积神经网络被用于下垫面使用和类型改变(land use/land cover change)研究以及物理量,例如海冰覆盖率(sea-ice concentration)的遥感反演。此外卷积神经网络被广泛用于遥感图像的物体识别和图像语义分割,后两者是直接的计算机视觉问题,这里不再赘述。
大气科学
包含卷积神经网络的编程模块
现代主流的机器学习库和界面,包括TensorFlow、Keras、Thenao、Microsoft-CNTK等都可以运行卷积神经网络算法。此外一些商用数值计算软件,例如MATLAB也有卷积神经网络的构建工具可用。
最后
需要卷积神经网络学习资料及深度学习论文的可以加我小助理微信
小编整理了网上的各种人工智能学习资料,一共500G,有需要的可以加微
❶ 人工智能课程及项目(含有课件源码)能写进简历的企业级项目实战
❷人工智能优质必看书籍(“圣经”花书等)+人工智能论文合集
❸ 国内外知名大佬教程及配套zi料(女神李飞飞、吴恩达、李沐)
❹ 超详解人工智能学习路+系统学习zi料
❺优质人工智能资源网站整理 、人工智能行业报告
如果对大家有帮助的话记得点赞收藏呀~爱你们~