六、卷积神经网络 CNN
6.1 从全连接层到卷积
将输入和输出变形为矩阵(宽度高度)
将权重变形为4-D张量(h, w)到(h’, w’)
V是W的重新索引
对于隐藏表示中任意给定位置(i,j)处的像素值,可以通过在x中以(i,j)为中心对像素进行加权求和得到,加权使用的权重为
两个原则
平移不变性(translation invariance):不管检测对象出现在图像中的哪个位置,神经网络的前面几层应该对相同的图像区域具有相似的反应,即为“平移不变性”。
x的平移导致h的平移
v不应该依赖于(i,j)
解决方案:
这就是2维卷积(交叉相关)
局部性(locality):神经网络的前面几层应该只探索输入图像中的局部区域,而不过度在意图像中相隔较远区域的关系,这就是“局部性”原则。最终,可以聚合这些局部特征,以在整个图像级别进行预测。
当评估时,我们不应该用远离的参数
解决方案:当时,使得
6.2 图像卷积
输入
核
偏差
输出
和是可学习的参数
6.3 填充和步幅
给定 32×32 的输入图像
应用 5×5 大小的卷积核:第1层得到输出大小28×28,…,第7层得到输出大小4×4
更大的卷积核可以更快地减小输出大小
填充
如果不想输出大小太小,可以在输入周围添加额外的行/列
填充行和列,输出形状为:
步幅
填充减小的输出大小与层数线性相关,步幅用来解决层数过大的问题
给定高度和宽度的步幅,输出形状是:
6.4. 多输入多输出通道
每个通道都有一个卷积核,结果是所有通道卷积结果的和
输入
核
输出
每个输出通道可以识别特定模式,输入通道识别并组合输入中的模式
6.5 池化层 pooling
卷积对位置敏感,如果需要一定程度的平移不变性,考虑池化层
二维最大池化
返回滑动窗口中的最大值
与卷积层类似,都具有填充和步幅
没有可学习的参数
在每个输入通道应用池化层以获得相应的输出通道,输出通道数=输入通道数
平均池化层
最大池化层:每个窗口中最强的模式信号
平均池化层:将最大池化层中的“最大”操作替换为“平均”
实现
6.6 LeNet
总体来看,LeNet(LeNet-5)由两个部分组成:
- 卷积编码器:由两个卷积层组成;
- 全连接层密集块:由三个全连接层组成。