吴恩达《Machine Learning Yearning》总结(11-20章)
11.何时修改开发集、测试集和度量指标
开展一个新项目,尽快选好开发集和测试集;例子,根据度量指标A分类器排在B分类器前面,但是团队认为B分类器在实际产品上优于A分类器,这时就需要考虑修改开发集和测试集,或者评价指标了。
有三个主要原因可能导致A分类器的评分较低:
(1)你需要处理实际数据的分布和开发集、测试机数据的分布情况不同。
(2)你的开发集上过拟合。
(3)该指标所度量的不是项目应当优化的目标。
12小结:建立开发集和测试集
(1)选择作为开发集和测试集的数据,应当与你预期在将来获取并良好处理的数据有着同分布,但不需要和训练数据的分布一致。
(2)开发集和测试集的分布应当尽可能一致。
(3)选择单一评价指标进行优化,需要考虑多项目标时,不妨将他们整合到一个表达式里面(比如对多个误差指标取平均值),或者定义满意度指标和优化指标。
(4)机器学习是一个高速迭代的过程:在最终令人满意的方案出现前,你可能要尝试很多想法。
(5)拥有开发集、测试集和单值评价指标可以帮助你迅速评估一个算法,从而加速迭代过程。
(6)当你探索一个全新的应用时,尽可能在一周内建立你的开发集、测试集和指标,而在成熟的应用上则可以花费更长的时间。
(7)传统的70%/30%训练集、测试集划分对大规模数据并不适用,实际上开发集和测试集的比例会远低于30%.
(8)开发集的规模应当大到能够检测出算法精度的细微改变,但也不用太大;测试集的规模应当大到能够使你对系统的最终性能作出一个充分的估计。
(9)当开发集和评估指标不再能给团队一个正确的导向时,就尽快修改它们:(i)如果你的开发集上过拟合,则获取更多的开发集数据。(ii)如果开发集和测试集的数据分布和实际关注的数据分布不同,则获取新的开发集和测试集。(iii)如果评价指标不能够对最重要的任务目标进行度量,则需要修改评价指标。
13.快速构建并迭代你的第一个系统
案例:面对要构建一个新的垃圾邮件过滤系统时,可能会有很多不同的想法,这时候首要的不是全面考虑,而是尽快先构建一个最基础的系统。再从这个系统的结果中找出下一步该怎么走的线索(指导方针)。
14.误差分析:根据开发集样本评估想法
误差分析(Error Analysis)指的是检查算法误分类的开发集样本的过程,以便找到造成这些误差的原因。这将帮助你确定项目优先级,即找到什么原因造成误差占比最大,这时去优化它才最有意义,而不是盲目的去优化某一个原因。
15.在误差分析时并评估多个想法
利用电子表格来统计,误分类样本(如100张)分别因为什么而发生误分类,可能一张图有多个原因(如是狗而且很模糊),最终统计各原因占比,选择大的进行优化。
16.清洗误标注的开发集和测试集样本
还是根据以上原理,查看误标注样本对误分类造成的影响所占比例,然后判断是否要去修正,如果修正,务必将这种修正方法用到测试集上,这样才能保证一致性。
17.讲大型开发集拆分为两个子集,专注其一
比如有5000张大型开发集,有20%误差,即有1000张误分类,这是全部进行误差分析,非常耗时,故可以选取500张开发集(约有100张误分类)作为Eyeball开发集,其余4500张作为Blackbox开发集,前者因为已经观察过了,所以很容易过拟合,通过后者进行验证可以准确知道前者何时开始过拟合了,这时应该丢弃或者寻找新的Eyeball开发集或者将后者逐步移入到前者中去。
18.Eyeball和Blackbox开发集该设置多大
Eyeball开发集应该大到能够让你对算法主要的错误类别有所察觉,分类器的误差越小,所需要的EYeball开发集需要越大,才能满足前面第一句话的要求;如果面对的是人类也做不好的任务,那么检车Eyeball开发集将不会有打的版主,因为很难找出算法不能准确分类一个样本的原因。
Blackbox开发集的大小相对于Eyeball没那么重要,有时候可能甚至没有(此时因为Eyeball需要很大的开发集),这是只是造成过拟合分风险比较大。
19.小结:基础误差分析
(1)当你开始一个新项目,尤其是在一个不擅长领域是,很难正确猜测出最有前景的方向。
(2)所以,不要在一开始就师徒设计和构建一个完美的系统。相反,应尽可能(可能在短短几天内)的构建和训练一个基本系统,然后使用误差分析帮助你识别出最有前景的方向,并据此不断迭代改进你的算法。
(3)通过手动检查约100个算法错误分类的开发集样本来执行误差分析,并且计算主要的错误类别,用这些信息来确定优先修正哪种类型的错误。
(4)考虑讲开发集分为人为检查的Eyeball开发集和非人为检查的Blackbox开发集。如果在Eyeball开发集上的性能比在Blackbox开发集上好很多,那么你已经过拟合Eyeball开发集,并且应该考虑为其获得更多的数据。
(5)Eyeball数据即应该足够大,以便于算法有足够的错误分类样本供你分析。对很多应用来说,含有1000-10000个样本的Blackboxk开发集已足够。
(6)如果你的开发集不够大到可以按照这种方式进行拆分,那么就使用Eyeball开发集用于人工误差分析,模型选择和调参数。
20.偏差和方差:误差的两大来源
大前提:假设你的训练集、开发集和测试集都来自相同的分布。单纯去获取跟多训练数据是否可取?
以下初略的定义偏差和方差(总误差=偏差+方差):
偏差:训练集的误差;方差:测试集的误差减去训练集的误差(即测试集比训练集差了多少);例子:比如一个分类器,训练集的误差是15%,测试集的误差是16%,那么偏差为15%,方差为1%,此时属于高偏差,单纯增加数据量是无济于事的。
吴恩达《Machine Learning Yearning》总结(11-20章)的更多相关文章
- 吴恩达Machine Learning 第一周课堂笔记
1.Introduction 1.1 Example - Database mining Large datasets from growth of automation/ ...
- 吴恩达Machine Learning学习笔记(一)
机器学习的定义 A computer program is said to learn from experience E with respect to some class of tasks T ...
- 吴恩达Machine Learning学习笔记(四)--BP神经网络
解决复杂非线性问题 BP神经网络 模型表示 theta->weights sigmoid->activation function input_layer->hidden_layer ...
- 吴恩达Machine Learning学习笔记(三)--逻辑回归+正则化
分类任务 原始方法:通过将线性回归的输出映射到0-1,设定阈值来实现分类任务 改进方法:原始方法的效果在实际应用中表现不好,因为分类任务通常不是线性函数,因此提出了逻辑回归 逻辑回归 假设表示--引入 ...
- 吴恩达Machine Learning学习笔记(二)--多变量线性回归
回归任务 多变量线性回归 公式 h为假设,theta为模型参数(代表了特征的权重),x为特征的值 参数更新 梯度下降算法 影响梯度下降算法的因素 (1)加速梯度下降:通过让每一个输入值大致在相同的范围 ...
- 吴恩达 Deep learning 第二周 神经网络基础
逻辑回归代价函数(损失函数)的几个求导特性 1.对于sigmoid函数 2.对于以下函数 3.线性回归与逻辑回归的神经网络图表示 利用Numpy向量化运算与for循环运算的显著差距 import nu ...
- 吴恩达 Deep learning 第一周 深度学习概论
知识点 1. Relu(Rectified Liner Uints 整流线性单元)激活函数:max(0,z) 神经网络中常用ReLU激活函数,与机器学习课程里面提到的sigmoid激活函数相比有以下优 ...
- Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源
最近开源了周志华老师的西瓜书<机器学习>纯手推笔记: 博士笔记 | 周志华<机器学习>手推笔记第一章思维导图 [博士笔记 | 周志华<机器学习>手推笔记第二章&qu ...
- 我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)【中英双语】
我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)[中英双语] 视频地址:https://www.bilibili.com/video/av9912938/ t ...
- Coursera课程《Machine Learning》吴恩达课堂笔记
强烈安利吴恩达老师的<Machine Learning>课程,讲得非常好懂,基本上算是无基础就可以学习的课程. 课程地址 强烈建议在线学习,而不是把视频下载下来看.视频中间可能会有一些问题 ...
随机推荐
- c# 根据文件夹或文件名返回(文件夹或文件)的完整路径
c# 根据文件夹或文件名返回(文件夹或文件)的完整路径 一.方案一:(使用windows API) 二.方案二:(扫描全盘)
- sublime 快捷键 1到9的顺序
p{$$}*9
- 洛谷P3358 最长k可重区间集问题(费用流)
传送门 因为一个zz错误调了一个早上……汇点写错了……spfa也写错了……好吧好像是两个…… 把数轴上的每一个点向它右边的点连一条边,容量为$k$,费用为$0$,然后把每一个区间的左端点向右端点连边, ...
- HTML的相关路径与绝对路径的问题---通过网络搜索整理
问题描述: 在webroot中有个index.jsp 在index.jsp中写个表单. 现在在webroot中有个sub文件夹,sub文件夹中有个submit.jsp想得到index.jsp表单 ...
- vue中axios的使用与封装
分享下我自己的axios封装axios是个很好用的插件,都是一些params对象,所以很方便做一些统一处理 当然首先是npm安装axios 很简单$ npm install axios --save在 ...
- mysql主从复制简单配置,满满的干货
mysql主从备份(复制)的基本原理 mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改 ...
- BZOJ4627 权值线段树
4627: [BeiJing2016]回转寿司 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1204 Solved: 475[Submit][St ...
- Nuclear Power Plant ZOJ - 3840 树形dp
There are N (1 ≤ N ≤ 105) cities on land, and there are N - 1 wires connecting the cities. Therefore ...
- AtCoder - 2568 最小割
There is a pond with a rectangular shape. The pond is divided into a grid with H rows and W columns ...
- select 插入数据 不自增列实现自增