点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达本文转自|AI公园

导读

使用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—

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

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

  1. 汽车领域多语种迁移学习挑战赛-Coggle 30 Days of ML

    前言 依然是coggle的7月竞赛学习活动,本博客围绕着汽车领域多语种迁移学习挑战赛展开. 比赛地址:http://challenge.xfyun.cn/topic/info?type=car-mul ...

  2. NLP竞赛参与打卡记录:汽车领域多语种迁移学习挑战赛

    NLP竞赛参与打卡记录:汽车领域多语种迁移学习挑战赛 本博客为Coggle 30 Days of ML(22年7月)竞赛打卡活动记录页面,会记录本人的打卡内容.活动链接为:活动链接 任务1:比赛报名 ...

  3. 【练一下2】汽车领域多语种迁移学习挑战赛[2022.7.8]

    文章目录 任务1:报名比赛 步骤1:报名比赛http://challenge.xfyun.cn/topic/info?type=car-multilingual&ch=ds22-dw-zmt0 ...

  4. 竞赛:汽车领域多语种迁移学习挑战赛(科大讯飞)

    目录 一.赛事背景 二.赛事任务 三.评审规则 1.数据说明 2.评估指标 四.准备阶段 1.报名比赛 2.查看训练集和测试集字段类型 五.文本分析与文本分词 1.使用jieba对中文进行分词 2.使 ...

  5. 大规模细粒度分类和特定领域的迁移学习

    原文: Large Scale Fine-Grained Categorization and Domain-Specific Transfer Learning 概要 通过微调从大规模数据集(如Im ...

  6. 迁移学习和模型的微调

    迁移学习 对于新的数据,需要进行分类或者回归时,常用的方法是在以个大的数据集上(ImageNet包含120万张来自1000类别的数据集)进行预训练一个CNN模型,然后用这个预训练好的模型作为特征提取部 ...

  7. 【Coggle 30 Days of ML】汽车领域多语种迁移学习挑战赛(2)

    目录 任务 Just Do It! 1.中文分词:jieba ​编辑 2.日语分词:nagisa 任务 任务2:文本分析与文本分词 步骤1:使用jieba对中文进行分词: 步骤2:使用negisa对日 ...

  8. 【Coggle 30 Days of ML】汽车领域多语种迁移学习挑战赛(4)

    目录 任务 Just Do It! 1.Bert模型入门 1.1前置知识 1.2导入预训练模型 1.3训练数据处理 1.4数据及读取及模型定义 2.Bert文本分类 2.1开始读取数据集 2.2加载模 ...

  9. 迁移学习xlm-roberta-base模型应用于分类任务

    下载模型 加载模型 这里不使用官网推荐的方式 from transformers import AutoTokenizer, AutoModelForMaskedLMtokenizer = AutoT ...

最新文章

  1. 小程序云开发获取手机号完整代码 云函数中网络请求第三方接口
  2. 利用wget 抓取 网站网页 包括css背景图片
  3. 500元辛苦费,求一C#算法,自由定义表达式
  4. 中国钢铁行业战略规划及项目建设动态分析报告2021-2027年
  5. 【转】强大的B树B+树
  6. python集合的两种类型_python 入门之 – 集合类型(十九)
  7. 《言简意赅之Linux设备驱动编程》 前言
  8. datagridview选中获取行号_DataGridView控件显示行号的正确代码及分析
  9. centos 管理记录(二)
  10. java 浏览器信息吗_java获取浏览器信息
  11. 1.4通过时间的方向传播
  12. java的dicon文件_配置文件参考
  13. Docker之数据卷和数据卷容器
  14. linux shell 获取系统当前时间 毫秒
  15. ORACLE11g升级19c,报ORA-01017
  16. 计算机毕业论文java毕业设计成品源码网站基于SSM实现的仓库管理系统
  17. 2021高考秦安一中成绩查询,2021年天水高考状元是谁分数多少分,历年天水高考状元名单...
  18. 盘点 | CES2023落幕!新能源车、显示技术、AI/元宇宙、芯片…百花齐放百家争鸣中……
  19. SSE(Server-Sent Events)| 前后端demo参考
  20. cdn 配合 oss加速

热门文章

  1. AI时代,中国技术创新如何弯道超车?
  2. 今晚8点直播 | 双11的背后除了阿里还有顺丰,智慧物流是如何利用深度学习赋能的?...
  3. 百度大脑发布企业服务解决方案,将 AI 技术落实到细分领域
  4. ACMMM2017 | 电子科大斩获最佳论文!中科院自动化所多媒体计算组获得IEEE期刊最佳论文!
  5. 是时候装逼了,试试 IDEA 解决 Maven 依赖冲突的高能神器!
  6. Oracle慌了!华为终于对JDK下手了!
  7. fastjson 的作者,在阿里内网挨骂了?!
  8. Spring Boot 2.3.0 新特性:优雅停机!
  9. IDEA高级用法:集成JIRA、UML类图插件、SSH、FTP、Database管理...
  10. 为什么老外不愿意用MyBatis?