AlexNet、VGG 和 ResNet 可以串成一条理解卷积网络的线索:先看局部特征怎样计算,再看网络加深带来了什么,最后看深层网络为什么需要更容易优化的结构。这里整理的是概念与论文阅读笔记,不是训练复现实验。
卷积层怎样产生特征图
以单通道图片上的 3×3 窗口为例,卷积核在不同位置复用同一组权重,对窗口内的数值逐项乘加,得到输出特征图。多输入通道时,还要合并各通道的贡献。
对不分组的二维卷积,若输入通道数为 Cin、输出通道数为 Cout,核为 kH×kW,带偏置时参数数目是:
Cout × Cin × kH × kW + Cout
输入 3 通道、输出 16 通道、3×3 核时,参数数目是 16×3×3×3+16=448。参数不随图像高宽直接增加,但计算量会随输出空间尺寸变化。PyTorch Conv2d 定义
“找边缘的小模板”有助于入门,但特征由训练学习,不是预先给每个核指定“鼻子”或“眼睛”。位置共享也不意味着整个网络对任意平移严格不变:步长、填充、池化和后续层都会影响结果。
AlexNet:网络设计与训练工程一起起作用
Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton 在 2012 年发表的工作,把多层卷积、非饱和激活、GPU 实现以及控制过拟合的训练方法组合起来。阅读时应同时关心结构和训练条件,而不只记比赛成绩。
ReLU、数据增强和 dropout 是理解这项工作的关键线索:激活函数影响优化,增强改变训练样本的呈现方式,dropout 用来减少部分层对训练数据的过度适应。它们并不保证在所有网络里都产生同样收益。AlexNet 论文入口
VGG:用较小的卷积核研究深度
Karen Simonyan 和 Andrew Zisserman 的 VGG 工作使用小型 3×3 卷积核,系统比较更深的配置,包含 16~19 个带权重层的网络。连续堆叠小卷积可以逐步扩大感受野,并在中间引入非线性变换。
它说明论文所研究的设计和训练条件下,加深网络能够改善表现;不是“层数越多,任何任务都更准确”的定律。参数、计算和内存成本仍需单独评估。VGG v6 摘要
ResNet:把目标映射改写为残差
更深的普通网络有时连训练误差也更高,这属于优化退化问题,不能简单等同于过拟合。ResNet 让若干层学习残差 F(x),再与快捷分支相加:
y = F(x) + x 输入输出维度匹配
y = F(x) + Ws(x) 需要投影以匹配维度
快捷连接给信息和梯度提供了更直接的路径。基本块与瓶颈块的内部结构不同;不是每层卷积都使用步长 2,也不能把残差相加解释成随意拼接张量。
论文使用 Batch Normalization,并区分单模型与集成、验证集与测试集的结果。它的重点是让深层网络更容易优化,而不是宣称解决所有梯度消失或泛化问题。ResNet v1,方法与实现部分
把三条线索分开
卷积回答怎样利用局部连接和空间共享;深度回答怎样逐层构造表示;残差结构回答怎样改善深层网络的优化。训练误差、测试表现和计算成本则是不同的评价维度。
读后续视觉论文时,先对齐网络结构、训练条件和评测口径,再比较结论,比按年份记住几个冠军分数更有帮助。