分享

神经网络与深度学习概述 第七章 DBN和卷积神经网络

 南风清雨 2017-11-12

本章主要是给大家讲一讲深度信念网络 (Deep Belief Network,DBN)卷积神经网络 (Convolutional Neural Network,CNN) 的相关概念和理解。

深度信念网络 (DBN)

第六章已经介绍过受限玻尔兹曼机(Restricted Boltzmann Machine,RBM)的概念,第五章介绍了稀疏编码器和栈式自编码器,我们已经知道把多个稀疏编码器堆叠起来就形成了栈式自编码器,同样的道理,如果把多个 RBM 像砖块一样堆叠起来构建一个网络,这个网络就叫做DBN

DBN 的训练过程和栈式自编码器的训练过程是很相似的,只是用RBM自编码器进行替换,并运用对比散度算法替换反向传播算法作为层间的学习算法。因此只要理解了《 第五章 稀疏编码和栈式自编码器》《第六章 受限波尔兹曼机》的内容,就能很简单地理解深度信念网络 DBN 了。

卷积神经网络的结构

对于传统的神经网络,神经网络获得一个输入(一个向量),并将其通过一系列的隐藏层转换。每个隐层由一组神经元组成,其中每个神经元和前一层神经元完全连接,在单层内的神经元完全独立并且不共享任何连接。最后全连接层叫作'输出层”,它实现了分类功能并输出分类的值。

神经网络与深度学习概述 第七章 DBN和卷积神经网络

传统的神经网络

传统神经网不能很好地适应所有的图像。比如,对于一张图片大小为 32×32×3 ( 32 宽 32 高 3 颜色通道),一个传统神经网络将有 32×32×3 = 3072个输入,假设隐含层有 1000 个神经元(对于有 3072 个输入的神经网络而言,1000个神经元并不算多),那么仅仅看输入层和隐含层之间的连接权重就有3072 * 1000 个参数,随着图片和隐含层神经元的增加,参数将还会增加。显然这种全连接结构不能适应更大的图片,此外,我们几乎肯定要更少的神经元,让参数学习起来更快更有效,显然,这种完全连接的结构很浪费,并且大量的参数会导致过度拟合

卷积神经网络有很大的优势,对于包含巨量图片的输入而言,它以一种更合理的方式限制结构。特别是,不同于一般的神经网络,一层的神经元只连接到它之前层的局部区域内,替代了之前完全连接的方式。

在我们深入了解实际的卷积神经网络之前,先简单了解卷积神经网络每一层的作用。官方的说法:每一层会定义一个图像过滤器或者称为一个有相关权重的方阵,这里其实就是特定特征的提取,这个特定是根据函数或是人为设定或是其他情况来定的。举个例子,人类对人脸或脸型的东西会比较敏感,这类特征会优先提取出来;青蛙的眼睛对运动的物体很敏感(这个例子不适用于静止图片),会优先提取运动部分的特征;猫对耗子、猎手对猎物等很敏感;还有有的对特定的颜色和形状搭配很敏感的,会优先提取出相应的特征来。比如,好色的男士,对某些特殊特征有很高的敏感度。

看完了上面的基础,我们来看卷积神经网的两个重要组成部分卷积层( Convolutional layer) 和 池化层( Pooling layer)

  • 卷积层( Convolutional layer)

输入数据应用若干过滤器,一个输入被用来做很多重要的特征提取。比如,图像的第一卷积层使用 4 个 6×6 过滤器,对图像应用一个过滤器之后得到的结果被称为待征图 (Feature map,FM)特征图谱的数目过滤器的数目相等。如果前面输入层也是一个卷积,那么过滤器应用在 FM 上,相当于输入一个 FM,输出另外一个 FM,也就是将滤波的特征值当成输入,再进行下一次过滤器过滤的过程。从直觉上讲,如果将一个权重分布到整个图像上,那么这个特征就和位置关了。同时多个过滤器可以分别探测出不同的特征。比如,像青蛙,有的负责提取运动特征,有的负责提取蚊子特征,当两个特征都提取出来时,就向特征重合的地方吐舌头,捕获美食。

如图,黄色区域的就是一个过滤器,把这个过滤器运用到整个图像上就是卷积过程,你可以每次选择向下和向左平移1步或者多步(stride >=1),当然为了提取图像边界特征你也可以在图形的外围加上1圈或者几圈 0 ,这就叫做zero-padding

过滤器与对应的元素加权求和后就得到卷积后 feature 的值提取出的特征值再经过一个激活函数映射后得到卷积层最终输出的特征

神经网络与深度学习概述 第七章 DBN和卷积神经网络

卷积过程

传统的神经网络一般用 sigmoid 函数作为激活函数,但是卷积神经网络一般使用 ReLU 函数修正线性单元/Rectified linear unit)。也就是加权求和后大于 0 则保持不对,如果小于 0 的话就用 0 来代替

神经网络与深度学习概述 第七章 DBN和卷积神经网络

ReLU 函数

  • 子采样样层( Subsample layer)/又叫池化层( Pooling layer)

池化层用于缩减输入数据的规模。例如,输入一个 12×12 的 卷积特征矩阵,并通过一个 6×6 的子采样,那么可以得到一个2×2 的输出图像,这意味着原图像上的 36 个像素会并成为输出图像中的一个像素。实现子采样的方法有很多种,最常见的是最大值合并、平均值合并及随机合并。这其实类似于对一个图层打了马赛克,再对单个马赛克进行特征提取,对计算机来说,可以减少计算量

池化过程就是把卷积后的特征矩阵分为多个区域,然后选取每个区域的最大值或者平均值作为这个区域的代表,从中提取有代表性的特征大大减少了参数的数目

神经网络与深度学习概述 第七章 DBN和卷积神经网络

池化过程

最后一个子采样层(或卷积层)通常连接到一个或多个全连接层全连接层输出就是最终的输出。全连接层将计算分类的分值,确定最终的类别。这一部分与普通神经网络相同,这一层中的每个神经元都将和上一层的每个神经元连接。

卷积神经网络的训练过程通过改进的反向传播实现,从全连接层到池化层再到卷积层,逐层改进权重。

参数减少和权值共享

CNN厉害的地方就在于通过局部感知区域权值共享减少了神经网络需要训练的参数的个数

  • 局部感知

假设有 1000像素×1000像素的图像,则有一百万个输入神经元,假设隐含层神经元个数也是1000000,那么它们全连接的话,也就是每个隐层神经元都连接图像的每一个像素点,就有1000000×1000000 = 10^12 个连接,也就是 10^12 个权值参数。如果计算所有的连接权重,显然是不值得的。我们利用之前提到的卷积进行原始数据的分组特征提取,也就是把它分成一块一块后提取特征。这样,我们就可以减少连接的数目,也就是减少神经网络需要训练的权值参数的个数。假如局部感受区域是 10像素×10像素,也就是设定过滤器是 10像素 ×10像素,隐层每个感受区域只需要和这 10像素 × 10像素的局部图像相连接,所以1百万个隐层神经元就只有一亿个连接,即 10^8 个参数,比原来减少了4个数量级,大幅度减少了计算量

  • 权值共享

在上面的局部连接中,每个神经元都对应100个参数,一共1000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100。

权值共享:我们可以将这 100 个参数(也就是卷积操作)看成是提取特征的方式,该方式与图像上的位置无关,这其中隐含的原理是:图像的一部分统计特性与其他部分是一样的。这也意味着我们在这部分学习的特征也能在用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。

更直观一些,当从一个大尺寸图像中随机选取一小块,比如说 8×8 作为样本,并且从这个小块样本中学习到了一些特征,那么我们就可以把从这个 8×8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去,看看其他地方有没有出现类似的特征。特别是,我们可以用从 8×8 样本中学习到的特征跟原本的大尺寸图像做卷积,从而可以在这个大尺寸图像上的任意一个位置获得一个特征的不同激活值,表明图像的其他位置与该特征的符合程度,每个卷积都是一种特征提取方式,就像一个筛子,将图像中符合条件(激活值越越符合条件)的那部分特征筛选出来

你会发现,如果只用一个滤波器(卷积核),这样提取特征只是提取了一种特征。我们需要对各种图像特征进行特征提取,比如数字识别和图像识别就不一样,我们需要提取不同的特征通过多加几种卷积核(过滤器)

如上所述,只有100个参数时,表明只有 1 个 10×10 的卷积核。显然,特征提取是不充分的,也就是说,卷积核不够,我们可以添加多个卷积核,比如100种卷积核,可以学习100种特征

所以,假设我们加到 100 种卷积核,每种卷积核的参数不一样,则表示它提出输入图像的不同特征,例如不同的边缘。这样每种卷积核去卷积图像就得到对图像的不同特征的表示。这样,我们就能很清晰地得到我们这一层的参数是:100种卷积核 x 每种卷积核共享100个参数 = 100 ×100 =10000,也就是 1 万个参数。看一下最开始我们的参数是10^12,而且只是一种特征提取,现在我们把它缩减到 1 万个参数,还能提取100种特征,这相当于利用算法的进步降低了很多计算的成本

总结,卷积神经网络核心思想是将完整输入信息切分成一个个子采样层进行采样,然后将提取的特征和权重值作为输入参数,传导到下一层。这其中充分利用了权值共享、特征分区提取、时间或空间采样规则等方法。

卷积网络较一般神经网络在图像处理方面有如下优点:

  • 输入图像和网络的拓扑结构能更好地吻合;

  • 特征提取和模式分类同时进行,并同时在训练中产生;

  • 权重共享可以减少网络的训练参数,使神经网络结构变得更简单,适应性更强。

卷积神经网络目前已成为语音分析图像识别领域的研究热点。它的权值共享网络结构使它更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。卷积神经网络的这个优点在网络的输入是多维图像时表现得更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取数据重建过程。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多