LeNet、AlexNet和VGG都有一个共同的设计模式:通过一系列的卷积层与汇聚层来提取空间结构特征;然后通过全连接层对特征的表征进行处理。
AlexNet和VGG对LeNet的改进主要在于如何扩大和加深这两个模块。 或者,可以想象在这个过程的早期使用全连接层。然而,如果使用了全连接层,可能会完全放弃表征的空间结构。
网络中的网络(NiN)提供了一个非常简单的解决方案:在每个像素的通道上分别使用多层感知机
。
1. 全连接层的问题
卷积层需要的参数 = 输入通道数 * 输出通道数 * 窗口的高 * 窗口的宽
全连接层需要的参数 = (输入通道数 * 窗口的高 * 窗口的宽)* (输出通道数 * 窗口的高 * 窗口的宽)
2. NiN块
ps:1 * 1的卷积层等价于全连接层。
回想一下,卷积层的输入和输出由四维张量组成,张量的每个轴分别对应样本、通道、高度和宽度。 另外,全连接层的输入和输出通常是分别对应于样本和特征的二维张量。
NiN的想法是在每个像素位置(针对每个高度和宽度)应用一个全连接层。 如果我们将权重连接到每个空间位置
,我们可以将其视为 1×1 卷积层,或作为在每个像素位置上独立作用的全连接层。 从另一个角度看,即将空间维度中的每个像素视为单个样本,将通道维度视为不同特征(feature)。
3. NiN架构
- 无全连接层
- 交替使用NiN块和步幅为2的最大池化层
- 逐步减小高宽和增大通道数
- 最后使用全局平均池化层得到输出
- 其输入通道数是类别数
4. NiN Networks
NiN块以一个普通卷积层开始,后面是两个 1×1 的卷积层。这两个 1×1 卷积层充当带有ReLU激活函数的逐像素全连接层。 第一层的卷积窗口形状通常由用户设置。 随后的卷积窗口形状固定为 1×1 。
5. 总结
- NiN块使用卷积层加两个 1 * 1卷积层
- 后者对每个像素增加了非线性层
- NiN使用全局平局池化层来替代VGG和AlexNet中的全连接层
- 不容易过拟合,更少的参数个数