【概念理解】卷积(Convolution)与池化(Pooling)
一、卷积(Convolution)
1.卷积的目的
卷积是为了提取图像特征,通过卷积层,可以自动提取图像的高维度且有效的特征
2.卷积的分类
卷积按步长可分为单位步长和非单位步长;按填充可分为有0填充和无0填充
3.图画卷积过程
- 假设一个卷积核如下
- 输入数据如下
那么根据对应元素相乘求和的规则,可得出单位步长下,卷积后的输出数据为(右侧绿色矩阵):
深蓝色块大小为卷积核维度,由于步长为1,因此每次将深蓝色块右平移一个单位长度,直到深蓝色块到达输出矩阵的最右侧,之后向下平移;没平移一次,就将深蓝色块中的数字相乘相加,如第一个深蓝色块为 3x0 + 3x1 + 2x2 +0x2 + 0x2 + 1x0 + 3x0 + 1x1 + 2x2 = 12 (无0填充)
(有0填充,p = 1)
(此图输出矩阵未画完整,其结果应为 5x5 的矩阵)
- 输出矩阵的维度计算公式
可以明显看出,有0填充和无0填充最后的输出矩阵维度存在明显不同,若 i 表示输入矩阵维度、k 表示卷积核维度、s表示步长、p 表示填充、o表示输出矩阵维度,可得:
非0填充:o =⌊( i - k) / s⌋+1
有0填充:o = ⌊( i - k) / s⌋ +1
(⌊⌋表示下取整,为了消除小数)
二、池化(Pooling)
1、池化的目的
池化主要是为了减少卷积层提取的特征个数,增加特征的鲁棒性或是为了降维
2、池化的分类
池化可分为平均值池化(Average Pooling)和最大值池化(Max Pooling)
3、图画池化过程
- 平均值池化
以卷积的输入数据为例,如下图
其实池化和卷积很相似,可以想象成池化也有一个卷积核,只是这个核没有了需要变化的数字,而只剩一个框,即上图的深蓝色框,而要得到池化后的输出数据,则需对框中的输入数据做平均值,即(3+3+2+0+0+1+3+1+2)/ 9 = 1.7,其后深蓝色框的平移方式如卷积类似,而最大值池化,顾名思义可知,池化后的输出数据应为深蓝色框中的最大值,即下图
以上就是卷积和池化的基本原理及实现过程,通过自己的理解,将其以文字的形式表现,并记录下自己学习 此博文 后的笔记