参考文献

李沐《动手学深度学习》(pytorch版)
CSDN博主【连理o】的博文

精髓

  • LeNet和AlexNet:模式都是卷积层+全连接层,前者通过不断提高通道数降低高宽用来提取特征,后者用于具体的分类。区别在于后者处理的图片高宽更大,因此网络更深、卷积核更大,同时后者使用了ReLU来替代sigmoid来缓解梯度消失。
  • VGG:模式都是重复使用简单的基础块+全连接层来构建深度模型,每个块内先用多个卷积层保持图片形状不变,后用最大池化使通道数翻倍宽高各减半。
  • NiN:抛弃多个卷积+多个全连接的模式,仅重复堆叠多个由卷积层和“全连接”层构成的NiN小块来构建一个深层网络。请关注这里两个1×11\times1卷积层的作用。
  • GoogLeNet:模式是卷积+Inception+平均池化+全连接,其中Inception块的核心贡献是开创了并行路线后在通道维上粘接的模式。
  • ResNet:模式是卷积+残差块+平均池化+全连接,其中残差块就是用网络去注重拟合f(x)xf(x)-x的部分,输入跨层向前传播后和残差部分相加,这种方式能提高收敛性,缓解梯度消失/爆炸,防止过拟合。
  • DenseNet:模式是卷积+n*(稠密块 + 过渡层)+平均池化+全连接,其中稠密块是指最后一层和前面的每一层都稠密相连(不断在通道维度粘接)的结构,过渡层先通过1*1卷积减少通道数在用平均池化减半宽高。

关于图像大小的计算公式

通常,如果我们添加php_h行填充(大约一半在顶部,一半在底部)和pwp_w列填充(左侧大约一半,右侧一半),步幅为1时,输出形状将为

(nhkh+ph+1)×(nwkw+pw+1)(n_h-k_h+p_h+1)\times(n_w-k_w+p_w+1)

通常,当垂直步幅为shs_h、水平步幅为sws_w时,输出形状为

(nhkh+ph+sh)/sh×(nwkw+pw+sw)/sw.\lfloor(n_h-k_h+p_h+s_h)/s_h\rfloor \times \lfloor(n_w-k_w+p_w+s_w)/s_w\rfloor.

关于采样的概念

  • 下采样:池化操作就是经典的下采样,将一张图片缩小,采用不同的方法将像素点合并从而获得更小分辨率的照片就叫做下采样。
  • 上采样:也叫做图像插值,上采样和下采样反过来,将一张照片放大,在像素点之间根据放大倍数,以插值的形式插入像素值从而达到放大图像的目的。
  • 欠采样:当数据集不平衡时,选择减少数据量过多类别的数量,例如对于一个只用0和1的二分类问题,样本标签1有10000个数据,样本标签0有6000个数据时,为了保持样本数目的平衡,可以选择减少标签1的数据量,这个过程就叫做欠采样。
  • 过采样:就是对数量较少的类别,扩大它的数量,通过数据增强的方法增加它的数目。