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

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,100CU*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。


相关文章
|
8月前
|
机器学习/深度学习 Python
CatBoost高级教程:深度集成与迁移学习
CatBoost高级教程:深度集成与迁移学习【2月更文挑战第17天】
226 1
|
8月前
|
机器学习/深度学习 算法 Python
LightGBM高级教程:深度集成与迁移学习
LightGBM高级教程:深度集成与迁移学习【2月更文挑战第6天】
365 4
|
7月前
|
机器学习/深度学习 算法 Python
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
400 0
使用Python实现深度学习模型:元学习与模型无关优化(MAML)
|
2月前
|
机器学习/深度学习 数据采集 人工智能
从零构建:深度学习模型的新手指南###
【10月更文挑战第21天】 本文将深入浅出地解析深度学习的核心概念,为初学者提供一条清晰的学习路径,涵盖从理论基础到实践应用的全过程。通过比喻和实例,让复杂概念变得易于理解,旨在帮助读者搭建起深度学习的知识框架,为进一步探索人工智能领域奠定坚实基础。 ###
67 3
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
LLM 大模型学习必知必会系列(一):大模型基础知识篇
LLM 大模型学习必知必会系列(一):大模型基础知识篇
LLM 大模型学习必知必会系列(一):大模型基础知识篇
|
8月前
|
机器学习/深度学习 数据采集 人工智能
提升深度学习模型性能的实用技巧
【5月更文挑战第30天】在深度学习领域,构建一个高性能的模型需要超越直觉和经验。本文将深入探讨一系列实用的技术技巧,用于优化神经网络的训练过程和结构设计,进而提高模型的准确性和效率。我们将从数据预处理、网络结构调整、正则化手段以及超参数调优等方面入手,提供一套系统化的方法论,帮助研究人员和工程师们在面对各种复杂任务时,能够有效地提升其深度学习模型的性能。
|
8月前
|
机器学习/深度学习 测试技术
如何选择合适的多任务学习模型?
【5月更文挑战第25天】如何选择合适的多任务学习模型?
69 5
|
8月前
|
机器学习/深度学习 数据可视化
模型性能评价实战
模型性能评价实战
|
8月前
|
机器学习/深度学习 算法 数据可视化
如何选择正确的机器学习模型?
【5月更文挑战第4天】如何选择正确的机器学习模型?
140 4
|
8月前
|
机器学习/深度学习 分布式计算 算法
大模型开发:你如何确定使用哪种机器学习算法?
在大型机器学习模型开发中,选择算法是关键。首先,明确问题类型(如回归、分类、聚类等)。其次,考虑数据规模、特征数量和类型、分布和结构,以判断适合的算法。再者,评估性能要求(准确性、速度、可解释性)和资源限制(计算资源、内存)。同时,利用领域知识和正则化来选择模型。最后,通过实验验证和模型比较进行优化。此过程涉及迭代和业务需求的技术权衡。
133 2

热门文章

最新文章