《Going Deeper with Convolutions》GoogLeNet
- 作者:Christian Szegedy,Wei Liu,Yangqing Jia,et al.
- 单位:Google Inc.
- 发表会议及时间:CVPR2015
作者简介
上一篇文章介绍了VGG网络结构,VGG在2014年ImageNet 中获得了定位任务第1名和分类任务第2名的好成绩,而同年分类任务的第一名则是GoogleNet 。
论文简介
- 提出:
Inception
卷积神经网络架构 - 结果:ILSVRC2014分类和检测任务巅峰
- 亮点:
- 加深和加宽了网络结构,
- 更好的利用了网络结构内的计算资源
- 基于
赫布原则
和对多尺度
的观测 - 建立
GoogLeNet
——22层深度网络
论文意义
通过设计一种新型的卷积神经网络结构,提升网络结构内的计算资源利用率,同时增加了网络宽度和深度,提升了网络效果。
- GoogLeNet之前
卷积神经网络较浅,利用比较单一的卷积核,计算效率不高。 - Inception模块
通过并行设计,提升计算效率,提升效果,同时加深和加宽网络层。 - 结果
在lmageNet 数据集测试上达到了state-of-the-art效果。
论文结构
- 引言
Introduction - 相关工作
Related Work - 灵感与高层次考虑
Motivation&High-Level
Consideration - 网络架构细节
Architecture Details - GoogLeNet
GoogLeNet - 训练方法
Training Methodology - ILSVRC2014比赛
ILSVRC 2014 Challenge - 总结
Conclusions
灵感与思考(Motivation and High Level Considerations)
- 如何提升深度神经网络表现?
- 加深网络
- 加宽网络
- 什么副作用?
- 数据量不足时容易过拟合
- 加大对计算资源的需求
- 怎么进一步改进网络?
- 引入稀疏性;【Arora et al】
- 稀疏卷积结构,同时借助硬件密集矩阵运算;
Inception/GoogLeNet网络结构
- Inception:
- 通过堆叠多种卷积核实现最优稀疏结构;
- 1x1,3×3,5x5结合,concate连接;
- 最朴素的结构如下图;
- 维度太高!
改进:
- 通过增加1x1卷积降低维度;
- 低维embedding信息量充足;
- 实践中从较高维度开始叠加Inception;
- 降低计算量;
- GoogleNet:
- 基于第二种低计算量的Inception 模块,堆叠构建 GoogLeNet;
- 输入维度:224×224×3(RGB图像);
- 深度:22层(包含参数的层);
- 中间输出计算损失,为了解决梯度消失或梯度爆炸问题;
GoogleNet网络结构(Inception V1)的网络结构如下:
实验和结果
数据集:lmageNet 2012分类数据集,1000类别
- 训练数据:约120万图像
- 验证数据:50000图像
- 测试数据:100000图像
- 输出:Top-1,Top-5错误率
检测任务比赛结果
pytorch代码实现可参考这篇博客:深入解读GoogLeNet网络结构(附代码实现)