【深度学习】卷积神经网络的卷积层和池化层计算

1、简介

\quad\quad 卷积神经网络(Convolutional neural network, CNN),属于人工神经网络的一种,被应用于图像识别、语音识别等各类场合。html

\quad\quad 咱们知道,神经网络的基本组成包括输入层、隐藏层、输出层。卷积神经网络的特色就在于隐藏层分为卷积层和池化层。git

  • 卷积层,经过一块卷积核在原始图像上平移来提取特征,每个特征就是一个特征映射;
  • 池化层,经过汇聚特征后稀疏参数来减小要学习的参数,下降网络的复杂度,常见的包括:最大值池化和平均值池化

下面咱们先来看看卷积神经网络的总体结构github

2、总体结构

一、根据 这篇博客 咱们能够简单画出神经网络的结构图:

在这里插入图片描述

图中有多个“Affine-ReLU”组合,最后一层是“Affine-Softmax”组合,经过Softmax输出最终结果(几率)web

二、CNN的结构图

在这里插入图片描述

比较上面两张图,咱们能够发现,CNN中新增长了Convlution层和Pooling层,CNN的层的链接顺序是“Conv-ReLU-(Pool)”,(Pooling层有时会被省略)网络

3、卷积层

在神经网络中,咱们使用全链接层(Affine),相邻层的神经元所有链接在一块儿,输出的数量能够任意决定。app

那么为何要将全链接层换成卷积层呢?svg

由于,全链接层将数据的形状给“忽略”了,使用神经网络来训练MNIST数据,输入数据是图像,三维形状(1,28,28)表示(通道,高,长),输入的数据是将三维数据拉平为一维数据,以784个数据的形式输入到最开始的全链接层。学习

可是,这个忽略了图像三维形状中包含的空间信息,好比,空间上邻近的像素为类似的值、RGB的各个通道之间也存在密切的关联性,因此使用全链接没法利用与形状相关的信息。动画

使用卷积层,能够保持图像数据的形状不变,输入图像数据时,卷积层会以三维数据的形式接收输入数据,而且一样以三维数据输出至下一层spa

一、卷积运算

卷积运算 动画演示

在这里插入图片描述

  • 卷积层进行的处理就是卷积运算,也至关于图像处理中的“滤波器运算”

在这里插入图片描述

上图是单通道的运算,卷积运算在输入数据中以必定间隔滑动卷积核的窗口并运算(相应元素相乘在求和),而后将结果输出到对应的位置,将这个过程在全部位置都进行一遍,即可以获得卷积运算的结果。

在全链接的神经网络中,除了权重,还存在偏置。CNN中,卷积核的参数对应以前的权重,而且CNN也存在偏置,卷积运算后获得结果的每一个元素都加上偏置,以下图:

在这里插入图片描述

4、填充、步幅

- 填充

一、填充

  • 在进行卷积层处理以前,向输入数据的周围填入固定的值(好比0)
  • 图中,原图像数据形状为(5,5),经过填充,输入数据变成了(7,7),而后应用大小为(3,3)的卷积核,生成了(3,3)的输出数据,这里步幅设置为2
  • 使用填充主要是为了调整输出的大小,由于每次进行卷积都会缩小空间,那么在屡次卷积后大小可能为1,致使没法继续在应用卷积运算
  • 卷积运算能够保持空间大小不变的状况下将数据传递给下一层

二、步幅

  • 步幅是指应用卷积核的间隔,动画演示中的步幅为2
  • 对于输入大小为(7,7)的数据,以步幅为2应用卷积核,输出大小为(3,3)
  • 若是设置为1,输出大小为(5,5)

综上,增大步幅后,输出大小会变小;增大填充后,输出大小会变大

设输入大小为(H,W),卷积核大小为(FH,FW),输出大小为(OH,OW),填充为P,步幅为S,此时:

O H = H + 2 P F H S + 1 OH = \frac{H + 2P - FH}{S} + 1
O W = H + 2 P F W S + 1 OW = \frac{H + 2P - FW}{S} + 1

5、三维数据的卷积

上面的动画演示的就是三维数据的卷积运算,图像数据除了高、长方向以外,还须要处理通道方向。

  • 在三维数据的卷积中,输入数据和卷积核的通道数要设为相同的值,动画演示中均为3;
  • 卷积核的大小能够设置为任意值,可是每一个卷积核的大小也必须相同

通道方向上有多个特征图时,会按通道进行输入数据和卷积核的卷积运算,并将结果相加,从而获得结果

在这里插入图片描述

6、池化层

在这里插入图片描述

上图为“Max池化”最大值池化,是获取最大值的运算,在“2 × 2”的目标区域内取最大值;
平均值池化,就是在目标区域中计算平均值

  • 池化层和卷积层不一样,没用要学习的参数,只是从目标区域中取最大值(平均值)
  • 池化层中数据数据和输出数据的通道数不会发生变化,计算是按通道独立进行的
  • 池化层对微小的位置变化具备鲁棒性