一、模型概述

GoogLeNet(又名 Inception v1)由 Google 团队于 2014 年提出,在当年的 ImageNet 图像分类竞赛中获得第一名。其核心贡献在于:

引入 Inception 模块:通过多尺度卷积核并行提取特征,再在通道维度融合。

用全局平均池化替代全连接层:大幅减少参数量,抑制过拟合,并使模型能接受任意尺寸的输入。

使用辅助分类器:在网络中间层注入梯度信号,有效缓解深层网络的梯度消失问题。

以 22 层的深度,实现了比同年 VGG 更少的参数量(约 1/12)和更高的计算效率。

全局架构

二、Inception 模块详解(以 GoogLeNet 的 3a 模块为例)

输入:28×28×192

分支 操作流程 输出尺寸
分支1 64 个 1×1 卷积,步长 1,填充 0 28×28×64
分支2 ① 96 个 1×1 卷积(降维)
② 128 个 3×3 卷积,步长 1,填充 1
28×28×128
分支3 ① 16 个 1×1 卷积(降维)
② 32 个 5×5 卷积,步长 1,填充 2
28×28×32
分支4 ① 3×3 最大池化,步长 1,填充 1
② 32 个 1×1 卷积
28×28×32

最终拼接:28×28 × (64 + 128 + 32 + 32) = 28×28×256

三、1×1 卷积的优势

1×1 卷积在这里扮演了降维/升维跨通道信息整合的关键角色。

优势

极大减少参数量:在昂贵的 3×3、5×5 卷积前,先用 1×1 卷积压缩通道数。

增加非线性:每个 1×1 卷积后通常跟 ReLU,提升了网络的表达能力。

跨通道信息融合:在不改变空间尺寸的前提下,线性组合所有通道的信息。

实例验证(针对分支2)
仍以输入 28×28×192、输出 28×28×128 为例。

方案 计算过程 参数量
不用 1×1 降维 直接用 128 个 3×3 卷积处理 192 通道 3×3×192×128 = 221,184
使用 1×1 降维 ① 96 个 1×1 卷积:1×1×192×96 = 18,432
② 128 个 3×3 卷积:3×3×96×128 = 110,592
18,432 + 110,592 = 129,024

仅这一个分支,参数量就减少了约 41.7%。整个网络大量使用这种设计,从而在加深网络的同时,依然能控制模型规模。

四、全局平均池化的再认识

GoogLeNet 用全局平均池化(Global Average Pooling) 取代了传统 CNN 尾部的全连接层。

优点

避免过拟合:没有全连接层的大量参数,天然起到正则化效果。

输入尺寸灵活:不论最后一层特征图尺寸多大,平均池化后都会变成 1×1×通道数,模型能适应不同的输入分辨率。

保留空间信息的总结能力:每个特征图对应一个类别置信度,增强了可解释性。

五、辅助分类器的作用

除了最终的分类输出,GoogLeNet 还在网络中间层增加了两个辅助分类器。总损失为三个分类器损失的加权和:

缓解梯度消失:将中间层的特征直接用于分类,为浅层网络提供更强的梯度信号。

提供正则化:促使中间层也能学习有判别力的特征。

推理时可丢弃:测试阶段辅助分类器不参与计算,不增加推理成本。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐