0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析4个计算机视觉领域常用迁移学习模型

新机器视觉 来源:Orhan G. Yalçın 2023-04-23 18:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

导读

使用SOTA的预训练模型来通过迁移学习解决现实的计算机视觉问题。

849ea7fe-daf8-11ed-bfe3-dac502259ad0.png

如果你试过构建高精度机器学习模型,但还没有试过迁移学习,这篇文章将改变你的生活。至少,对我来说是的。

我们大多数人已经尝试过,通过几个机器学习教程来掌握神经网络的基础知识。这些教程非常有助于了解人工神经网络的基本知识,如循环神经网络,卷积神经网络,GANs和自编码器。但是这些教程的主要功能是为你在现实场景中实现做准备。

现在,如果你计划建立一个利用深度学习人工智能系统,你要么(i)有一个非常大的预算用于培训优秀的人工智能研究人员,或者(ii)可以从迁移学习中受益。

什么是迁移学习?

迁移学习是机器学习和人工智能的一个分支,其目的是将从一个任务(源任务)中获得的知识应用到一个不同但相似的任务(目标任务)中。

例如,在学习对维基百科文本进行分类时获得的知识可以用于解决法律文本分类问题。另一个例子是利用在学习对汽车进行分类时获得的知识来识别天空中的鸟类。这些样本之间存在关联。我们没有在鸟类检测上使用文本分类模型。

迁移学习是指从相关的已经学习过的任务中迁移知识,从而对新的任务中的学习进行改进

总而言之,迁移学习是一个让你不必重复发明轮子的领域,并帮助你在很短的时间内构建AI应用。

迁移学习的历史

为了展示迁移学习的力量,我们可以引用Andrew Ng的话:

迁移学习将是继监督学习之后机器学习商业成功的下一个驱动因素

迁移学习的历史可以追溯到1993年。Lorien Pratt的论文“Discriminability-Based Transfer between Neural Networks”打开了潘多拉的盒子,向世界介绍了迁移学习的潜力。1997年7月,“Machine Learning”杂志发表了一篇迁移学习论文专刊。随着该领域的深入,诸如多任务学习等相邻主题也被纳入迁移学习领域。“Learning to Learn”是这一领域的先驱书籍之一。如今,迁移学习是科技企业家构建新的人工智能解决方案、研究人员推动机器学习前沿的强大源泉。

84d70df6-daf8-11ed-bfe3-dac502259ad0.png

迁移学习是如何工作的?

实现迁移学习有三个要求:

由第三方开发开源预训练模型

重用模型

对问题进行微调

开发开源预训练模型

预训练的模型是由其他人创建和训练来解决与我们类似的问题的模型。在实践中,几乎总是有人是科技巨头或一群明星研究人员。他们通常选择一个非常大的数据集作为他们的基础数据集,比如ImageNet或Wikipedia Corpus。然后,他们创建一个大型神经网络(例如,VGG19有143,667,240个参数)来解决一个特定的问题(例如,这个问题用VGG19做图像分类。)当然,这个预先训练过的模型必须公开,这样我们就可以利用这些模型并重新使用它们。

重用模型

在我们掌握了这些预先训练好的模型之后,我们重新定位学习到的知识,包括层、特征、权重和偏差。有几种方法可以将预先训练好的模型加载到我们的环境中。最后,它只是一个包含相关信息的文件/文件夹。然而,深度学习库已经托管了许多这些预先训练过的模型,这使得它们更容易访问:

TensorFlow Hub

Keras Applications

PyTorch Hub

你可以使用上面的一个源来加载经过训练的模型。它通常会有所有的层和权重,你可以根据你的意愿调整网络。

对问题进行微调

现在的模型也许能解决我们的问题。对预先训练好的模型进行微调通常更好,原因有两个:

这样我们可以达到更高的精度。

我们的微调模型可以产生正确的格式的输出。

一般来说,在神经网络中,底层和中层通常代表一般的特征,而顶层则代表特定问题的特征。由于我们的新问题与原来的问题不同,我们倾向于删除顶层。通过为我们的问题添加特定的层,我们可以达到更高的精度。

在删除顶层之后,我们需要放置自己的层,这样我们就可以得到我们想要的输出。例如,使用ImageNet训练的模型可以分类多达1000个对象。如果我们试图对手写数字进行分类(例如,MNIST classification),那么最后得到一个只有10个神经元的层可能会更好。

在我们将自定义层添加到预先训练好的模型之后,我们可以用特殊的损失函数和优化器来配置它,并通过额外的训练进行微调。

计算机视觉中的4个预训练模型

这里有四个预先训练好的网络,可以用于计算机视觉任务,如图像生成、神经风格转换、图像分类、图像描述、异常检测等:

VGG19

Inceptionv3 (GoogLeNet)

ResNet50

EfficientNet

让我们一个一个地深入研究。

VGG-19

VGG是一种卷积神经网络,深度为19层。它是由牛津大学的Karen Simonyan和Andrew Zisserman在2014年构建和训练的,论文为:Very Deep Convolutional Networks for large Image Recognition。VGG-19网络还使用ImageNet数据库中的100多万张图像进行训练。当然,你可以使用ImageNet训练过的权重导入模型。这个预先训练过的网络可以分类多达1000个物体。对224x224像素的彩色图像进行网络训练。以下是关于其大小和性能的简要信息:

大小:549 MB

Top-1 准确率:71.3%

Top-5 准确率:90.0%

参数个数:143,667,240

深度:26

84e90ede-daf8-11ed-bfe3-dac502259ad0.jpg

Inceptionv3 (GoogLeNet)

Inceptionv3是一个深度为50层的卷积神经网络。它是由谷歌构建和训练的,你可以查看这篇论文:“Going deep with convolutions”。预训练好的带有ImageNet权重的Inceptionv3可以分类多达1000个对象。该网络的图像输入大小为299x299像素,大于VGG19网络。VGG19是2014年ImageNet竞赛的亚军,而Inception是冠军。以下是对Inceptionv3特性的简要总结:

尺寸:92 MB

Top-1 准确率:77.9%

Top-5 准确率:93.7%

参数数量:23,851,784

深度:159

850261ae-daf8-11ed-bfe3-dac502259ad0.jpg

ResNet50 (Residual Network)

ResNet50是一个卷积神经网络,深度为50层。它是由微软于2015年建立和训练的,论文:[Deep Residual Learning for Image Recognition](http://deep Residual Learning for Image Recognition /)。该模型对ImageNet数据库中的100多万张图像进行了训练。与VGG-19一样,它可以分类多达1000个对象,网络训练的是224x224像素的彩色图像。以下是关于其大小和性能的简要信息:

尺寸:98 MB

Top-1 准确率:74.9%

Top-5 准确率:92.1%

参数数量:25,636,712

如果你比较ResNet50和VGG19,你会发现ResNet50实际上比VGG19性能更好,尽管它的复杂性更低。你也可以使用更新的版本,如ResNet101,ResNet152,ResNet50V2,ResNet101V2,ResNet152V2。

8510ac00-daf8-11ed-bfe3-dac502259ad0.jpg

EfficientNet

EfficientNet是一种最先进的卷积神经网络,由谷歌在2019年的论文“efficient entnet: Rethinking Model Scaling for convolutional neural Networks”中训练并发布。EfficientNet有8种可选实现(B0到B7),甚至最简单的EfficientNet B0也是非常出色的。通过530万个参数,实现了77.1%的最高精度性能。

85210df2-daf8-11ed-bfe3-dac502259ad0.png

EfficientNetB0的特性简要介绍如下:

尺寸:29 MB

Top-1 准确率:77.1%

Top-5 准确率:93.3%

参数数量:~5,300,000

深度:159

其他的计算机视觉问题的预训练模型

我们列出了四种最先进的获奖卷积神经网络模型。然而,还有几十种其他模型可供迁移学习使用。下面是对这些模型的基准分析,这些模型都可以在Keras Applications中获得。

85359d9e-daf8-11ed-bfe3-dac502259ad0.png

总结

在一个我们可以很容易地获得最先进的神经网络模型的世界里,试图用有限的资源建立你自己的模型就像是在重复发明轮子,是毫无意义的。

相反,尝试使用这些训练模型,在上面添加一些新的层,考虑你的特殊计算机视觉任务,然后训练。其结果将比你从头构建的模型更成功。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1813

    文章

    49734

    浏览量

    261509
  • 计算机视觉
    +关注

    关注

    9

    文章

    1714

    浏览量

    47452
  • 机器学习
    +关注

    关注

    66

    文章

    8541

    浏览量

    136233
  • 卷积神经网络

    关注

    4

    文章

    371

    浏览量

    12716

原文标题:4个计算机视觉领域常用迁移学习模型

文章出处:【微信号:vision263com,微信公众号:新机器视觉】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用代理式AI激活传统计算机视觉系统的三种方法

    当前的计算机视觉系统擅长于识别物理空间与流程中的事件,却难以诠释场景细节及其意义,也无法推理后续可能发生的情况。
    的头像 发表于 12-01 09:44 327次阅读

    工控机与普通计算机的核心差异解析

    在工业自动化和智能制造领域计算机设备作为核心控制单元,其选择直接影响整个系统的稳定性与可靠性。工控机与普通计算机虽同属计算设备,但其设计目标、性能侧重和应用场景存在根本性差异。准确理
    的头像 发表于 11-25 14:45 1130次阅读
    工控机与普通<b class='flag-5'>计算机</b>的核心差异解析

    【作品合集】赛昉科技VisionFive 2单板计算机开发板测评

    VisionFive 2 上为目标检测准备软件环境并运行 MobileNet-SSD 模型【VisionFive 2单板计算机试用体验】VisionFive 2复古游戏机改造 作者:TLLED【VisionFive 2
    发表于 09-04 09:08

    易控智驾荣获计算机视觉顶会CVPR 2025认可

    近日,2025年国际计算机视觉与模式识别顶级会议(IEEE/CVF Conference on Computer Vision and Pattern Recognition,CVPR 2025)在美国田纳西州纳什维尔召开。
    的头像 发表于 07-29 16:54 981次阅读

    自动化计算机的功能与用途

    工业自动化是指利用自动化计算机来控制工业环境中的流程、机器人和机械,以制造产品或其部件。工业自动化的目的是提高生产率、增加灵活性,并提升制造过程的质量。工业自动化在汽车制造中体现得最为明显,其中许多
    的头像 发表于 07-15 16:32 530次阅读
    自动化<b class='flag-5'>计算机</b>的功能与用途

    工业计算机与商用计算机的区别有哪些

    工业计算机是一种专为工厂和工业环境设计的计算系统,具有高可靠性和稳定性,能够应对恶劣环境下的自动化、制造和机器人操作。其特点包括无风扇散热技术、无电缆连接和防尘防水设计,使其在各种工业自动化场景中
    的头像 发表于 07-10 16:36 516次阅读
    工业<b class='flag-5'>计算机</b>与商用<b class='flag-5'>计算机</b>的区别有哪些

    NVIDIA 宣布推出 DGX Spark 个人 AI 计算机

    的 DGX™ 个人 AI 超级计算机。   DGX Spark(前身为 Project DIGITS)支持 AI 开发者、研究人员、数据科学家和学生,在台式电脑上对大模型进行原型设计、微调和推理。用
    发表于 03-19 09:59 504次阅读
       NVIDIA 宣布推出 DGX Spark 个人 AI <b class='flag-5'>计算机</b>

    英飞凌边缘AI平台通过Ultralytics YOLO模型增加对计算机视觉的支持

    计算机视觉的支持,扩大了当前对音频、雷达和其他时间序列信号数据的支持范围。在增加这项支持后,该平台将能够用于开发低功耗、低内存的边缘AI视觉模型。这将给诸多应用
    的头像 发表于 03-11 15:11 656次阅读
    英飞凌边缘AI平台通过Ultralytics YOLO<b class='flag-5'>模型</b>增加对<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>的支持

    Arm KleidiCV与OpenCV集成助力移动端计算机视觉性能优化

    生成式及多模态人工智能 (AI) 工作负载的广泛增长,推动了对计算机视觉 (CV) 技术日益高涨的需求。此类技术能够解释并分析源自现实世界的视觉信息,并可应用于人脸识别、照片分类、滤镜处理及增强现实
    的头像 发表于 02-24 10:15 876次阅读

    模型领域常用名词解释(近100

    本文总结了大模型领域常用的近100名词解释,并按照模型架构与基础概念,训练方法与技术,模型优化与压缩,推理与应用,
    的头像 发表于 02-19 11:49 1280次阅读
    大<b class='flag-5'>模型领域</b><b class='flag-5'>常用</b>名词解释(近100<b class='flag-5'>个</b>)

    中科驭数DPU助力大模型训练和推理

    随着深度学习技术的快速发展,大模型(如GPT、BERT等)在自然语言处理、计算机视觉领域取得了显著成果。然而,大
    的头像 发表于 02-19 09:48 1070次阅读
    中科驭数DPU助力大<b class='flag-5'>模型</b>训练和推理

    微软OmniParser V2:大模型转化为计算机智能体

    微软近日宣布,视觉Agent解析框架OmniParser已发布最新版本V2。这一新版本具有将大型语言模型如OpenAI(4o/o1/o3-mini)、DeepSeek(R1)、Qwen(2.5VL
    的头像 发表于 02-18 09:31 2667次阅读

    AR和VR中的计算机视觉

    ):计算机视觉引领混合现实体验增强现实(AR)和虚拟现实(VR)正在彻底改变我们与外部世界的互动方式。即便是在引人入胜的沉浸式
    的头像 发表于 02-08 14:29 2125次阅读
    AR和VR中的<b class='flag-5'>计算机</b><b class='flag-5'>视觉</b>

    云端超级计算机使用教程

    云端超级计算机是一种基于云计算的高性能计算服务,它将大量计算资源和存储资源集中在一起,通过网络向用户提供按需的计算服务。下面,AI部落小编为
    的头像 发表于 12-17 10:19 943次阅读

    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV

    1简介Opencv(OpenSourceComputerVisionLibrary)是一基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机
    的头像 发表于 12-14 09:10 1262次阅读
    AI<b class='flag-5'>模型</b>部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV