1.8.3 卷积神经网络近年来在结构设计上的主要发展和变迁——GoogleNet/ inception-v1
前情回顾:
1.8.1 卷积神经网络近年来在结构设计上的主要发展和变迁——AlexNet
1.8.2 卷积神经网络近年来在结构设计上的主要发展和变迁——VGGNet
GoogleNet问题
在VGGNet简单堆砌 3×3 卷积的基础上,Inception系列网络深入地探索了网络结构的设计原则。Google原论文Going deeper with convolutions认为,网络性能和表达能力正相关于网络规模,即网络深度和宽度;
问题:但过深或过宽的网络会导致参数量非常庞大,这会进一步带来诸如过拟合、梯度消失或爆炸、应用场景受限等问题。
Inception改进:
一种改进手段是将当前网络中的全连接和卷积等密集连接结构转化为稀疏连接形式,这可以降低计算量,同时维持网络的表达能力。另外,自然界中生物的神经连接也大都是稀疏的。据此,Inception系列网络提出了Inception模块,它将之前网络中的大通道卷积层替换为由多个小通道卷积层组成的多分支结构,如图1.11(a)所示。
其内在的数学依据是,一个大型稀疏矩阵通常可以分解为多个小的稠密矩阵,也就是说,可以用多个小的稠密矩阵来近似一个大型稀疏矩阵。实际上,Inception模块会同时使用1×1、3×3 、5×5 的3种卷积核进行多路特征提取,这样能使网络稀疏化的同时,增强网络对多尺度特征的适应性。
除了Inception模块之外,Inception-v1在网络结构设计上还有如下创新。
- 提出了瓶颈(bottleneck)结构,即在计算比较大的卷积层之前,先使用1×1卷积对其通道进行压缩以减少计算量(在较大卷积层完成计算之后,根据需要有时候会再次使用 1×1 卷积将其通道数复原),如图1.11(b)所示。
- 从网络中间层拉出多条支线,连接辅助分类器,用于计算损失并进行误差反向传播,以缓解梯度消失问题。
- 修改了之前VGGNet等网络在网络末端加入多个全连接层进行分类的做法,转而将第一个全连接层换成全局平均池化层(GlobalAverage Pooling)。
Inception-v1网络最终在ImageNet 2012数据集上,将图像分类任务的Top-5错误率降至6.67%。
想要详细了解GoogleNet网络,点这里:GoogLeNet网络(2014年提出)
参考文献:
《百面深度学习》 诸葛越 江云胜主编
出版社:人民邮电出版社(北京)
ISBN:978-7-115-53097-4
2020年7月第1版(2020年7月北京第二次印刷)