专栏首页深度学习和计算机视觉4个计算机视觉领域用作迁移学习的模型

4个计算机视觉领域用作迁移学习的模型

导读

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

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

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

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

什么是迁移学习?

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

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

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

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

迁移学习的历史

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

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

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

迁移学习是如何工作的?

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

  • 由第三方开发开源预训练模型
  • 重用模型
  • 对问题进行微调

开发开源预训练模型

预训练的模型是由其他人创建和训练来解决与我们类似的问题的模型。在实践中,几乎总是有人是科技巨头或一群明星研究人员。他们通常选择一个非常大的数据集作为他们的基础数据集,比如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

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

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。

EfficientNet

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

EfficientNetB0的特性简要介绍如下:

  • 尺寸:29 MB
  • Top-1 准确率:77.1%
  • Top-5 准确率:93.3%
  • 参数数量:~5,300,000
  • 深度:159

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

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

总结

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

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

—END—

本文分享自微信公众号 - 小白学视觉(NoobCV)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • BigTransfer (BiT):计算机视觉领域最前沿迁移学习模型

    我们将在本文中为您介绍如何使用 BigTransfer (BiT)。BiT 是一组预训练的图像模型:即便每个类只有少量样本,经迁移后也能够在新数据集上实现出色的...

    磐创AI
  • 不忘初心,砥砺前行|VALSE之行收获

    随着VALSE2019的精彩落幕,SIGAI迎来了建号一周年庆。回顾这365天的时间,我们用130篇优质原创技术文章,与人工智能领域数万的专业人士、学生以及爱好...

    SIGAI学习与实践平台
  • 采用通用语言模型的最新文本分类介绍

    这篇文章向零基础同学介绍我们最新的论文,和以前的方法相比,该论文展示了如何采用更高的精度和更少的数据自动地进行文档分类。我们将使用简单的方式解释几种方法:自然语...

    AI研习社
  • CCAI专访 | 杨强教授谈深度学习泡沫、迁移学习机遇与人工智能入门

    文 | 胡永波 7 月 22 - 23 日,由中国人工智能学会、阿里巴巴集团 & 蚂蚁金服主办,CSDN、中国科学院自动化研究所承办的第三届中国人工智能大会(C...

    AI科技大本营
  • 【收藏】AI高频词汇 TOP15 -入门版

    极视角科技
  • 迁移学习

    所谓迁移学习是指针对新问题重新使用预先训练的模型。由于它能用较少的数据训练深度神经网络,这使得目前它在深度学习领域非常流行。通过这篇文章您将会了解什么是迁移学习...

    小莹莹
  • 专访 | 杨强教授谈CCAI、深度学习泡沫与人工智能入门

    用户1737318
  • 迁移学习全面指南:概念、应用、优势、挑战

    【编者按】Springboard AI顾问、前Intel数据科学家Dipanjan (DJ) Sarkar全面介绍了迁移学习的概念、应用、优势、挑战,重点关注深...

    zenRRan
  • 迁移学习:如何在自然语言处理和计算机视觉中应用?

    在这篇文章中,我将讨论两个关于迁移学习的应用:NLP(自然语言处理)和CV(计算机视觉)。并且我会分别在这两个领域提供一个范例。 NLP 现在很多NLP管道都在...

    AiTechYun
  • 一文读懂在深度学习中使用迁移学习的好处

    迁移学习是一种使用为任务开发的模型做第二个任务模型起点的机器学习方法。使用预训练模型作计算机视觉和自然语言处理任务的起点是深度学习中一种流行的方法。因为在这些问...

    AiTechYun
  • 迁移学习前沿研究亟需新鲜血液,深度学习理论不能掉链子

    在本篇系统综述中,作者采用了定量方法来选出对该领域的重大进展,并使用文献计量学耦合性度量来识别出来研究的前沿。另外,本论文还进一步分析了该领域的“经典”与“前沿...

    AI科技大本营
  • 20亿参数+30亿张图像,刷新ImageNet最高分!谷歌大脑华人研究员领衔发布最强Transformer

    近日,谷歌大脑团队公布了Vision Transformer(ViT)进阶版ViT-G/14,参数高达20亿的CV模型,经过30亿张图片的训练,刷新了Image...

    新智元
  • 什么是迁移学习?它都用在深度学习的哪些场景上?这篇文章替你讲清楚了

    翻译 | 刘畅 迁移学习是机器学习方法之一,它可以把为一个任务开发的模型重新用在另一个不同的任务中,并作为另一个任务模型的起点。 这在深度学习中是一种常见的方法...

    AI科技大本营
  • 什么是迁移学习?它都用在深度学习的哪些场景上?这篇文章替你讲清楚了

    翻译 | 刘畅 迁移学习是机器学习方法之一,它可以把为一个任务开发的模型重新用在另一个不同的任务中,并作为另一个任务模型的起点。 这在深度学习中是一种常见的方法...

    小莹莹
  • 腾讯AI Lab宣布将于9月底开源“Tencent ML-Images”项目

    ? 今日,腾讯AI Lab宣布将于9月底开源“Tencent ML-Images”项目,该项目由多标签图像数据集ML-Images,以及业内目前同类深度学习模...

    腾讯技术工程官方号
  • 深度 | 2017 CV 技术报告之图像分割、超分辨率和动作识别

    机器之心
  • 登上《Cell》封面的AI医疗影像诊断系统:机器之心专访UCSD张康教授

    机器之心原创 作者:李泽南 人工智能(AI)有可能通过帮助人类医疗专家进行高难度分类、快速分析大量医疗图像的方式彻底改变疾病的诊断和治疗流程。近日,由加州大学圣...

    机器之心
  • 迁移学习在深度学习中的应用

    ▌简介 ---- 迁移学习是一种机器学习方法,其中为一个任务开发的模型可以在另一个任务中重用。 迁移学习是深度学习中的一种流行方法,其中预训练(pre-trai...

    WZEARW
  • 学界 | ImageNet 带来的预训练模型之风,马上要吹进 NLP 领域了

    AI 科技评论按:对于计算机视觉领域的研究人员、产品开发人员来说,在 ImageNet 上预训练模型然后再用自己的任务专用数据训练模型已经成了惯例。但是自然语言...

    AI科技评论

扫码关注云+社区

领取腾讯云代金券