从GoogLeNet至Inception v3

本文介绍了从LeNet到AlexNet、VGG-Net,再到GoogLeNet的发展历程,重点解析了GoogLeNet的Inception模块以及Inception v1和v2模型的改进,探讨了网络结构如何优化以提高特征提取能力和降低计算复杂度。

一.CNN发展纵览

   我们先来看一张图片:

  

1985年,Rumelhart和Hinton等人提出了后向传播(Back Propagation,BP)算法(也有说1986年的,指的是他们另一篇paper:Learning representations by back-propagating errors),使得神经网络的训练变得简单可行,这篇文章在Google Scholar上的引用次数达到了19000多次,目前还是比Cortes和Vapnic的Support-Vector Networks稍落后一点,不过以Deep Learning最近的发展劲头来看,超越指日可待。

几年后,LeCun利用BP算法来训练多层神经网络用于识别手写邮政编码,这个工作就是CNN的开山之作,多处用到了5*5的卷积核,但在这篇文章中LeCun只是说把5*5的相邻区域作为感受野,并未提及卷积或卷积神经网络。

1998年的LeNet5标注着CNN的真正面世,但是这个模型在后来的一段时间并未能火起来,主要原因是要求机器性能较好,而且其他的算法像SVM也能达到类似的效果甚至超过。

AlexNet是在2012年被发表的一个经典之作,并在当年取得了ImageNet最好的成绩,也是在那年之后,更多的更深的神经网络被提出,其官方提供的数据模型,他的top-1误差率为37.5%,以及top-5的误差率为17%,这是相当好的一个成绩。

2014年,VGG-Net 在ILSVRC localization and classification 两个问题上分别取得了第一名和第二名,VGG-Net不同于AlexNet的地方是:VGG-Net使用更多的层,通常有16-19层,而AlexNet只有8层。另外一个不同的地方是:VGG-Net的所有 convolutional layer 使用同样大小的 convolutional filter,大小为 3 x 3。

同年,GoogLeNet, 在2014年ILSVRC挑战赛获得冠军,将Top5 的错误率降低到6.67%. 一个22层的深度网络,论文在http://arxiv.org/pdf/1409.4842v1.pdf,题目为:Going deeper with convolutions。GoogLeNet这个名字也是挺有意思的,为了像开山鼻祖的LeNet网络致敬,他们选择了这样的名字。

下图为GooLeNet的网络结构图:


令人感兴趣的是,在GoogLeNet出来之前,主流的网络结构突破大致是网络更深(即层数增加),网络更宽(即神经元数目增多),但这样做存在一些缺点:

  1. 当训练集有限时,参数过多,模型会出现过拟合;
  2. 网络越大,计算复杂度越大,设计起来越困难;
  3. 当层数增多时,梯度越往后越容易消失;

### GoogLeNet Inception v3 模型架构 GoogLeNet Inception v3 是一种改进后的卷积神经网络结构,旨在提高图像分类性能并减少计算资源消耗。相比于早期版本的Inception模块,v3引入了几项重要的设计变更。 #### 主要改进点: - **因子分解**:将较大的二维卷积分解成两个较小的一维卷积操作。例如,5×5 的卷积可以被替换为连续两次 3×3 卷积[^1]。 - **不对称卷积**:采用不同尺寸的内核组合方式,比如用 1×n 和 n×1 这样的非对称滤波器代替传统的正方形滤波器,这有助于降低参数数量和提升效率。 - **辅助分类器移除**:相比之前的版本,在训练过程中使用的额外分支(即所谓的“辅助头”)已被简化甚至完全去除,从而减少了整体复杂度。 - **批量标准化 (Batch Normalization)**:加入BN层以加速收敛过程,并改善梯度传播特性。 ```python import tensorflow as tf from tensorflow.keras.applications import InceptionV3 model = InceptionV3(weights='imagenet', include_top=False) for layer in model.layers: print(layer.name, ":", layer.output_shape) ``` 这段Python代码展示了如何利用Keras库加载预训练好的Inception V3模型,并打印每一层的名字及其输出形状。 ### 应用场景 由于其强大的表征能力和广泛的适用范围,Inception v3 已经成为计算机视觉领域中的一个重要工具。它不仅能够处理标准的任务如物体识别、定位等,还可以通过迁移学习应用于特定领域的定制化需求中。许多深度学习框架都支持此模型,并提供经过 ImageNet 数据集预先训练过的权重文件供开发者快速部署解决方案[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值