吴恩达deeplearning.ai:数据增强数据合成迁移学习

news2024/11/19 16:31:30

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏
让我们看看为你的程序添加数据的技巧。在构建神经网络的时候,我们总是想要更多的数据,但是获取更多的数据往往是十分昂贵又缓慢的。相反地,添加数据的另一种方法是专注于添加有帮助的数据。
在上一篇博客之中,我们提到了垃圾邮件识别器,其中解决提高系统性能的方法之一就是添加专门的某种类型数据,从而增强神经网络的性能。如今,研究人员如果发现神经网络在某种特定的数据上表现特别差,有一种方法能够做到只添加一点点数据,就可以大幅增强神经网络的表现,这叫做数据增强

文章目录

  • 数据增强 Data Augmentation
    • 手写识别
    • 语音识别
  • 数据合成
  • 迁移原理
    • 原理


数据增强 Data Augmentation

手写识别

例如,如果你在做一个字母识别的神经网络,希望神经网络能够更好地识别字母A,那么你除了传入一张字母A作为数据,还可以将这张图片旋转一定角度,从而产生一个新的示例;或者将图片放大或者缩小一点;或者改变图片的对比度;如果不是对称图形,你也可以添加它的镜像等等。
在这里插入图片描述
另外一种常用的方法是,将图像放在网格之上,之后随机扭曲图像:
在这里插入图片描述

语音识别

数据增强也适用于语音识别之中。
你可以给原始语音添加噪音、汽车声、不同的背景音乐:
在这里插入图片描述
数据增强的一个技巧是,对数据做的更改或扭曲应该代表训练集中的噪声或扭曲。
如果你对示例的更改在测试集不常遇到,那么其实对数据的帮助是有限的。因此,考虑数据增强的一种方法是思考如何在扭曲、更改或在数据中增加更多的噪音,即让你的训练集能够和测试集更加相似。其中有一种技术叫做数据合成(data synthesis),让你可以从头开始构建新的示例。

数据合成

让我们以照片OCR为例,它的作用是自动读取图片并且能够读取出其中的文字。
在这里插入图片描述
以上是OCR中的一个真实数据,我们该怎么做呢?
任务的一个关键人物就是能从图中读出各个字母的小图像并识别出图中的字母:
在这里插入图片描述
因此你创建人工数据的方法就是利用计算机中自带的文本编辑器,然后交给神经网络去学习,从而你可以合成类似下图的字母,看起来和上图真的很类似:
在这里插入图片描述
通过合成数据生成,能够为神经网络提供大量数据,从而很快地提高应用性能。
过去几十年之中,大部分研究人员的注意力都集中在传统的以模型为中心的基础上,因此对于数据都会下载固定的数据集,从而专注于改进算法或者模型,但其实专注于数据的处理也是一条很有前景的道路。
在这里插入图片描述
对于没有那么多数据的程序,使用迁移学习从而使用其它不同任务的数据是个很好的方法。以下是迁移学习的工作原理。

迁移原理

假设你想要做一个手写字识别的项目,但是你没有那么多的标记数据。而假设你找到了个非常大的数据集,其中包含一百万张猫,狗,人,汽车的照片等一千个类别。然后,你可以在这个数据集上,让你的神经网络训练这1000个物品的任意一个,你将获得一系列的w,b参数。之后你要做的,是将这些参数直接插入你手写识别的神经网络之中,只是输出层的参数不能使用,因为你的分类从1000变成了手写识别的十个,之后,再重新训练网络。
在这里插入图片描述
之后,你就有两种选择,第一种,只重新训练输出层的参数,这适用于你的神经网络参数真的很小的情况下,第二种,是在前四层不懂的基础上再往后面训练一个神经网络,这适用于神经网络还是有一定量的数据集的情况下。这种方法就叫做迁移学习,即将神经网络的的早期层学习一些合理的参数集,然后将这些参数转移到新的神经网络之中,这样我们就可以进一步学习一点点,最后被优化为一个非常好的模型。
其中,这在其它神经网络上获得参数的过程叫做监督预训练;第二步叫做微调,即优化获得的参数从而使得其能够变为专门应用于手写数字识别的应用。
另一个好处是,你也许不需要亲自进行预训练。因为网上有很多研究者已经训练好的神经网络,你可以直接使用,然后将输出层替换为自己需要的就行了。

原理

为什么识别猫猫狗狗的深度学习网络最后可以识别手写数字呢?这与算法背后的直觉有关。
在这里插入图片描述
以上是一些原因,由于神经网络的早期层基本上都是进行一些边,角落还有基本图形的处理。因此在不同的数据集上其实是有共通性的。
但是迁移学习的一个限制是图像类型x必须于你预训练的图片类型相同,即图片尺寸相同。例如如果你要构建一个语音识别系统,那么以上数据集的参数可能就没什么帮助了。
当你预训练的数据集很大,而自己的数据集较小时,效果往往会更好
在这里插入图片描述
为了给读者你造成不必要的麻烦,博主的所有视频都没开仅粉丝可见,如果想要阅读我的其他博客,可以点个小小的关注哦。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1500731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssGSEA -- 学习记录

文章目录 biref统计学原理其他注意事项代码实现部分 biref 前情提要链接: https://blog.csdn.net/jiangshandaiyou/article/details/136536349 https://blog.csdn.net/jiangshandaiyou/article/details/134457515 相比起GSA,GSEA不再关注于差异基因&…

蓝色经典免费wordpress模板主题

蓝色经典配色的免费wordpress建站主题,万能的wordpress建站主题。 https://www.wpniu.com/themes/24.html

Java注解介绍

Java注解 注解介绍元注解RetentionTargetDocumentedInherited接口类测试结果 注解介绍 Java注解(Annotation)是一种元数据(Metadata)的形式,它可以被添加到Java代码中的类、方法、变量、参数等元素上,以提…

GSA、GSEA、ssGSEA、GSVA用到的统计学知识点

文章目录 概率密度函数(probability density function,PDF)分布函数(Cumulative Distribution Function,CDF)核密度估计(KDE)经验累计分布函数(Empirical Cumulative Dis…

C++ Qt开发:QFileSystemWatcher文件监视组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QFileSystemWatcher组件实现对文件或…

JsonCreator注解InvalidDefinitionException报错解决

"stack_trace": "c.f.j.d.e.InvalidDefinitionException: More than one argument (#0 and left as delegating for Creator [constructor for (

【性能测试】Jmeter+InfluxDB+Grafana 搭建性能监控平台

一、背景 为什么要搭建性能监控平台? 在用 Jmeter 获取性能测试结果的时候,Jmeter自带的测试报告如下: 这个报告有几个很明显的缺点: 只能自己看,无法实时共享;报告信息的展示比较简陋单一,不…

Nacos2.2.3之MySQL8.X持久化详细配置过程

Nacos2.2.3之MySQL8.X持久化详细配置过程 文章目录 Nacos2.2.3之MySQL8.X持久化详细配置过程1. 官网与下载1. 官网2. Naocs是什么?3. 下载 2. 安装与持久化配置1. 解压安装2. 创建数据库1. 连接数据库2. 创建nacos数据库3. 导入脚本4. 查看表 3. 持久化配置1. appli…

Jmeter事务控制器实战

在性能测试工作中,我们往往只测试业务功能相关主要接口的数据请求和返回。然而实际上用户在使用web应用时,可能会加载诸多资源:htmldom、cssdom、javaScript、ajax请求、图片等。 从打开一个页面到界面渲染完成需要一定的加载时间&#xff0…

Linux学习之线程

目录 线程概念 1.什么是线程? 2.线程的优缺点 3.线程异常 4.线程用途 线程操作 1.如何给线程传参 2.线程终止 3.获取返回值 4.分离状态 5.退出线程 线程的用户级地址空间: 线程的局部存储 线程的同步与互斥 互斥量mutex 数据不一致的主要过…

2024 AI 辅助研发的新纪年

随着人工智能技术的持续发展与突破,2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计,从软件开发到材料科学,AI正逐渐渗透到研发的各个环节,变革着传统的研发模式。在这一背景下,AI辅助研发不仅…

操作系统内存管理-组织方式

目录 前言 数据单位 位(bit) 字节(byte) 组织方式 连续分配方式 非连续分配方式 段页式存储管理 虚拟内存管理 NUMA(Non-Uniform Memory Access)架构下的内存管理 逻辑地址与物理地址的映射关系 逻辑…

云计算 3月8号 (WEB服务及Apache 服务的搭建与配置——基于域名 端口 Ip多方式访问)

1、WEB服务简介 # 目前最主流的三个Web服务器是Apache、Nginx、 IIS。 - WEB服务器一般指网站服务器,可以向浏览器等Web客户端提供网站的访问,让全世界浏览。 - WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 …

【Logback】Logback 中的 Appenders

目录 1、什么是 Appenders? 2、解说 AppenderBase.doAppend() 方法 3、logback-core 模块中的 Appenders (1)OutputStreamAppender (2)ConsoleAppender (3)FileAppender (4&a…

Linux服务器安装jdk

背景: 安装JDK是我们java程序在服务器运行的必要条件,下面描述几个简单的命令就可再服务器上成功安装jdk 命令总览: yum update -y yum list | grep jdk yum -y install java-1.8.0-openjdk java -version 1.查看可安装版本 yum list | grep jdk 2.如果查不到可先进行 yum upd…

积鼎科技两款国产流体仿真软件入选《上海市工业软件推广目录》!

为落实《上海市促进工业软件高质量发展行动计划(2021-2023年)》,聚焦重点行业和领域痛点问题,提升关键软件技术创新和供给能力,推动工业软件产品应用和产业生态建设更好支撑全市制造业数字化转型,《2023年上海市工业软件推荐目录》…

react + antdesign table组件合并行,展开子表格

假如你有这样的一个数据: [{"bigClass":"吃的","smallClass":"水果","item":"苹果"},{"bigClass":"吃的","smallClass":"水果","item":"香蕉…

knife4j生产环境禁止打开页面

Knife4j是一个集Swagger2 和 OpenAPI3为一体的增强解决方案,官网地址:Knife4j 集Swagger2及OpenAPI3为一体的增强解决方案. | Knife4j 考虑到安全性问题,在实际服务部署到生产环境后就需要禁用到swagger页面的展示,这个时候只需…

js【详解】event loop(事件循环/事件轮询)

event loop 是异步回调的实现原理 js 代码的执行过程 从前到后,一行一行执行如果某一行执行报错,则停止下面代码的执行先把同步代码执行完,再执行异步 event loop 图解 以下方代码为例: 第1步 将第 1 行代码放入调用栈 将要执行第…

RabbitMQ的Windows版安装教程

文章目录 前言一、Windows安装RabbitMQ总结 前言 曾经写过一篇关于RabbitMQ的Ubuntu安装教程(http://t.csdnimg.cn/5CYfC),当时使用的是Docker将RabbitMQ安装到虚拟机上,但是有很多小伙伴问Windows上如何进行安装RabbitMQ&#x…