图像分类必备经典模型,一文打尽知多少?(一)

简介: 图像分类必备经典模型,一文打尽知多少?(一)

图像分类必备经典模型,一文打尽知多少?(一)

机器之心 2022-08-21 11:33 发表于北京

以下文章来源于机器之心SOTA模型,作者机器之心SOTA模型

机器之心专栏

本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。


本文将分 3 期进行连载,共介绍 15 个在图像分类任务上曾取得 SOTA 的经典模型。


  • 第1期:AlexNet、VGG、GoogleNet、ResNet、ResNetXt
  • 第2期:DenseNet、MobileNet、SENet、DPN、IGC V1
  • 第3期:Residual Attention Network、ShuffleNet、MnasNet、EfficientNet、NFNet

您正在阅读的是其中的第 1 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。


本期收录模型速览


模型  SOTA! 模型资源站收录情况 模型来源论文
AlexNet https://sota.jiqizhixin.com/models/models/d07f8019-2816-4ce4-af44-ff9c1310e6ee
收录总数:10
支持框架:PyTorch、CANN、MindSpore、caffe、TensorFlow、PaddlePaddle 等
Imagenet Classification with Deep Convolution Neural Network
VGG https://sota.jiqizhixin.com/models/models/9d4c5378-8f0d-43aa-b64f-976a3c87273b
收录总数:16
支持框架:CANN、PyTorch、TensorFlow、MindSpore、caffe、PaddlePaddle 等
Very Deep Convolutional Networks for Large-Scale Image Recognition
GoogleNet https://sota.jiqizhixin.com/models/models/5b5254d4-c27d-4014-85b0-c1cb48488995
收录总数:10
支持框架:CANN、TensorFlow、PyTorch、MindSpore、PaddlePaddle 等
Going Deeper with Convolutions
ResNet https://sota.jiqizhixin.com/models/models/51e81484-f784-4b1d-9b4a-723d9c18a76f
收录总数:47
支持框架:CANN、TensorFlow、MindSpore、PyTorch、PaddlePaddle、JAX 等
Deep Residual Learning for Image Recognition
ResNeXt https://sota.jiqizhixin.com/models/models/0e3dac75-f35b-4813-9355-c4c9f5cb0f78
收录总数:55
支持框架:PyTorch、TensorFlow、CANN、MindSpore、Torch、PaddlePaddle、MXNet、Caffe2 等
Aggregated Residual Transformations for Deep Neural Networks


图像分类是计算机视觉领域最经典的任务之一,目的是将输入的图像对应到预定义的语义类别中,即打上类别标签。传统的图像分类方法由底层特征学习、特征编码、空间约束、分类器设计、模型融合等步骤组成。


首先,从图像中提取特征,经典的特征提取方法包括HOG(Histogram of Oriented Gradient, 方向梯度直方图) 、LBP(Local Bianray Pattern, 局部二值模式)、SIFT(Scale-Invariant Feature Transform, 尺度不变特征转换)等,也可以将多种特征融合以保留更多有用信息。然后,对特征进行编码后去除冗余和噪声,生成特征编码,经典方法包括稀疏编码、局部线性约束编码、Fisher向量编码等。再然后,经过空间特征约束后实现特征汇聚,例如经典的金字塔特征匹配方法。最后,利用分类器进行分类,经典分类器包括SVM、随机森林等等。



Alex Krizhevsky 在 2012 年 ILSVRC 提出的 CNN 模型首次将深度学习应用于大规模图像分类任务,其效果远超传统的图像分类方法,一举获得 ILSVRC 2012 的冠军,开启了深度学习模型在图像分类中的应用历程。这个模型就是著名的 AlexNet。自此,图像分类改变了传统的致力于提取有效的特征、改进分类器的有效性的研究和应用路径,转为研究不同的深度学习模型架构。


深度卷积神经网络为图像分类带来了一系列突破。深度神经网络集成了低/中/高层次的特征,可以被端到端训练,特征的层次可以通过网络的深度来丰富。甚至有研究人员称,正是在图像分类任务中应用的巨大成功,带动了深度学习的方法。


AlexNet


AlexNet 首次发表在 NIPS 2012,获得了 ILSVRC 2012 的冠军,开启了深度学习模型在图像分类中的应用历程。AlexNet 实际上就是一个 CNN,如下图,包含 8 个学习层:5 个卷积层和 3 个全连接层。在现在看来,AlexNet 的架构并不复杂。

图 1 AlexNet 架构


AlexNet 首次在 CNN 中成功应用了 ReLU、Dropout 和 LRN 等。具体如下:

(1)AlexNet 中使用 Relu 作为 CNN 的激活函数,成功解决了 Sigmoid 在网络较深时的梯度弥散问题:



(2)AlexNet 在训练时使用 Dropout 随机忽略一部分神经元,以避免模型过拟合。在AlexNet 中主要是最后几个全连接层使用了 Dropout。


(3)AlexNet 中引入了局部响应归一化( Local Response Normalization,LRN)。对于第 i 个特征图 (x,y) 上的神经元活性 (a_x,y)^i ,应用 ReLU 非线性,响应归一化的活动是


通过向局部神经元的活动引入竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。


(4)AlexNet 使用重叠的最大池化。此前 CNN 中普遍使用平均池化,AlexNet 全部使用最大池化,避免平均池化的模糊化效果。并且 AlexNet 中提出让步长比池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特征的丰富性。


(5)使用 CUDA 加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵运算。受限于当时的显卡显存条件,AlexNet 使用两卡并行训练,在最终的卷积层中,单 GPU 网络实际上可以具有与双 GPU 网络相同数量的内核。
(6)优化器是 SGD+Momentum。


当前 SOTA!平台收录 AlexNet 共 10 个模型实现资源,支持的主流框架包含 PyTorch、CANN、MindSpore、caffe、TensorFlow、PaddlePaddle 等。


模型 SOTA!模型资源站详情页
AlexNet 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/d07f8019-2816-4ce4-af44-ff9c1310e6ee


VGG


VGG 是指用于大规模图像识别的极深度卷积网络(VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION),重点研究的是深度对CNN 性能的影响,提出用堆叠的小卷积核来代替大卷积核,论文发表在 ICLR 2015。VGG 的核心思想是使用具有非常小的卷积核的架构,增加网络的深度,然后进行全面评估。实验表明将深度推至 16-19 层可以实现对现有技术的提升。具体的,VGG16、VGG19 中的数字都是指有参数层的数量。


表 1 ConvNet 的配置(以列显示)


如表 1 所示,ConvNet 的配置的深度从左(A)到右(E)增加,卷积层的参数表示为 "conv <receptive field size>-<number of channels>"。其中,忽视了 Relu 层。

在训练阶段,ConvNets 的输入是一个固定大小的 224×224 的 RGB 图像。我们所做的唯一预处理是减去每个像素的 RGB 平均值,该值是在训练集上计算出来的。将图像传递到卷积层的堆栈中,使用具有非常小的感受野(receptive field,RF)的过滤器:3×3。在其中一个配置中,还利用了 1x1 卷积核,这可以看作是输入通道的线性变换。卷积 stride 固定为 1 ,padding 是为了卷积前后分辨率不变。池化由 5 个 max-pooling 执行,大小为 2,stride 为 2。引入 1×1 卷积层(配置C,表1)是增加决策函数的非线性而不影响卷积层的感受野的一种方法。

卷积层的堆栈(在不同的架构中具有不同的深度)之后是三个全连接(FC)层:前两个层各有 4096 个通道,第三层进行 1000 维度的 ILSVRC 分类,因此包含 1000 个通道(每个对应一个类别)。最后一层是 softmax 层。在所有网络中,全连接层设置都是相同的。

VGG 使用 ReLu 作为激活函数,网络(除了一个)均不包含 LRN。文中实验证明这种归一化不能提高 ILSVRC 数据集的性能,还会导致内存消耗和计算时间增加。此外,VGG 使用了 Dropout 来优化网络结构。VGG 的优点是结构简单,易于推广应用。缺点则是参数量和计算量都很大。

当前 SOTA!平台收录 VGG 共 16 个模型实现资源,支持主流框架包括 CANN、PyTorch、TensorFlow、MindSpore、caffe、PaddlePaddle 等。


模型 SOTA!模型资源站详情页
VGG 前往 SOTA!模型资源站获取实现资源:https://sota.jiqizhixin.com/models/models/9d4c5378-8f0d-43aa-b64f-976a3c87273b



相关文章
|
运维 安全 Cloud Native
谈谈云原生安全
根据自己的理解 简单谈谈云原生安全
6054 0
谈谈云原生安全
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
存储 安全 程序员
47.9K star!全平台开源笔记神器,隐私安全首选!
Joplin 是一款开源的笔记记录和待办事项应用,拥有 47.9K star,支持 Windows、macOS、Linux、iOS 和 Android 全平台同步。它采用端到端加密,确保数据隐私安全,支持 Markdown 编辑、数学公式、流程图等丰富功能,并可通过插件扩展实现更多定制化需求。Joplin 完美替代商业笔记软件,适用于程序员知识库、个人事务管理及团队协作等多种场景。
2391 1
|
存储 人工智能 搜索推荐
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
Memoripy 是一个 Python 库,用于管理 AI 应用中的上下文感知记忆,支持短期和长期存储,兼容 OpenAI 和 Ollama API。
1282 6
Memoripy:支持 AI 应用上下文感知的记忆管理 Python 库
|
Docker 容器
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
|
存储 缓存 固态存储
固态硬盘寿命一般多少年?
随着科技的飞速发展,固态硬盘(SSD)已经成为现代计算机存储设备的重要组成部分。相比传统的机械硬盘(HDD),固态硬盘具有速度更快、抗震性强、功耗低、噪音小等优点。不过,很多人对固态硬盘的寿命依然存在疑虑。本期内容就要和大家深度聊一聊固态硬盘寿命的方方面面。
固态硬盘寿命一般多少年?
|
数据可视化 BI
CIO和CFO:数字化转型成功的阴与阳
CIO和CFO:数字化转型成功的阴与阳
|
弹性计算 监控 容灾
阿里云ECS提供强大的云上灾备解决方案,通过高可用基础设施、多样的数据备份方式及异地灾备服务,帮助企业实现业务的持续稳定运行
在数字化时代,企业对信息技术的依赖加深,确保业务连续性至关重要。阿里云ECS提供强大的云上灾备解决方案,通过高可用基础设施、多样的数据备份方式及异地灾备服务,帮助企业实现业务的持续稳定运行。无论是小型企业还是大型企业,都能从中受益,确保在面对各种风险时保持业务稳定。
464 4
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
1787 3
|
机器学习/深度学习 安全 算法
安全多方计算之三:同态加密
安全多方计算之三:同态加密
3492 42

热门文章

最新文章