从LeNet到ResNet,神经网络沿着越来越深方向演进。

LeNet

LeNet是最早发布的卷积神经网络,取得了与SVM性能相媲美的效果,广泛应用于ATM数字识别。代码实现
模型亮点:
1)使用2个卷积块(每个卷积块由卷积层、非线性激活函数、汇聚层组成)提取特征,后接3个全连接层进行图像分类。
2)为了构造高性能的卷积神经网络,对卷积层进行排列,逐渐降低空间分辨率,同时增加通道数。
知识点:
feature map空间分辨率计算公式:N = ⌊(W-K+2P)/S⌋ + 1
  • 输入图片大小:W×W,卷积核大小:K×K,padding大小:P×P,步长:S

AlexNet

AlexNet由Hinton和学生Alex Krizhevsky提出,斩获ILSVRC 2012(ImageNet Large Scale Visual Recognition Challenge)冠军。分类准确率由传统的70%+提升至80%+。代码实现
模型亮点:
1)首次利用GPU进行网络加速训练。
2)采用ReLU作为激活函数。
3)全连接层采用Dropout正则化技术减少过拟合。

VGG

VGG由牛津大学著名研究组VGG(Visual Geometry Group)提出,斩获ILSVRC 2014 Localization Task第一名和Classification Task第二名。代码实现
注:224=2^5 × 7(对应5个卷积块+3个全连接层)
模型亮点:
1)采用可复用的卷积块构造网络,使得复杂网络的设计更加简洁有效。
2)通过堆叠多个3×3的卷积核代替大尺度卷积核,减少模型参数,提升计算机视觉任务性能。
知识点:
感受野
  • 感受野计算公式:F(i) = (F(i+1) - 1) × S + K,其中 步长:S,卷积核大小:K。
  • 堆叠2个3×3的卷积核代替5×5的卷积核,堆叠3个3×3的卷积核可以代替7×7的卷积核(拥有相同的感受野)。
  • 7×7卷积核所需参数:7×7×C×C=49C²,堆叠3个3×3卷积核所需参数:3×3×C×C ×3=27C²。

GoogLeNet

GoogLeNet由Google团队提出,斩获ILSVRC 2014 Classification Task第一名。代码实现
Inception module with dimension reductions 
模型亮点:

1)引入了Inception块(融合不同尺度的特征信息), Inception块的通道数分配之比是在ImageNet数据集上通过大量的实验得来的。
2)使用1×1的卷积核进行降维以及映射处理。
3)使用平均汇聚层代替全连接层,大大减少模型参数。GoogLeNet网络参数约为VGG16的1/20。
4)添加2个辅助分类器帮助训练。
知识点:
Inception结构:

ResNet

ResNet由微软实验室的He Kaiming等提出,斩获ILSVRC 2015年分类任务第一名,目标检测第一名。COCO数据集目标检测第一名,图像分割第一名。代码实现
注:
  • 224=2^5 × 7(对应5个卷积块 —对应 conv1~conv5)。
  • 代码实现中有两个参数比较重要。主卷积的输出通道数(conv2~conv5按64逐步翻倍),每个residual block的膨胀系数(按主卷积的输出通道进行膨胀,bottleneck expansion=4, basicblock expansion=1)。
  • conv1/max pool/conv3_1/conv4_1/conv5_1 stride=2,每个模块分辨率减为1/2²。conv3_1/conv4_1/conv5_1分辨率变化,对于bottleneck conv3_1+/conv4_1+/conv5_1+通道数发生变化。只要形状发生变化(包括分辨率和通道数)需要增加 Down-sampling,保证residual结构有效(详见Residual Block)。
模型亮点:
1)利用residual块可以训练出有效的超深神经网络,对后续神经网络设计范式产生深远影响。
2)使用Batch Normalization加速网络训练。
知识点:
1)退化问题(degradation problem)
  • 深度神经网络容易产生退化问题(如左图,训练欠拟合)  
  • ResNet可以解决深度神经网络的退化问题(如右图)
2)Residual Block
  • 较浅神经网络(resnet18/resnet34)选择重量级residual block(称为basicblock),较深神经网络(resnet50/resnet101/resnet152)选择轻量级的residual block(称为bottleneck)(使用1×1的卷积核来进行降维和升维,可以极大地减少模型参数)。
  • conv3_1/conv4_1/conv5_1 通过设置主卷积(代码实现中选择第2个3x3卷积作为主卷积)的stride=2,使得分辨率减为1/2² ,shortcut为了保持和主分支Shape一致(包括分辨率和深度),需要增加Down-Sampling(Option B)。
resnet18/resnet34
resnet50/resnet101/resnet152
3)Batch Normalization

  • Batch Normalization(google, 2015)是对feature map进行标准化处理(均值为0方差为1),类似于图像预处理中的标准化处理一样,可以加速网络收敛并提升准确率。
  • BN操作。μ、σ² 是正向传播过程中统计得到的「类似于momentum方法」,γ、β是反向传播过程中训练得到的。
  • BN层通常放在卷积层和激活函数之间,且卷积层不需要使用bias。

ResNeXt

ResNeXt是ResNet的改进版本,主要是更新了block。代码实现
模型亮点:
1)更新了block,采用了带有组卷积的bottleneck(仅对resnetresnet50/resnet101有意义)。
2)相同计算量的前提下,错误率更低。
知识点:
1)相同计算量的前提下,错误率更低。
2)Group Convolution,参数
DW Conv是一种特殊的组卷积。

图像分类模型 I. 从LeNet到ResNet相关推荐

  1. 【知识蒸馏】使用CoatNet蒸馏ResNet图像分类模型

    本文转载自:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/127787791 ,仅作留用和学习,如有侵权,立刻删除! 文章目录 ...

  2. Keras封装实现经典深度网络框架 VGG-16, ZF-Net,Alex-Net,LeNet,Google-Net,ResNet, DenseNet-50

    文章目录 1.Keras封装实现 LeNet网络-5(1998) 2.Keras封装实现 Alex-Net网络-8(2012) 3.Keras封装实现 ZF-Net网络-8(2013) 4.Keras ...

  3. 10亿级数据规模的半监督图像分类模型,Imagenet测试精度高达81.2% | 技术头条...

    译者 | linstancy 作者| I. Zeki Yanlniz, Herve Jegou, Kan Chen, Manohar Paluri, Dhruv Mahajan 编辑 | 蓝色琥珀鱼, ...

  4. keras构建卷积神经网络(CNN(Convolutional Neural Networks))进行图像分类模型构建和学习

    keras构建卷积神经网络(CNN(Convolutional Neural Networks))进行图像分类模型构建和学习 全连接神经网络(Fully connected neural networ ...

  5. [caffe]深度学习之图像分类模型VGG解读

    一.简单介绍 vgg和googlenet是2014年imagenet竞赛的双雄,这两类模型结构有一个共同特点是go deeper.跟googlenet不同的是.vgg继承了lenet以及alexnet ...

  6. ML.NET 示例:图像分类模型训练-首选API(基于原生TensorFlow迁移学习)

    ML.NET 版本 API 类型 状态 应用程序类型 数据类型 场景 机器学习任务 算法 Microsoft.ML 1.5.0 动态API 最新 控制台应用程序和Web应用程序 图片文件 图像分类 基 ...

  7. Facebook AI 提出10亿级数据规模的半监督图像分类模型,ImageNet测试精度高达81.2%!...

    译者 | linstancy 作者| I. Zeki Yanlniz, Herve Jegou, Kan Chen, Manohar Paluri, Dhruv Mahajan 编辑 | 蓝色琥珀鱼, ...

  8. (三)mmclassification图像分类——模型训练

    (三)mmclassification图像分类--模型训练和测试 1.模型训练 1.1使用预训练模型 1.2使用自己的数据训练 1.2.1制作数据集 1.2.2修改模型参数(configs文件) (1 ...

  9. 基于飞桨复现图像分类模型TNT,实现肺炎CT分类

    本项目介绍了TNT图像分类模型,讲述了如何使用飞桨一步步构建TNT模型网络结构,并尝试在新冠肺炎CT数据集上进行分类.由于作者水平有限,若有不当之处欢迎批评指正. TNT模型介绍 TNT模型全称是Tr ...

最新文章

  1. rm排除某个文件进行删除
  2. 技术解析系列 | PouchContainer 富容器技术
  3. Python列表和字典的方法总结
  4. mysql ado.net 实体数据模型_Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源...
  5. webmvcconfigurer配置跨域_为什么加了 Spring Security 会导致 Spring Boot 跨域失效呢?...
  6. 端到端--流量控制、可靠传输和滑动窗口机制学习资料整合
  7. UCOS操作系统——软件定时器(八)
  8. VM16 安装win 11
  9. socket与sock的联系
  10. UI设计师面试时如何自我介绍
  11. Downloading https://ultralytics.com/assets/Arial.ttf to /data/..../.config/Ultralytics/Arial.ttf
  12. thegraph subgraph 踩坑之入门青铜
  13. c语言作业 电影院选座系统,c语言编程 电影院票务系统.wps
  14. 嵌入式开发:硬件和软件越来越接近
  15. python训练营 朋友圈点赞收费吗_千万不要随便在朋友圈点赞!
  16. 例子解释,pandas的pd.read_csv函数,quoting = 3是什么意思
  17. AtCoder - ABC 167 - E(数学推理+组合数)
  18. SPSS Modeler 中如何利用训练好的模型进行新数据源的预测?
  19. C语言编写的文本文件/二进制文件格式互换
  20. 保存系统的操作日志,通过swagger注解获取请求描述(通用版本)

热门文章

  1. python中file是什么意思中文_15_【Python学习分享文章】_file(文件)及其操作
  2. 语音信号的短时傅里叶分析
  3. 如何授权企业证书,使用企业级的APP
  4. Juniper防火墙session会话数过高的解决方法
  5. 爬取新浪、网易、今日头条、UC四大网站新闻标题及内容
  6. Swing中滚动面板JScrollPanede使用
  7. [转载]怎样选择职业
  8. [展览人周刊]华展云20170531期
  9. Android可移动的悬浮窗
  10. 安妮股份联合九次方大数据构建中国知识产权大数据生态圈