19 卷积层
背景:在输入规模很大的时候(高清图片),单隐藏层MLP的隐藏参数往往过大,所以需要卷积操作来对输入进行处理,减小输出的规模大小。
卷积的两个原则:
-
平移不变性(在图像的任意像素位置)
kernel移动的时候并不变 -
局部性(只需要局部信息)
只使用了一个kernel进行局部特征提取
二维卷积/二维交叉相关
卷积的定义:
Y
=
X
∗
W
+
b
Y = X * W + b
Y=X∗W+b
其中输入时X,W是kernel,b是偏差,Y是输出。w和b都是可学习的参数,w的大小(核的大小)是超参数。
w可以决定得到的二维效果,如:
交叉相关与卷积在使用的时候没有区别,只是二维卷积的w是负的
20 填充与步幅
方法一:填充 padding
背景:用大卷积核但不想图片规模太快的变小
在输入的四周加入一些额外的行与列,例如添加额外的一圈0,一般padding = 1
通常会把填充的
p
h
p_h
ph大小设置为
k
h
−
1
k_h - 1
kh−1,这样不会因为核的大小改变输出的形状。
方法二:步幅 stride
背景:比较小的卷积核怎么避免大量计算,快速得到较小的输出
控制Kernel移动2格或者更多,一般都取2,方便可以被高度和宽度整除
21 多输入多输出通道
**多输入通道:**对每个通道都有一个卷积核,结果是所有通道卷积结果的和(一个降维求和操作)
多输出通道:设置多个三维卷积核,每个核输出一个输出通道,得到多输出通道的结果。
为什么要设置多个输入和输出通道?
- 每个输出通道可以识别特定模式(边缘、轮廓、颜色)
- 输入通道核识别并组合输入中的模式
简单来说,就是完成了一只猫的各个特征的识别,使得这些信息可以组合成一只猫。
1×1卷积层
不识别空间模式,只是融合通道信息,实现升维和降维,等价于把输入拉成一个向量,相当于一个全连接层的融合。
2×2卷积层
主要需要知道的是复杂度的计算,一般用FLOP来计算复杂度
22 池化层
背景需求:图片中发生变化时,需要具有两个特性
- 积对位置敏感(主要作用,通常放在卷积层后面)
- 我们需要一定程度的平移不变性(照明、物体位置、比例)
二维最大池化:
返回滑动窗口的最大值
例:(第三个池化的第三列出现错误,应该是0 0 0 0)
填充、步幅和多个通道
- 池化层也有填充和步幅
- 没有可学习的参数(没有kernel)
- 再每个输入通道应用池化层获得相应的输出通道
- 输出通道 = 输入通道
作用对比:
池化一般就是最大或平均池化,最大池化层是显示每个窗口中最强的信号,平均池化层更偏向于所有的平均
23 LeNet 手写数字识别网络
MNIST 数据集:10类数字的50000个大小的数据集
使用卷积层来学习图片空间信息,用池化层降低敏感度,用全连接层来转换类别空间
结构:卷积-池化-卷积-池化-全连接-全连接-高斯输出