迁移学习的使用技巧和在不同数据集上的选择

1.迁移学习是指调整预训练的神经网络并应用到新的不同数据集上。

  • 根据以下两个方面:新数据集的大小,以及新数据集和原始数据集之间的相似性
    使用迁移学习的方式将不同。包括以下四大情形:
    新数据集很小,新数据和原始训练数据相似
    新数据集很小,新数据和原始训练数据不同
    新数据集很大,新数据和原始训练数据相似
    新数据集很大,新数据和原始训练数据不同

  • 大型数据集可能有 100 万张图像。小型数据集可能有 2000 张图像。大型数据集和小型数据集的划分依据具有主观性。对小型数据集使用迁移学习时需要注意过拟合问题。
    小狗图像和狼图像属于相似的图像;它们具有共同的特征。花朵图像数据集和小狗图像数据集则很不同。
    四种迁移学习情形分别具有自己的应用方式。在下面的几个部分,我们将分别讨论每种情形。
    情形1:小数据集,相似数据
    如果新数据集很小,并且与原始训练数据相似:
    删除神经网络的末尾层级
    添加一个新的全连接层,输出数量与新数据集中的类别数量一样
    随机化新全连接层的权重;冻结预训练网络的所有权重
    训练网络以更新新全连接层的权重
    为了避免过拟合小数据集,原始网络的权重将保持不变,而不是重新训练权重。
    由于数据集相似,所以两个数据集的图像将具有相似的更高级特征。所以,大多数或所有预训练神经网络层级已经包含关于新数据集的相关信息,应该保留这些信息。
    情形2:小数据集,不同数据
    如果新数据集很小,并且与原始训练数据不同:
    删除靠近网络开头的大多数预训练层级
    在剩余预训练层级后面添加一个新的全连接层,输出数量与新数据集中的类别数量一样
    随机化这个新的全连接层的权重;冻结预训练网络的所有权重
    训练网络以更新这个新的全连接层的权重
    由于数据集很小,所以依然需要避免过拟合问题。为了避免过拟合,原始神经网络的权重将保持不变,与第一种情形一样。
    但是原始训练集和新数据集的更高级特征不一样。在这种情形下,新网络将仅使用包含更低级特征的层级。
    情形3:大数据集,相似数据
    如果新数据集很大,并且与原始训练数据相似:
    删除最后的全连接层,并替换为输出数量与新数据集中的类别数量一样的层级
    随机初始化新全连接层的权重
    使用预训练的权重初始化剩余的权重
    重新训练整个神经网络
    用大型数据集训练时,过拟合并不是严重的问题,所以可以重新训练所有权重。
    因为原始训练集和新数据集的更高级特征一样,所以使用整个神经网络。
    情形4:大数据集,不同数据
    如果新数据集很大,并且与原始训练数据不同:
    删除最后的全连接层,并替换为输出数量与新数据集中的类别数量一样的层级
    从头训练网络,并随机初始化权重
    或者采用和“大型数据集,相似数据”情形一样的策略
    虽然数据集和训练数据不同,但是将初始权重设为预训练网络中的权重可能会加快训练速度。所以这种情形和“大型数据集,相似数据”情形完全一致。
    如果将预训练网络设为起始网络没有生成成功的模型,你可以选择去随机初始化卷积神经网络权重,并从头训练网络。

迁移学习的使用技巧和在不同数据集上的选择相关推荐

  1. MXnet-gluoncv实现基于迁移学习的目标检测(自己的数据集)

    一.安装 首先安装mxnet(cpu版): 命令行输入pip install -i https://pypi.doubanio.com/simple/ mxnet(豆瓣源.速度快) 接着安装gluon ...

  2. Python 迁移学习实用指南:1~5

    原文:Hands-On Transfer Learning with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自[ApacheCN 深度学习 译文集],采用译后编辑(MT ...

  3. pytorch卷积神经网络_资源|卷积神经网络迁移学习pytorch实战推荐

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 一.资源简介 这次给大家推荐一篇关于卷积神经网络迁移学习的实战资料,卷积神经网络迁移学 ...

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

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

  5. 生物学深度学习的十个技巧(Ten quick tips for deep learning in biology)

    本文是文献Ten quick tips for deep learning in biology的阅读报告,该文章讲述了在将深度学习方法应用于生物学研究时应该考虑的十个关键因素:本文不是纯粹.完全的文 ...

  6. AI学习笔记(十一)CNN之图像识别(上)

    AI学习笔记之CNN之图像识别(上) 图像识别 图像识别简介 模式识别 图像识别的过程 图像识别的应用 分类与检测 VGG Resnet 迁移学习&inception 卷积神经网络迁移学习fi ...

  7. 2.9 迁移学习-深度学习第四课《卷积神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.8 使用开源的实现方案 回到目录 2.10 数据扩充 迁移学习 (Transfer Learning) 如果你要做一个计算机视觉的应用,相比于从头训练权重,或者说从随机初 ...

  8. 用两个使用Caffe的小项目案例演示迁移学习的实用性

    近年来随着深度学习的急剧升温,不管是学术界还是工业界都把大量资源投入了深度学习.作为一个普通的工程师或者程序员,也想对机器学习,尤其是深度学习有所了解,应当如何入手?最好的回答当然是"get ...

  9. 自然语言处理中的迁移学习(上)

    作者:哈工大SCIR 徐啸 来源:Transfer Learning in Natural Language Processing Tutorial (NAACL 2019) 作者:Sebastian ...

最新文章

  1. 原创工作发表难之叶公好龙
  2. python3 aes 解密
  3. 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 动态拦截函数 | 动态获取 MetaClass 中的方法 | evaluate 方法执行Groovy脚本 )
  4. 模拟业务最小测试用例01
  5. Effective Modern C++英文版及中文翻译
  6. 协议簇:TCP 解析:TCP 数据传输
  7. 到底是谁发明了物联网?
  8. 常量池在堆还是方法区_详解Java 虚拟机(第③篇)——String 类和常量池
  9. 流处理开源框架Flink原理简介和使用
  10. jmeter 安装详解
  11. 文科出身敲出 Instagram,被小札“挤”走,建新冠追踪网站
  12. Shell脚本实战:日志关键字监控+自动告警
  13. 抖音快手无水印视频下载教程解析
  14. dell 恢复介质_Dell OS Recovery Tool如何重装系统 Dell OS Recovery Tool如何创建USB恢复介质...
  15. 【无标题】CentOS7 安装 向日葵 远程工具
  16. 【洛谷P4234】最小差值生成树
  17. 爬虫面试python
  18. 客服如何提高工作效率
  19. 广联达计算机图形学面试题,计算机图形学 面试题.docx
  20. FFT(傅里叶快速变换,详细讲解+推导) 每日一遍,算法再见!

热门文章

  1. Nginx中的location规则与rewrite重写(详解)
  2. qemu内存模型(3) 内存布局初始化
  3. [附源码]SSM计算机毕业设计西柚网购物系统JAVA
  4. (线段树)P5459 [BJOI2016]回转寿司
  5. 你开车都有什么小技巧?
  6. 5G千兆工业路由器 poe供电
  7. 2000+万智能终端、8000+万亿条数据集,长虹如何做快速交互式分析?
  8. Python+Appium+夜神模拟器 全流程从环境搭建到实现自动化(APP自动化)
  9. 制度化规范化标准化精细化_何为规范化、标准化、精细化管理
  10. bWAPP靶场漏洞环境搭建Docker版