如是我闻: Network in Network (NIN) 是 2014 年由 Min Lin 等人 提出的一个改进 CNN 结构的模型。它的核心思想是:用小型的多层感知机(MLP,Multi-Layer Perceptron)替代传统 CNN 中的卷积层,从而提高网络的表达能力。
NIN 相比普通 CNN 的不同之处
在普通的 CNN 中,每一层的卷积操作可以看作是使用 固定的线性滤波器 提取特征,然后通过非线性激活函数(如 ReLU)增加表达能力。然而,这种方法的局限性在于每个卷积核的表达能力较弱,因为它本质上是一个线性变换。
NIN 提出的核心改进点是:
-
使用 MLP 代替传统的卷积核
- 传统 CNN:用一个形如 3 × 3 3 \times 3 3×3 或 5 × 5 5 \times 5 5×5 的卷积核进行特征提取,相当于一个简单的线性变换。
- NIN:用一个 小型的神经网络(MLP) 代替卷积核,使得每个“卷积核”不仅仅是一个线性变换,而是一个具有 多层非线性结构 的函数,提高了特征提取能力。
-
使用 1x1 卷积实现 MLP
- 具体来说,NIN 采用 多个 1×1 卷积层 作为 MLP,每个 1×1 卷积层可以看作一个神经元,这样可以在通道维度上学习更复杂的特征表示,而不仅仅是空间维度上的卷积操作。
-
全局平均池化 (Global Average Pooling, GAP)
- 传统 CNN 在最后通常使用全连接层进行分类,而 NIN 用 GAP(Global Average Pooling) 取代全连接层,使得整个网络更轻量化,同时减少过拟合的风险。
总结对比
比较维度 | 普通 CNN | Network in Network (NIN) |
---|---|---|
卷积操作 | 线性卷积核 + 非线性激活 | 用 MLP 代替普通卷积 |
1×1 卷积 | 很少使用 | 作为 MLP 主要成分 |
表达能力 | 受限于单层卷积核的线性变换 | 通过 MLP 提高特征表达能力 |
全连接层 | 需要额外的全连接层 | 使用 GAP 取代全连接层 |
参数量 | 可能较大 | 通过 GAP 减少参数 |
NIN 的影响
NIN 通过引入 1×1 卷积 + MLP,极大地增强了 CNN 的特征提取能力,并且启发了后续许多深度学习模型的设计,比如:
- GoogLeNet (Inception) 大量使用 1×1 卷积进行特征变换
- ResNet 也借鉴了 1×1 卷积用于降维和非线性变换
以上