吴恩达DeepLearningCourse3-结构化机器学习项目

文章目录

      • 第一周:机器学习策略1
          • 正交化
          • 单一数字评估指标
          • 满足和优化指标
          • 训练/开发/测试集
          • 机器学习和人的表现
      • 第二周:机器学习策略2
          • 进行误差分析
          • 修正标注错误的数据
          • 使用来自不同分布的数据进行训练和测试
          • 数据分布不匹配时的偏差与方差的分析
          • 处理数据分布不匹配问题
          • 迁移学习
          • 多任务学习
          • 端到端的深度学习

第一周:机器学习策略1

正交化

需要正交化的四个标准
-训练集的表现:训练更大的神经网络、使用优化算法
-开发集的表现:正则化、使用更大的训练集
-测试集的表现:使用更大的开发集
-真实应用中的表现:改变开发集或成本函数

单一数字评估指标

思想是,使用单一的数字来对不同的模型进行评估。
例:猫识别器
A算法的查准率为95%,查全率为90%
B算法的查准率为98%,查全率为85%
通过计算两种算法的查准率和查全率的调和平均数(F1-Score),以此评估A和B。

满足和优化指标

满足指标:所有参选算法必须满足,且只有满足和不满足的差别(考查课)。
优化指标:数值不同,其结果就不同(考试课)。

训练/开发/测试集

训练/开发/测试集的选择:
核心是”瞄准靶心“,即将来源不同的所有数据随机混洗,放入开发集和测试集,此时开发集和测试集都来自同一分布,这分布就是所有数据混在一起。在设立开发集和测试集时,要选择能够反映未来会得到的数据的开发集和测试集。如果开发集与测试集/开发集、测试集与真实数据偏差较大,则无法达到预期效果。
训练/开发/测试集的划分:
传统机器学习一般采用7/3或6/2/2的划分。如今可获得的数据量增多,开发集和测试集的占比更小(如1%)。
训练/开发/测试集,以及评估指标的更改:
当训练/开发/测试集,以及评估指标不符合实际要求时,需要立即调整。评估指标可以有效加快工作效率,在团队工作中可以先快速确立指标,再根据实际修改。

机器学习和人的表现

在这里插入图片描述

①模型的准确度随着时间通常呈现上图趋势。
导致上图趋势的原因:在模型表现低于人类水平时,可以通过一系列的工具提升训练效果,而超过人类水平时可利用的工具会明显减少。可以用人类水平表现估计贝叶斯误差,从而分析偏差/方差的问题。另一方面,人类水平在许多工作中都接近贝叶斯误差,超越人类水平后,留给模型的进步空间小。
②可避免偏差:贝叶斯误差和训练集误差的差距。
③人类水平表现:人类能达到的最高水平(最接近贝叶斯偏差的水平)。
在这里插入图片描述

第二周:机器学习策略2

进行误差分析

在开发集或测试集里找一组错误样本,统计属于不同错误类型的错误数量。通过统计不同错误标记类型占总数的百分比,帮助发现哪些问题需要优先解决。

修正标注错误的数据

深度学习算法对随机误差很健壮,但对系统性的错误就没那么健壮了。比如,做标记的人一直把白色的狗标记成猫,分类器学习之后,会把所有白色的狗都分类为猫。
根据错误标记引起的错误百分比判断,如果这些标记错误严重影响了在开发集上评估算法的能力,那么就应该去花时间修正错误的标签。但如果它们没有严重影响到你用开发集评估成本偏差的能力,那么可能就不应该时间去处理。
注意:修正标签要同时作用到开发集和测试集上。

使用来自不同分布的数据进行训练和测试

假设有200,000张网络猫图和10,000张用户拍照猫图,模型的目标是识别用户上传的猫图。如果将两种来源的数据混洗并放入训练、开发、测试集中,有悖于设立开发集的目的(瞄准的目标)。此时可以将200,000张网络猫图全部放入训练集(也可以放部分用户猫图),开发集和测试集只使用用户猫图。

数据分布不匹配时的偏差与方差的分析

训练-开发集:从训练集划分出的子集,不参与训练,和训练集同一来源。
在这里插入图片描述

方差问题:如果 训练-开发集 的误差高于 训练集 的误差,说明尽管神经网络在训练集中表现良好,但无法泛化到来自相同分布的训练-开发集里,无法很好地泛化推广到来自同一分布但以前没见过的数据中,所以存在方差问题。
数据不匹配问题:算法擅长处理和关心的数据分布不同。

处理数据分布不匹配问题

误差分析,看看训练集和开发集,了解这两个数据分布到底有什么不同,然后看看是否有办法收集更多看起来像开发集的数据作训练。其中一种方法是人工数据合成。使用人工数据合成时,一定要谨慎,因为有可能从所有可能性的空间只选了很小一部分去模拟数据,从而对这部分数据产生了过拟合。

迁移学习

适用情况:任务A和任务B是相关的,A任务具有庞大的数据输入,并已经训练出神经网络。B任务的数据量较少,且需要获得B任务的神经网络。由于任务B单个输入样本的价值高于A,所以要求A的输入数据量足够大,才能在迁移学习中起作用。
为什么迁移学习可以起作用:有很多低层次特征,比如说边缘检测、曲线检测、阳性对象检测),从非常大的图像识别数据库中习得这些能力可能有助于你的学习算法在任务B(同属于图像试别任务)中训练得更快/需要数据量更少。
操作方法:将任务A的最后一层替换为一层或多层神经网络,并初始化权重。如果B的数据足够多,可以用其训练新神经网络所有层的参数;如果不够多,则只训练新层的参数。

多任务学习

和使用Softmax进行多分类不同,多分类问题将单个标签分配给单个样本(如输入是猫/是狗/是老鼠),而多任务学习的一个输入可以有多个不同的标签(有无猫/有无狗/有无老鼠)。
多任务学习的优点:可以训练多个不同的神经网络,而不是训练一个网络做多件事情。但神经网络一些早期特征,在识别不同物体时都会用到,训练一个神经网络做四件事情会比训练四个完全独立的神经网络分别做四件事性能要更好。
多任务学习的使用条件:训练的一组任务可以共用低层次特征、(通常)每个任务的数据量很接近、神经网络足够大。

端到端的深度学习

直观上理解,由输入直接得到输出,而不包含任何中间环节的学习(也可能因此错过了这些环节具有的优点)。
端到端的深度学习要求具有巨大的数据量,且任务越复杂,数据量的需求越大。如:识别图像中人脸的位置 比 识别图像中人脸的特征 更简单,数据需求量更小。
对同一个问题,如果将其分解成若干步骤,每个步骤都具有足够的数据量;如果采用端到端的深度学习,数据量可能不够。

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

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

相关文章

程序员过关斩将--搞定秒杀,只需要这几步!!

“灵魂拷问秒杀这种大并发的写场景,直接分库分表开干?应对秒杀活动的流量高峰很难吗?不要拿淘宝级别的秒杀忽悠我秒杀活动特点我敢说凡是做过电商的同学,都会遇到运营展开的秒杀,限时购等“高并发”的活动。市面上也有…

吴恩达DeepLearningCourse4-卷积神经网络

部分内容参考之前的笔记 PyTorch深度学习实践 文章目录第一周:卷积神经网络边缘检测Padding、Stride三维卷积卷积神经网络中的一层池化层第二周:深度卷积网络实例探究残差网络1x1卷积Inception模块和网络卷积神经网络的迁移学习第三周:目标检…

那些鼓吹国内首个.NET 5框架的,该醒醒了!

前两天看过园子里有篇【国内首个 .NET 5 框架 XX 斩获 XXX stars,XXX 发布】,一顿羡慕嫉妒恨啊。我这.net core 3.1才上手没几天,还没用热乎呢,你这.NET 5的框架都出来了。我好难啊!不过难归难咱也得跟上啊。于是一个天高云淡的的…

吴恩达DeepLearningCourse5-序列模型

终于在八月末学完了这门课程,这个月虽然为此不停地忙碌,但每天都在进步也是一种乐趣。 吴恩达教授的课程循序渐进,适合初学者,非常感谢他的辛苦付出。 文章目录第一周:循环序列模型循环神经网络(RNN&#…

IdentityServer4系列 | 客户端凭证模式

一、前言从上一篇关于 快速搭建简易项目中,通过手动或者官方模板的方式简易的实现了我们的IdentityServer授权服务器搭建,并做了相应的配置和UI配置,实现了获取Token方式。而其中我们也注意到了三点就是,有哪些用户(users)可以通过…

数据结构 - 链表

准备重启尘封一年的博客作为学习笔记,看看自己能坚持多久。 最近会记录做过的算法题,语言描述只用于会意,仅供参考。 文章目录0.从尾到头获取链表的值(不是反转链表)1.寻找/删除单链表倒数第k个节点3.寻找单链表的中点…

[读书笔记] 《修炼之道:.NET 开发要点精讲》

《修炼之道:.NET 开发要点精讲》目录《修炼之道:.NET 开发要点精讲》第 1 章 另辟蹊径:解读.NET1.7 本章思考 > 位置 465第 2 章 高屋建瓴:梳理编程约定2.2 方法与线程的关系 > 位置 5192.7 线程安全 > 位置 5952.8 调用与回调 > 位置 6612.…

ASP.NET Core 使用 gRPC 初探

(RPC通讯示意图)为什么突然说到gRPC呢,其实以前就想说一说这个东西,也想尝试使用一下,一直没有机会,一直看我公众号的小伙伴肯定都知道,这几天一直在录制一个《eShopOnContainer微服务架构》系列…

源码都没调试过,怎么能说熟悉 redis 呢?

一:背景 1. 讲故事记得在很久之前给初学的朋友们录制 redis 视频课程,当时结合了不少源码进行解读,自以为讲的还算可以,但还是有一个非常核心的点没被分享到,那就是源码级调试, 对,读源码还远远…

算法 - DFS/BFS

写DFS函数的时候首先确定当前位置是否已经加入路径 DFS函数大概率会传递“位置信息”,根据位置信息获取下一步的选择,(大部分是在循环中)选择、执行、回退 在哪做选择,就在哪退出选择,参考题9 def DFS()…

你想象中的Task后续,很简单?

【导读】前不久,写过一篇关于Task的简短文章,通过评论和转载得到好评,刚好我昨晚又写了一篇实现简单的消息队列也提到了Task,难道不应该是看具体执行什么操作,再考虑最佳方案?本文我们再次通过简短内容谈谈…

5G在工业互联网应用的机遇与挑战

移动通讯经过十年一代的发展,已经从1G发展到了5G,峰值速率实现十年千倍的增长,1G到4G是面向个人的,而5G是面向产业互联网和智慧城市服务。5G是一个颠覆性的技术,低时延(每秒钟下载一部高清电影)…

[C#.NET 拾遗补漏]10:理解 volatile 关键字

要理解 C# 中的 volatile 关键字,就要先知道编译器背后的一个基本优化原理。比如对于下面这段代码:public class Example {public int x;public void DoWork(){x 5;var y x 10;Debug.WriteLine("x " x ", y " y);} }在 Releas…

跟我一起学.NetCore之MediatR好像有点火

前言随着微服务的流行,而DDD(领域驱动设计)也光速般兴起,CRQS(Command Query Responsibility Seperation--命令查询职责分离)、领域事件名词是不是经常在耳边环绕,而MediatR组件经常用来对其技术的落地,凭这,小伙伴们说…

不想写脚本清理 mongodb 中的垃圾数据,ttlIndex 能帮到你!

mongodb一直都在不断的更新,不断的发展,那些非常好玩也非常实用的功能都逐步加入到了mongodb中,这不就有了本篇对ttlindex的介绍,刚好我们的生产业务场景中就有一个案例。。。一:案例分析 生产的推荐系统要给用户发送短…

后端学习 - 基础 《Java编程的逻辑》读书笔记

文章目录一 基础概念1 有关Java2 JVM / JDK / JRE3 与C的联系和区别4 各类型数据占用空间大小5 和 equals() 的区别、hashCode() 方法6 包装类型7 final 关键字8 参数传递机制:值传递9 String 的内存情况10 访问修饰符11 引用拷贝、浅拷贝与深拷贝三 面向对象1 面向…

cheatengine找不到数值_彩票中奖500万,领了还不到一半?这些问题不解决,钱都拿不走...

长期以来,“一夜暴富”是很多人梦寐以求的梦想,而作为最能让人“一夜暴富”的方式要数我国的福利彩票了,这也是很多人最容易活动暴富的机会,不少彩民长久以来一直买彩票的梦想就是“一夜暴富”。而突然暴富是很多人的梦想&#xf…

一站式Web开发套件BeetleX.WebFamily

BeetleX.WebFamily是一款前后端分离的Web开发套件,但它并不依赖于nodejs/npm/webpack等相关工具;而使用自身实现的方式来完成前后端分离的Web应用开发;套件以组件的方式发布,只需要在项目引用相关组件即可实现前后端分离开发&…

.NET架构小技巧(2)——访问修饰符正确姿势

在C#中,访问修饰符是使用频率很高的一组关键字,一共四个单词六个组合:public,internal,protected internal,protected,private protected,private,如果你对这些关键字非常清楚,请跳过,节省时间;…

能源36号文解读_IDC报告预测:今年中国新能源汽车销量将达116万辆,未来五年复合增长率36%_详细解读_最新资讯_热点事件...

编者按:本文来自36氪「 未来汽车日报」,(微信公众号ID:auto-time),作者:秦章勇。 来源:IDC作者 | 秦章勇编辑 | 周游12月3日,在2020世界智能汽车大会上,IDG亚洲(国际数据(亚洲)集团)…