卷积神经网络

        卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一 [1-2]  。卷积神经网络具有表征学习(representation learning)能力,能够按其阶层结构对输入信息进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”

        表征学习:在机器学习中,特征学习表征学习是学习一个特征的技术的集合:将原始数据转换成为能够被机器学习来有效开发的一种形式。它避免了手动提取特征的麻烦,允许计算机学习使用特征的同时,也学习如何提取特征:学习如何学习。

        对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络 ;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被应用于计算机视觉、自然语言处理等领域 。

        卷积神经网络仿造生物的视知觉(visual perception)机制构建,可以进行监督学习和非监督学习,其隐含层内的卷积核参数共享和层间连接的稀疏性使得卷积神经网络能够以较小的计算量对格点化(grid-like topology)特征,例如像素和音频进行学习、有稳定的效果且对数据没有额外的特征工程(feature engineering)要求 。

1 结构

1.1 输入层

        卷积神经网络的输入层可以处理多维数据,常见地,一维卷积神经网络的输入层接收一维或二维数组,其中一维数组通常为时间或频谱采样;二维数组可能包含多个通道;二维卷积神经网络的输入层接收二维或三维数组三维卷积神经网络的输入层接收四维数组  。由于卷积神经网络在计算机视觉领域应用较广,因此许多研究在介绍其结构时预先假设了三维输入数据,即平面上的二维像素点和RGB通道。

        与其它神经网络算法类似,由于使用梯度下降算法进行学习,卷积神经网络的输入特征需要进行标准化处理。具体地,在将学习数据输入卷积神经网络前,需在通道时间/频率维对输入数据进行归一化,若输入数据为像素,也可将分布于的原始像素值归一化至 区间 。输入特征的标准化有利于提升卷积神经网络的学习效率和表现。

1.2 隐含层

        卷积神经网络的隐含层包含卷积层池化层全连接层3类常见构筑,在一些更为现代的算法中可能有Inception模块残差块(residual block)等复杂构筑。在常见构筑中,卷积层和池化层为卷积神经网络特有。卷积层中的卷积核包含权重系数,而池化层不包含权重系数,因此在文献中,池化层可能不被认为是独立的层。以LeNet-5为例,3类常见构筑在隐含层中的顺序通常为:输入-卷积层-池化层-全连接层-输出。

1.2.1 卷积层(convolutional layer)

1. 卷积核(convolutional kernel)

        卷积层的功能是对输入数据进行特征提取,其内部包含多个卷积核,组成卷积核的每个元素都对应一个权重系数一个偏差量(bias vector),类似于一个前馈神经网络的神经元(neuron)。卷积层内每个神经元都与前一层中位置接近的区域的多个神经元相连,区域的大小取决于卷积核的大小,在文献中被称为“感受野(receptive field)”,其含义可类比视觉皮层细胞的感受野 。卷积核在工作时,会有规律地扫过输入特征,在感受野内对输入特征做矩阵元素乘法求和并叠加偏差量 :

        式中的求和部分等价于求解一次交叉相关(cross-correlation) 为偏差量, 和 表示第 层的卷积输入和输出,也被称为特征图(feature map), 为 的尺寸,这里假设特征图长宽相同。 对应特征图的像素, 为特征图的通道数, 、 和 是卷积层参数,对应卷积核大小、卷积步长(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)领域,例如机器翻译 、语音识别等。

注:

        感受野(Receptive Field),指的是神经网络中神经元“看到的”输入区域,在卷积神经网络中,feature map上某个元素的计算受输入图像上某个区域的影响,这个区域即该元素的感受野。

        卷积神经网络中,越深层的神经元看到的输入区域越大,如下图所示,kernel size 均为3×3,stride均为1,绿色标记的是Layer2 每个神经元看到的区域,黄色标记的是Layer3 看到的区域,具体地,Layer2每个神经元可看到Layer1上 3×3 大小的区域,Layer3 每个神经元看到Layer2 上 3×3 大小的区域,该区域可以又看到Layer1 上 5×5 大小的区域。

卷积神经网络_第1张图片

        所以,感受野是个相对概念,某层feature map上的元素看到前面不同层上的区域范围是不同的,通常在不特殊指定的情况下,感受野指的是看到输入图像上的区域。

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):介于有效填充和全填充之间,人为设定的填充,较少使用。

卷积神经网络_第2张图片

        带入先前的例子,若16×16的输入图像在经过单位步长的5×5的卷积核之前先进行相同填充,则会在水平和垂直方向填充两层,即两侧各增加2个像素( )变为20×20大小的图像,通过卷积核后,输出的特征图尺寸为16×16,保持了原本的尺寸。

3. 激励函数(activation function)

       https://blog.csdn.net/weixin_39910711/article/details/114849349

        卷积层中包含激励函数以协助表达复杂特征,其表示形式如下 :

        

        类似于其它深度学习算法,卷积神经网络通常使用线性整流函数(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中,激励函数在池化层之后。

1.2.2 池化层(pooling layer)

       在卷积层进行特征提取后,输出的特征图会被传递至池化层进行特征选择和信息过滤。池化层包含预设定的池化函数,其功能是将特征图中单个点的结果替换为其相邻区域的特征图统计量。池化层选取池化区域与卷积核扫描特征图步骤相同,由池化大小步长填充控制。

1. Lp池化(Lp pooling

        Lp池化是一类受视觉皮层内阶层结构启发而建立的池化模型 ,其一般表示形式为:

        

        式中步长 、像素 的含义与卷积层相同, 是预指定参数。当 时,Lp池化在池化区域内取均值,被称为均值池化(average pooling);当 时,Lp池化在区域内取极大值,被称为极大池化(max pooling)。均值池化和极大池化是在卷积神经网络的设计中被长期使用的池化方法,二者以损失特征图的部分信息或尺寸为代价保留图像的背景和纹理信息 。此外时的L2池化在一些工作中也有使用 。

2. 随机/混合池化

        混合池化(mixed pooling)随机池化(stochastic pooling)是Lp池化概念的延伸。随机池化会在其池化区域内按特定的概率分布随机选取一值,以确保部分非极大的激励信号能够进入下一个构筑。混合池化可以表示为均值池化和极大池化的线性组合 :

        

        有研究表明,相比于均值和极大池化,混合池化和随机池化具有正则化的功能,有利于避免卷积神经网络出现过拟合 。

3. 谱池化(spectral pooling)

        谱池化是基于FFT的池化方法,可以和FFT卷积一起被用于构建基于FFT的卷积神经网络。在给定特征图尺寸 ,和池化层输出尺寸时 ,谱池化对特征图的每个通道分别进行DFT变换,并从频谱中心截取n×n大小的序列进行DFT逆变换得到池化结果 。谱池化有滤波功能,可以在保存输入特征的低频变化信息的同时,调整特征图的大小 。基于成熟的FFT算法,谱池化能够以很小的计算量完成。

1.2.3 Inception模块(Inception module)

卷积神经网络_第3张图片

        Inception模块是对多个卷积层池化层进行堆叠所得的隐含层构筑。具体而言,一个Inception模块会同时包含多个不同类型的卷积和池化操作,并使用相同填充使上述操作得到相同尺寸的特征图,随后在数组中将这些特征图的通道进行叠加并通过激励函数 。由于上述做法在一个构筑中引入了多个卷积核,因此为简化计算,Inception模块通常设计了瓶颈层,首先使用单位卷积核,即NIN结构减少特征图的通道数,再进行其它卷积操作 。Inception模块最早被应用于GoogLeNet并在ImageNet数据集中取得了成功,并启发了(或推广得到了)基于深度可分卷积(depthwise separable convolution)搭建的一系列轻量级卷积神经网络,包括Xception和MobileNet 。

1.2.4 全连接层(fully-connected layer)

        卷积神经网络中的全连接层等价于传统前馈神经网络中的隐含层。全连接层位于卷积神经网络隐含层的最后部分,并只向其它全连接层传递信号。特征图在全连接层中会失去空间拓扑结构,被展开为向量并通过激励函数。

        按表征学习观点,卷积神经网络中的卷积层和池化层能够对输入数据进行特征提取全连接层的作用则是对提取的特征进行非线性组合以得到输出,即全连接层本身不被期望具有特征提取能力,而是试图利用现有的高阶特征完成学习目标。

        在一些卷积神经网络中,全连接层的功能可由全局均值池化(global average pooling)取代 ,全局均值池化会将特征图每个通道的所有值取平均,即若有7×7×256的特征图,全局均值池化将返回一个256的向量,其中每个元素都是7×7,步长为7,无填充的均值池化 。

1.3 输出层

        卷积神经网络中输出层的上游通常是全连接层,因此其结构和工作原理与传统前馈神经网络中的输出层相同。

  • 对于图像分类问题,输出层使用逻辑函数或归一化指数函数(softmax function)输出分类标签。
  • 在物体识别(object detection)问题中,输出层可设计为输出物体的中心坐标、大小和分类。
  • 在图像语义分割中,输出层直接输出每个像素的分类结果。

2 理论

2.1 学习范式

2.1.1 监督学习(supervised learning)

        卷积神经网络在监督学习中使用BP框架进行学习,其计算流程在LeCun (1989) 中就已经确定 ,是最早在BP框架进行学习的深度算法之一。卷积神经网络中的BP分为三部分,即全连接层与卷积核的反向传播和池化层的反向通路(backward pass)。全连接层的BP计算与传统的前馈神经网络相同,卷积层的反向传播是一个与前向传播类似的交叉相关计算

卷积神经网络_第4张图片

        式中为代价函数(cost function)计算的误差、 为激励函数的导数、 是学习速率(learning rate),若卷积核的前向传播使用卷积计算,则反向传播也对卷积核翻转以进行卷积运算。卷积神经网络的误差函数可以有多种选择,常见的包括Softmax损失函数(softmax loss)铰链损失函数(hinge loss)三重损失函数(triplet loss)等 。

        池化层在反向传播中没有参数更新,因此只需要根据池化方法将误差分配到特征图的合适位置即可,对极大池化,所有误差会被赋予到极大值所在位置;对均值池化,误差会平均分配到整个池化区域 。

        卷积神经网络通常使用BP框架内的随机梯度下降(Stochastic Gradient Descent, SGD)和其变体,例如Adam算法(Adaptive moment estimation) 。SGD在每次迭代中随机选择样本计算梯度,在学习样本充足的情形下有利于信息筛选,在迭代初期能快速收敛,且计算复杂度更小 。

2.1.2 非监督学习(unsupervised learning)

        卷积神经网络最初是面向监督学习问题设计的,但其也发展出了非监督学习范式 ,包括卷积自编码器(Convolutional AutoEncoders, CAE) 、卷积受限玻尔兹曼机(Convolutional Restricted Boltzmann Machines, CRBM)/卷积深度置信网络(Convolutional Deep Belief Networks, CDBN)深度卷积生成对抗网络(Deep Convolutional Generative Adversarial Networks, DCGAN) 。这些算法也可以视为在非监督学习算法的原始版本中引入卷积神经网络构筑的混合算法。

        CAE的构建逻辑与传统AE类似,首先使用卷积层和池化层建立常规的卷积神经网络作为编码器,随后使用反卷积和向上池化(up-pooling)作为解码器,以样本编码前后的误差进行学习,并输出编码器的编码结果实现对样本的维度消减(dimentionality reduction)和聚类(clustering)。在图像识别问题,例如MNIST中,CAE与其编码器同样结构的卷积神经网络在大样本时表现相当,但在小样本问题中具有更好的识别效果  。

        CRBM是以卷积层作为隐含层的受限玻尔兹曼机(Boltzmann Machines, RBM),在传统RBMs的基础上将隐含层分为多个“组(group)”,每个组包含一个卷积核,卷积核参数由该组对应的所有二元节点共享 。CDBN是以CRBM作为构筑进行堆叠得到的阶层式生成模型,为了在结构中提取高阶特征,CDBN加入了概率极大池化层( probabilistic max-pooling layer),和其对应的能量函数。CRBMs和CDBMs使用逐层贪婪算法(greedy layer-wise training)进行学习  ,并可以使用稀疏正则化(sparsity regularization)技术。在Caltech-101数据的物体识别问题中,一个24-100的两层CDBN识别准确率持平或超过了很多包含高度特化特征的分类和聚类算法。

        生成对抗网络( Generative Adversarial Networks, GAN)可被用于卷积神经网络的非监督学习,DCGAN从一组概率分布,即潜空间(latent space)中随机采样,并将信号输入一组完全由转置卷积核组成的生成器;生成器生成图像后输入以卷积神经网络构成的判别模型,判别模型判断生成图像是否是真实的学习样本。当生成模型能够使判别模型无法判断其生成图像与学习样本的区别时学习结束。研究表明DCGANs能够在图像处理问题中提取输入图像的高阶层表征,在CIFAR-10数据的试验中,对DCGAN判别模型的特征进行处理后做为其它算法的输入,能以很高的准确率对图像进行分类。

2.2 优化

2.2.1 正则化(regularization)

        在神经网络算法的各类正则化方法都可以用于卷积神经网络以防止过度拟合,常见的正则化方法包括Lp正则化(Lp-norm regularization)随机失活(spatial dropout)随机连接失活(drop connect)

        Lp正则化在定义损失函数时加入隐含层参数以约束神经网络的复杂度:

        

        式中为损失函数,包含弗罗贝尼乌斯范数(Frobenius norm)的求和项被称为正则化项,其中 是正则化参数,用以确定正则化项的约束力。可证明,当 时,正则化项是凸函数(convex function) ;特别地,当时,L2正则化又被成为Tikhonov正则化(Tikhonov regularization) 。 时的Lp正则化有利于卷积核权重的稀疏化,但此时的正则化向不是凸函数  。

        卷积神经网络中的空间随机失活(spatial dropout)是前馈神经网络中随机失活理论的推广。在全连接网络的学习中,

  • 随机失活随机将神经元的输出归零
  • 空间随机失活在迭代中会随机选取特征图的通道使其归零 。
  • 进一步地,随机连接失活直接作用于卷积核,在迭代中使卷积核的部分权重归零。

        研究表明空间随机失活和随机连接失活提升了卷积神经网络的泛化能力,在学习样本不足时有利于提升学习表现 。

2.2.2 分批归一化(Batch Normalization, BN)

        数据的标准化是神经网络输入管道中预处理的常见步骤,但在深度网络中,随着输入数据在隐含层内的逐级传递,其均值和标准差会发生改变,产生协变漂移(covariate shift)现象 。协变漂移被认为是深度网络发生梯度消失(vanishing gradient)的原因之一  。BN以引入额外学习参数为代价部分解决了此类问题,其策略是在隐含层中首先将特征标准化然后使用两个线性参数将标准化的特征放大作为新的输入,神经网络会在学习过程中更新其BN参数。卷积神经网络中的BN参数与卷积核参数具有相同的性质,即特征图中同一个通道的像素共享一组BN参数 。此外使用BN时卷积层不需要偏差项,其功能由BN参数代替。

        区别于“局部响应归一化层”(Local Response Normalization):经典的AlexNet结构还有另一种类型的层,叫作“局部响应归一化层”(Local Response Normalization),即LRN层,这类层应用得并不多。局部响应归一层的基本思路是,假如这是网络的一块,比如是13×13×256,LRN要做的就是选取一个位置,比如说这样一个位置,从这个位置穿过整个通道,能得到256个数字,并进行归一化。进行局部响应归一化的动机是,对于这张13×13的图像中的每个位置来说,我们可能并不需要太多的高激活神经元。但是后来,很多研究者发现LRN起不到太大作用,这应该是被我划掉的内容之一,因为并不重要,而且我们现在并不用LRN来训练网络。

卷积神经网络_第5张图片

2.2.3 跳跃连接(skip connection)

卷积神经网络_第6张图片

        跳跃连接或短路连接(shortcut connection)来源于循环神经网络(Recurrent Neural Network, RNN)中的跳跃连接和各类门控算法,是被用于缓解深度结构中梯度消失问题的技术 。卷积神经网络中的跳跃连接可以跨越任意数量的隐含层 ,这里以相邻隐含层间的跳跃进行说明:

        

        式中 是特征图的转换系数,当 和 的尺寸不同时,转换系数将尺寸更小的特征图,通常是 转换为 的尺寸,确保矩阵元素运算成立 。当的输出值小而 的输出值大时,卷积层 的输出近似于等值函数,对该层的特征传递没有负面影响,因此设定了层的学习基线,使该层在迭代中至少不会退化。在BP框架内,部分误差在反向传播时可以跳过层直接作用于 层,补偿了其在深度结构中逐级传播造成的梯度损失,因此有利于深度结构的误差传播。包含跳跃连接的多个卷积层的组合被称为残差块(residual block),是一些卷积神经网络算法,例如ResNet的构筑单元 。

 

 

 

 

 

 

 

 

 

 

 

2.3 加速

2.3.1 通用加速技术

        卷积神经网络可以使用和其它深度学习算法类似的加速技术以提升运行效率,包括量化(quantization)、迁移学习(transfer learning)等。

  • 量化:即在计算中使用低数值精度以提升计算速度,该技术在一些深度算法中有得到尝试。对于卷积神经网络,一个极端的例子是XNOR-Net,即仅由异或门(XNOR)搭建的卷积神经网络 。
  • 迁移学习:一般性的策略是将非标签数据迁移至标签数据以提升神经网络的表现,卷积神经网络中迁移学习通常为使用在标签数据下完成学习的卷积核权重初始化新的卷积神经网络,对非标签数据进行迁移,或应用于其它标签数据以缩短学习过程 。

2.3.2 FFT卷积

        卷积神经网络的卷积和池化计算都可以通过FFT(快速傅立叶变换(fast Fourier transform))转换至频率域内进行,此时卷积核权重与BP算法中梯度的FFT能够被重复利用,逆FFT也只需在输出结果时使用,降低了计算复杂度 。此外,作为应用较广的科学和工程数值计算方法,一些数值计算工具包含了GPU设备的FFT,能提供进一步加速 。FFT卷积在处理小尺寸的卷积核时可使用Winograd算法降低内存开销 。

2.3.3 权重稀疏化

        在卷积神经网络中对权重进行稀疏化,能够减少卷积核的冗余,降低计算复杂度,使用该技术的构筑被称为稀疏卷积神经网络(Sparse Convolutional Neural Networks) 。在对ImageNet数据的学习中,一个以90%比率稀疏化的卷积神经网络的运行速度是同结构传统卷积神经网络的2至10倍,而输出的分类精度仅损失了2% 。

3 构筑与算法

3.1 一维构筑

3.1.1 时间延迟网络(Time Delay Neural Network, TDNN)

3.1.2 WaveNet

3.2 二维构筑

3.2.1 LeNet-5

3.2.2 ILSVRC中的优胜算法

        ILSVRC为各类应用于计算机视觉的人工智能算法提供了比较的平台,其中有多个卷积神经网络算法在图像分类和物体识别任务中获得优胜,包括AlexNet、ZFNet、VGGNet、GoogLeNet和ResNet,这些算法在ImageNet数据中展现了良好的学习性能,也是卷积神经网络发展中具有代表意义的算法。

3.3 全卷积构筑

3.3.1 SRCNN(Super Resolution CNN)

3.3.2 UNet

4 性质

4.1 连接性

        卷积神经网络中卷积层间的连接被称为稀疏连接(sparse connection),即相比于前馈神经网络中的全连接,卷积层中的神经元仅与其相邻层的部分,而非全部神经元相连。具体地,卷积神经网络第l层特征图中的任意一个像素(神经元)都仅是l-1层中卷积核所定义的感受野内的像素的线性组合 。卷积神经网络的稀疏连接具有正则化的效果,提高了网络结构的稳定性和泛化能力,避免过度拟合,同时,稀疏连接减少了权重参数的总量,有利于神经网络的快速学习,和在计算时减少内存开销 。

        卷积神经网络中特征图同一通道内所有像素共享一组卷积核权重系数,该性质被称为权重共享(weight sharing)。权重共享将卷积神经网络和其它包含局部连接结构的神经网络相区分,后者虽然使用了稀疏连接,但不同连接的权重是不同的。权重共享和稀疏连接一样,减少了卷积神经网络的参数总量,并具有正则化的效果。

        在全连接网络视角下,卷积神经网络的稀疏连接和权重共享可以被视为两个无限强的先验(pirior),即一个隐含层神经元在其感受野之外的所有权重系数恒为0(但感受野可以在空间移动);且在一个通道内,所有神经元的权重系数相同。

4.2 表征学习

        作为深度学习的代表算法,卷积神经网络具有表征学习能力,即能够从输入信息中提取高阶特征。具体地,卷积神经网络中的卷积层和池化层能够响应输入特征的平移不变性,即能够识别位于空间不同位置的相近特征。能够提取平移不变特征是卷积神经网络在计算机视觉问题中得到应用的原因之一。

        平移不变特征在卷积神经网络内部的传递具有一般性的规律。在图像处理问题中,卷积神经网络前部的特征图通常会提取图像中有代表性的高频和低频特征;随后经过池化的特征图会显示出输入图像的边缘特征(aliasing artifacts);当信号进入更深的隐含层后,其更一般、更完整的特征会被提取。反卷积和反池化(un-pooling)可以对卷积神经网络的隐含层特征进行可视化。一个成功的卷积神经网络中,传递至全连接层的特征图会包含与学习目标相同的特征,例如图像分类中各个类别的完整图像 。

4.3 生物学相似性

        卷积神经网络中基于感受野设定的稀疏连接有明确对应的神经科学过程——视觉神经系统中视觉皮层(visual cortex)对视觉空间(visual space)的组织 。视觉皮层细胞从视网膜上的光感受器接收信号,但单个视觉皮层细胞不会接收光感受器的所有信号,而是只接受其所支配的刺激区域,即感受野内的信号。只有感受野内的刺激才能够激活该神经元。多个视觉皮层细胞通过系统地将感受野叠加完整接收视网膜传递的信号并建立视觉空间 。事实上机器学习的“感受野”一词即来自其对应的生物学研究 。卷积神经网络中的权重共享的性质在生物学中没有明确证据,但在对与大脑学习密切相关的目标传播(target-propagation, TP)和反馈调整(feedback alignment, FA) 机制的研究中,权重共享提升了学习效果 。

5 应用

5.1 计算机视觉

5.1.1 图像识别(image classification)

        卷积神经网络长期以来是图像识别领域的核心算法之一,并在学习数据充足时有稳定的表现 。对于一般的大规模图像分类问题,卷积神经网络可用于构建阶层分类器(hierarchical classifier) ,也可以在精细分类识别(fine-grained recognition)中用于提取图像的判别特征以供其它分类器进行学习 。对于后者,特征提取可以人为地将图像的不同部分分别输入卷积神经网络 ,也可以由卷积神经网络通过非监督学习自行提取。

        对于字符检测(text detection)和字符识别(text recognition)/光学字符读取,卷积神经网络被用于判断输入的图像是否包含字符,并从中剪取有效的字符片断。其中使用多个归一化指数函数直接分类的卷积神经网络被用于谷歌街景图像的门牌号识别 、包含条件随机场(Conditional Random Fields, CRF)图模型的卷积神经网络可以识别图像中的单词,卷积神经网络与循环神经网络(Recurrent Neural Network, RNN)相结合可以分别从图像中提取字符特征和进行序列标注(sequence labelling) 。

5.1.2 物体识别(object recognition)

        卷积神经网络可以通过三类方法进行物体识别:滑动窗口(sliding window)选择性搜索(selective search)YOLO(You Only Look Once) 。滑动窗口出现最早,并被用于手势识别等问题 ,但由于计算量大,已经被后两者淘汰。选择性搜索对应区域卷积神经网络(Region-based CNN),该算法首先通过一般性步骤判断一个窗口是否可能有目标物体,并进一步将其输入复杂的识别器中。YOLO算法将物体识别定义为对图像中分割框内各目标出现概率的回归问题,并对所有分割框使用同一个卷积神经网络输出各个目标的概率,中心坐标和框的尺寸 。基于卷积神经网络的物体识别已被应用于自动驾驶和交通实时监测系统 。

        此外,卷积神经网在图像语义分割(semantic segmentation) 、场景分类(scene labeling)和图像显著度检测(Visual Saliency Detection)等问题中也有应用,其表现被证实超过了很多使用特征工程的分类系统。

5.1.3 行为认知(action recognition)

        在针对图像的行为认知研究中,卷积神经网络提取的图像特征被应用于行为分类(action classification)。在视频的行为认知问题中,卷积神经网络可以保持其二维结构并通过堆叠连续时间片段的特征进行学习 、建立沿时间轴变化的3D卷积神经网络 、或者逐帧提取特征并输入循环神经网络 ,三者在特定问题下都可以表现出良好的效果。

5.1.4 姿态估计(pose estimation)

        姿态估计在图像中将人的姿态用坐标的形式输出,最早在姿态估计中使用的卷积神经网络是DeepPose,DeepPose的结构类似于AlexNet,以完整的图片作为输出,按监督学习的方式训练并输出坐标点。此外也有关于局部姿态估计的卷积神经网络应用研究 。对于视频数据,有研究使用滑动窗口的卷积神经网络进行逐帧的姿态估计。

5.1.5 神经风格迁移(neural style transfer)

http://www.ai-start.com/dl2017/html/lesson4-week4.html

        神经风格迁移是卷积神经网络的一项特殊应用,其功能是在给定的两份图像的基础上创作第三份图像,并使其内容和风格与给定的图像尽可能地接近 。

        神经风格迁移在本质上不是一个机器学习问题,而是对卷积神经网络表征学习能力的应用。具体地,神经风格迁移在预学习的卷积神经网络中提取高阶层表征,通过表征定义内容损失(content loss)风格损失(style loss),并在第三份图像(通常初始化为白噪声)中对内容和风格的线性组合进行逐格点优化以输出结果。

        神经风格迁移除进行艺术创作外,也被用于照片的后处理和超分辨率图像生成。

5.1.6 自然语言处理

        总体而言,由于受到窗口或卷积核尺寸的限制,无法很好地学习自然语言数据的长距离依赖和结构化语法特征,卷积神经网络在自然语言处理(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等。

 

todo:

数据增强:镜像,随机建材,色彩转换(PCA颜色转换),

活体检验 

一次学习

 

卷积神经网络百度百科:https://baike.baidu.com/item/%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/17541100?fr=aladdin

机器之心,从入门到精通:卷积神经网络初学者指南:https://www.jiqizhixin.com/articles/2016-08-01-3

您需要了解的9篇深度学习论文(CNN理解第3部分):https://adeshpande3.github.io/adeshpande3.github.io/The-9-Deep-Learning-Papers-You-Need-To-Know-About.html

视频:

https://blog.csdn.net/dadapongi6/article/details/105668394

吴恩达深度学习课程:
第一课 — 神经网络与深度学习: 【中英字幕】吴恩达深度学习课程第一课 — 神经网络与深度学习
第二课 — 改善深层神经网络:超参数调试、正则化以及优化:【中英字幕】吴恩达深度学习课程第二课 — 改善深层神经网络:超参数调试、正则化以及优化
第三课 — 结构化机器学习项目:【中英字幕】吴恩达深度学习课程第三课 — 结构化机器学习项目
第四课 — 卷积神经网络:【中英字幕】吴恩达深度学习课程第四课 — 卷积神经网络
第五课 — 序列模型:【中英字幕】吴恩达深度学习课程第五课 — 序列模型

对应的资料,黄海广博士整理提供的资料:

  • 知乎
  • github
  • 深度学习笔记目录在线阅读

作业:https://blog.csdn.net/u013733326/article/details/79827273

GitHub :

resnets:https://github.com/KaimingHe/deep-residual-networks

你可能感兴趣的:(深度学习)