初学者该如何选择最适合自己的图像分类模型

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 初学者该如何选择最适合自己的图像分类模型

学习前言:      


图像分类任务有:细分类,一般分类,医学图像分类等等。


图像分类模型分为CNN模型与Transformer模型。


       对于CNN模型来讲, 主要受到实验环境的限制,所以我根据使用场景的不同把所有分类模型划分为重量级模型和轻量级模型,旨在快速适应不同实验环境下的图像分类任务。


       对于Transformer模型来讲,效果一般普遍高于CNN模型,但是训练参数也是大的吓人。一般不推荐个人跑。(手握多张30系列显卡的大佬当我没讲)


本文旨在对不同类别的模型中各自筛选出当下最优的模型。    


 

CNN模型结果先行{
                轻量级模型:MobilenetV2,
                重量级模型:EfiicientnetV2,
}
        Transformer模型结果先行{
               SwinTransformer.
}

        之后我将搭建一个图像分类平台:将三种模型整合在一起提供大家使用!


模型介绍:


       CNN轻量级模型:


               MobileNet系列


1dc618a0ed9580ce8bfa6facb208c08f.png


             MobileNet v1 最大的成就在于提出了depthwise卷积(DW)+pointwise卷积(PW),将普通卷积的计算量近乎降低了一个数量级,成为第一个在轻量级领域取得成功的网络。如下图所示,对于一个常规的3*3卷积,使用dw+PW,计算量降低为原来的 1/(3*3)=1/9, 接近于降低了一个数量级。


MobileNetV1

提出时间:2012

Top-1 准确率:75.2%        

参数量:6.9M


               MobileNet v2借鉴了resnet的残差结构,引入了inverted resdual模块(倒置残差模块),进一步提升了MobileNet的性能。因为inverted resdual一方面有利于网络的学习,因为毕竟学的是残差(这也是resnet的精髓),另一方面,也降低了原来的PW卷积的计算量。在MobileNet v1的dw+pw卷积中,计算量主要集中在PW卷积上。使用了inverted resdual模块之后,原来的一个PW卷积,变成了一个升维PW+一个降维PW,其计算量有所下降。


MobileNetV2

提出时间:2018

Top-1 准确率:74.7%

参数量:6.9M


               ShuffleNet系列


5d4c6812c8535adbb050f4ddf2e1bce8.png

                DW卷积或者分组卷积虽然能够有效的降低计算量,但是缺少通道间的信息交互与整合,势必会影响网络的特征提取能力,MobileNet中使用PW卷积来解决这个问题,但是PW卷积的计算量比较大(相对dw卷积),大约是dw卷积的 C_out / K*k 倍。假设C_out=128, k=3, 那么pw卷积的计算量是dw卷积的14倍!所以MobileNet的计算量主要集中在point wise卷积上面。ShuffleNet v1使用了一种更加经济的方式,channel shuffe,使得不需要卷积操作,也能实现不同通道间的信息融合。


               GhostNet网络


46a9d80a6e05e4e3b19d57a0ee70bcdf.png


GhostNet通过对传统卷积得到的特征图进行观察,发现有很多相似的特征图。那么是否可以通过改造让卷积这种重量级的OP只生成一些具有高度差异性的特征图,然后基于这些特征图,再用一些廉价的OP(相对于卷积)进行变换,得到传统卷积中的那些相似特征图。如下图所示。Ghostnet就是基于下图中的这种ghots module进行构建的轻量级网络。


               官方数据对比:


66ba272a0bfc97be54a5fa679e3d5482.png

下面对两个最重要的指标进行可视化分析,推理延时与精度。这两个指标应该是所有指标中起到决定性作用的。如下图所示:


88b9988b40447cb37c7e3c492d49867f.png


               轻量级模型王者:


       从图中可以看出来 ,mobilenetv2的综合指标是最高的,面对简约的环境时,强烈推荐使用。


       CNN重量级模型:


                AlexNet


               提出时间:2012/9

               Top-1 准确率:62.5%

               参数量:60M


                VGG-19


               提出时间:2014/9

               Top-1 准确率:74%

               参数量:144M


                Inception V3


               提出时间:2015/12

               Top-1 准确率:78.8%

               参数量:23.8M


                EfficientNetV1


               提出时间:2019/5

               Top-1 准确率:84.4%

               参数量:66M


                EfficientNetV2


               提出时间:2021

               Top-1 准确率:87.3%

               参数量:比EfficientNetV1小


                重量级模型王者:


               从以上数据分析可得EfficientNetV1恐怕是参数量较少且准确率非常高的王者模型了,然而EfficientNetV2 不仅准确率超过EfficientNetV1 3%,且速度快了5~10倍,所以重量级模型王者非EfficientNetV2莫属。


       Transformer模型:


              Transformer模型主要有Vision Transformer(2019)与Swin Transformer(2021)


                  ImageNet-1K数据集准确率对比:

      80308c27701d3aead18db6c7b167f308.png                        


               ImageNet-22K数据集准确率对比:

            1014213c4196c8798c8417b952a8a253.png      


               结论:


        我们可以明显看出Swin Transformer准确率远远高于Vision Transformer。


相关文章
|
6天前
|
机器学习/深度学习 算法 数据可视化
如何选择正确的机器学习模型?
【5月更文挑战第4天】如何选择正确的机器学习模型?
28 4
|
6天前
|
机器学习/深度学习 数据可视化 PyTorch
OneFlow深度学习框架介绍:新手快速上手指南
【4月更文挑战第12天】OneFlow是一款高性能的深度学习框架,由一流科技公司研发,以其数据流编程模型、动态图执行和高效分布式训练等功能脱颖而出。其易用性、卓越性能和强大的分布式训练能力使其在AI领域备受关注。新手可以通过简单的安装和基础程序快速上手,利用OneFlow的Module构建模型,结合损失函数和优化器进行训练。此外,OneFlow支持ONNX模型导入导出、TensorBoard可视化及与其他Python库集成,助力无缝对接现有生态。深入了解和实践OneFlow,可提升深度学习开发效率。
29 2
|
6月前
|
机器学习/深度学习 存储 Cloud Native
【推荐】最适合新手的5个深度学习实战项目
【推荐】最适合新手的5个深度学习实战项目
|
8月前
|
机器学习/深度学习 人工智能 TensorFlow
新手该如何快速学习和应用LLM
新手该如何快速学习和应用LLM
|
9月前
|
机器学习/深度学习 PyTorch 算法框架/工具
深度学习实践篇 第三章:模型与模型的搭建
主要介绍了pytorch中nn.Module()类和模型搭建
175 0
|
9月前
|
机器学习/深度学习 自然语言处理 监控
手把手教你强化学习 (二) 强化学习的直观理解和基本概念
手把手教你强化学习 (二) 强化学习的直观理解和基本概念
|
11月前
|
机器学习/深度学习 人工智能 移动开发
深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等
深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等
深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等
|
机器学习/深度学习 PyTorch 算法框架/工具
图像分类(迁移学习/五分钟手把手教你搭建分类模型)下
图像分类(迁移学习/五分钟手把手教你搭建分类模型)
71 0
|
机器学习/深度学习 数据可视化 异构计算
图像分类(迁移学习/五分钟手把手教你搭建分类模型)上
图像分类(迁移学习/五分钟手把手教你搭建分类模型)
156 0
图像分类(迁移学习/五分钟手把手教你搭建分类模型)上
|
机器学习/深度学习 计算机视觉 Python
【深度学习实践(二)】上手手写数字识别
【深度学习实践(二)】上手手写数字识别
【深度学习实践(二)】上手手写数字识别