卷积神经网络——基本知识

这里写自定义目录标题

  • 简介
    • 卷积
    • 池化
  • 卷积神经网络的一般框架

简介

卷积神经网络和全连网络一样同属前馈神经网络。相对全连神经网络而言,卷积神经网络相对进步的地方是卷积层结构和池化层结构的引入,这两种层都是卷积神经网络重要的组成部分。卷积是一种特殊的线性运算,用来替代一般的矩阵乘法运算。

卷积

卷积运算中,第一个参数叫做输入,第二个参数叫核函数或卷积核,输出叫做特征映射或特征图。对于一个卷积运算,输入和卷积核是可交换的。
卷积神经网络——基本知识_第1张图片卷积神经网络——基本知识_第2张图片

卷积运算具有3个重要的特性:稀疏连接( Sparse Connectivity )、参数共享(Parameter Sharing )和等变表示( Equivariant Representations ),卷积层通过这些特性来改善机器学习系统。

1. 稀疏连接
假设有m个输入和n个输出,那么运行1个矩阵乘法需要mn个参数,如果我们限制每一个输出只连接到k个输入,那么稀疏的连接方法只需要kn个参数。
卷积神经网络——基本知识_第3张图片
通过稀疏连接,我们减少l权重参数数量,减少权重参数数量有两个好处:一是降低计算的复杂度;二是过多的连接会导致严重的过拟合,减少连接数可以提升模型的泛化性。
2. 参数共享
参数共享是指相同的参数被用在一个模型的多个函数 。在全连神经网络中,计算每一层的结果时,权重矩阵中的每一个元素只使用了一次。然而在卷积神经网络中,核的每一个元素会作用在输入的每一位置上。
卷积神经网络——基本知识_第4张图片
根据参数是否共享,将模型输入与输出之间的关系用实线和虚线的箭头来表示。在使用参数共享的卷积模型中,实线箭头表示对元素核的中间元素的使用,因为参数共享,这个参数被用于所有的输入。在没有使用参数共享的全连模型中,这个单独的实线箭头表示权重矩阵中的参数仅仅在输入与输出间被使用了一次(实线箭头只出现了一次)。
参数共享并不会改变前向传播的运行时间,它只是显著地把需要存储的权重参数数量降低至k个(每个输出对输入的连接个数)。得益于稀疏连接和权重共享,卷积运算在存储需求和统计效率方面极大优于稠密矩阵的乘法运算。在很多实际的卷积神经网络应用中,一般会将k设为比m小多个数量级。

3. 等变表示
卷积神经网络——基本知识_第5张图片
多卷积核
Tensor flow官方文档中将卷积核称为“过滤器”,产生一个卷积层所需要的过滤器的长和宽都是在编写代码时人工指定的,较常用的过滤器长宽尺寸有 3x3和5x5。上面所讲述的多卷积核通常称为过滤器的深度,过滤器的深度指的是卷积核的数量, 这也是需要人工指定的参数。

池化

在通过卷积获得了特征( Features )之后,下一步要做的是利用这些特征进行分类。理论上来讲,所有经过卷积提取到的特征都可以作为分类器的输入(例如 softmax 分类器),但这样做将面临着巨大的计算量。
一般会使用池化函数 Polling Function )来进一步对卷积操作得到的特征映射结果进行处理 。池化函数会将平面 内某一位置及其相邻位置特征值进行统计汇总,并将汇总后的结果作为这一位置在该平面内的值。例如,常见的最大池化( Max Pooling )函数会计算该位置及其相邻矩形区域内的最大值,并将这个最大值作为该位置的值;平均池化( Average Pooling )函数会计算该位置及其相邻矩形区域内的平均值,并将这个平均值作为该位置的值。
卷积神经网络——基本知识_第6张图片
左侧是原始三维矩阵网格数据,深度为2,宽度和高度各为4),右侧展示了网格数据经过最大池化之后的结果,最大池化之后的深度仍为2。虽然池化操作也可以减小矩阵深度,但是实践中 般不会这么做。

卷积操作的过程可能会造成数据矩阵深度的改变,但是池化操作则不会。

卷积神经网络的一般框架

下图展示了一个比较简单且具体的用于图像分类问题的卷积神经网络架构图。
卷积神经网络——基本知识_第7张图片
由于卷积神经网络的卷积层和池化层都包含“ 深度” 的概念,所以这里将每一层的单元都组织成了一个三维的矩阵。图中虚线部分展示了卷积神经网络的连接情况。
一个卷积神经网络主要包含5个结构:输入层、卷积层、池化层、全连层和softmax层。

  1. 输入层
    输入层是整个神经网络的输入,在用于图像分类问题的卷积神经网络中,它一般代表的是一张图片的像素矩阵,根据通道数的不同,图片像素矩阵也有着不同的深度数值。比如黑白图片只有1个通道,所以其深度为1,而在RGB 色彩模式下图像有3个通道,所以深度为3。
  2. 卷积层
    示意图中 一共有2个卷积层 。卷积层由一系列执行了卷积操作而得到的特征映射图组成。 从图中可以看出,卷积层中每个单元只与上一层 中的一个区域的单元存在连接关系,这个区域的大小就是卷积核的大小。常用的卷积核大小有33或者55。为了能从神经网络中的每一小块得到更多的抽象特征,卷积层的单元矩阵会一般比上一层的单元矩阵更深。
  3. 池化层
    池化层的单元矩阵深度不会比上一层的单元矩阵更深,但是它能在宽度和高度方向缩小矩阵的大小。加入池化层也能达到减少整个神经网络中参数的目的。
  4. 全连层
    上图在得到池化层的结果后连接了3个全连层。我们可以将卷积层和池化层看成是图像特征提取的结果,图像中的信息在经过几轮卷积操作和池化操作的处理之后,得到了更抽象的表达,这就是图像最基本的特征。在得到了提取的特征之后,为了完成分类任务仍需要构建几个全连层。
  5. softmax层
    通过 softmax 层,可以得到输入样例所属种类的概率分布情况。

你可能感兴趣的:(卷积神经网络——基本知识)