这本书共112页,内容不多,偏向于工程向,有很多不错的细节,在此记录一下。

0 书籍获取

关注微信公众号“机器学习炼丹术”,回复【MLY】获取pdf

1 测试集与训练集的比例

2 误差分析

  • 误差分析我感觉是一个成熟的AIer必备的能力。俗话说数据决定准确率的上线,模型只是在逼近这个值。模型效果的提升首先是需要去看数据样本的,把分类错误的样本一个一个看一看,然后心中自己会给出判断:是否有可能减少这种分类错误的样本?如何减少?

【也许心中没有这样的判断,但是看一看错误的样本是很重要的。一般看100例分类错误样本就算很多了】

这里我给出自己遇到的几种常见的误差分析的结论:

  • 最基础的也是最严重的问题:标注错误。看错误的样本的时候很容易发现原因是标注错误。
  • 样本为某种新类别,训练集中没有对应样本。猫狗分类样本中,假如有一种狗耳朵的猫,而这种品种在训练集中从来没有出现过或者数量很少;
  • 分类错误的样本可能图像质量不好;
  • ......

3 方差与偏差

这一块说的很好,之前只知道模型有方差和偏差,但是不清楚:什么是模型的方差,什么是模型的偏差。

  • 偏差:算法在训练集上的误差;
  • 方差:算法在测试集上的表现和训练集上相差多少。

假设你希望构建一个误差为 5% 的猫识别器。而目前的训练集错误率为 15%,开发集(验证集)错误率为 16%。

  • 在上面的例子中,偏差为15%,方差为1%

在看几个例子:

这里还需要提出来一个最优错误率的概念

  • 世界上最好的算法,应该有什么样的错误率。比方说,猫狗分类,最好的算法“大脑”可以100%的分类正确,所以这个最优错误率为0%;如果是一个语音识别,人类会因为噪音问题识别率只有14%,那么最优错误率就是14%。
  • 对于上面的例子,假设这个语音识别问题的训练错误率15%,开发错误率30%,那么我们不能说这个模型存在高偏差和高方差,因为最优错误率就是不可避免偏差,可避免偏差只有1%,所以同样的偏差方差在不同的最优错误率下,要做不同的判断。这种情况下,语音识别算法为低偏差和高方差。

3.1 避免偏差的技术

3.2 避免方差的技术

4 判断增加数据是否有效

【就是绘制验证集的准确率和样本数量之间的曲线】

4.1 增加数据有效

  • 这张图中的绿线,是期望错误率,我们希望模型可以实现什么的精度;
  • 可以看到,随着数据集的增加,精度是越来越好的,所以后期我们还可以增加样本。

4.2 增加数据无效

  • 这张图中,可以看到增加数据集可坑并不会有很好的提升了。

通常,我们还会增加一条曲线训练误差曲线,单独的验证误差曲线可能存在波动和噪音。

  • 从这个图中,我们可以确定,增加数据并不能起到很好的效果了。
  • 蓝色的训练误差只会随着数据的增加而不断上升
  • 红色的验证误差通常是高于蓝色的训练误差。
  • 之前提到的偏差,为training error和desired performance之间的差值;
  • 之前提到的方差,为dev error和training error之间的距离。

4.3 其他情况

  • 蓝色训练误差曲线相对较低,红色的开发误差曲线比蓝色训练误差高得多。因此,偏差很小,但方差很大。添加更多的训练数据可能有助于缩小开发误差和训练误差之间的差距。

  • 这种情况下,训练误差很大,它比期望的性能水平要高得多,开发误差也比训练误差大得多。 因此,学习算法有着明显的偏差和方差。此时你必须找到一种方法来减少算法中的偏差和方差。

笔记 | 吴恩达新书《Machine Learning Yearning》的更多相关文章

  1. 吴恩达《Machine Learning Yearning》总结(1-10章)

    1.为什么选择机器学习策略 案例:建立猫咪图像识别app 系统的优化可以有很多的方向: (1)获取更多的数据集,即更多的图片: (2)收集更多多样数据,如处于不常见的位置的猫的图,颜色奇异的猫的照片等 ...

  2. 吴恩达《Machine Learning Yearning》总结(31-40章)

    31.解读学习曲线:其他情况 下图反映了高方差,通过增加数据集可以改善. 下图反映了高偏差和高方差,需要找到一种方法来同时减少方差和偏差. 32.绘制学习曲线 情况:当数据集非常小时,比如只有100个 ...

  3. 吴恩达《Machine Learning Yearning》总结(21-30章)

    21.偏差和方差举例 前提:对于人类而言,可以达到近乎完美的表现(即人类去做分类是误差可以接近0). (1)假设算法的表现如下:训练误差率:1%,开发误差率:11%:此时即为高方差(high vari ...

  4. 吴恩达《Machine Learning Yearning》总结(11-20章)

    11.何时修改开发集.测试集和度量指标 开展一个新项目,尽快选好开发集和测试集:例子,根据度量指标A分类器排在B分类器前面,但是团队认为B分类器在实际产品上优于A分类器,这时就需要考虑修改开发集和测试 ...

  5. Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源

    最近开源了周志华老师的西瓜书<机器学习>纯手推笔记: 博士笔记 | 周志华<机器学习>手推笔记第一章思维导图 [博士笔记 | 周志华<机器学习>手推笔记第二章&qu ...

  6. Coursera课程《Machine Learning》吴恩达课堂笔记

    强烈安利吴恩达老师的<Machine Learning>课程,讲得非常好懂,基本上算是无基础就可以学习的课程. 课程地址 强烈建议在线学习,而不是把视频下载下来看.视频中间可能会有一些问题 ...

  7. 我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)【中英双语】

    我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)[中英双语] 视频地址:https://www.bilibili.com/video/av9912938/ t ...

  8. 吴恩达(Andrew Ng)——机器学习笔记1

    之前经学长推荐,开始在B站上看Andrew Ng的机器学习课程.其实已经看了1/3了吧,今天把学习笔记补上吧. 吴恩达老师的Machine learning课程共有113节(B站上的版本https:/ ...

  9. 【Deeplearning.ai 】吴恩达深度学习笔记及课后作业目录

    吴恩达深度学习课程的课堂笔记以及课后作业 代码下载:https://github.com/douzujun/Deep-Learning-Coursera 吴恩达推荐笔记:https://mp.weix ...

随机推荐

  1. .Net Core使用IdentityServer4

    官方文档https://identityserver4.readthedocs.io/en/latest/ 参考https://www.cnblogs.com/i3yuan/p/13843082.ht ...

  2. 小题大做 | Handler内存泄露全面分析

    前言 嗨,大家好,问大家一个"简单"的问题: Handler内存泄露的原因是什么? 你会怎么答呢? 这是错误的回答 有的朋友看到这个题表示,就这?太简单了吧. "内部类持 ...

  3. Omega System Trading and Development Club内部分享策略Easylanguage源码

    更多精彩内容,欢迎关注公众号:数量技术宅.关于本期分享的任何问题,请加技术宅微信:sljsz01 关于 Omega System Trading and Development Club " ...

  4. 基于MongoDB权限管理+gridfs文件上传------云盘系统

    学了一会Mongo,开始毕设的编写. 毕设目前一共分为如下模块 用户管理模块 管理员管理模块 文件管理模块 分享模块 目前已经完成了权限管理部分的后端代码.上传下载已经实现Demo.先把权限弄好后在整 ...

  5. 一次MySQL死锁的排查记录

    前几天线上收到一条告警邮件,生产环境MySQL操作发生了死锁,邮件告警的提炼出来的SQL大致如下. update pe_order_product_info_test set end_time = ' ...

  6. android中VideoView播放sd卡上面的视频

    (1)videoView组件只支持MP4和3gp格式的视屏播放,如果想播放其它视屏格式的文件,还得开发能够播放的视屏播放器 (2)videoView组件功能比较单一,如果想开发功能丰富的播放器,还得重 ...

  7. 项目实战--idea中使用Git遇到的坑

    问题 在一次代码的更新中,我按照以往的操作点,菜单中VCS下的Update Project,结果报错了,idea自动将我未提交的所有代码驻藏了stash了,全部代码还原了,心里慌了一下,去GitLab ...

  8. Linux LVM Logical Volume Management 逻辑卷的管理

    博主是一个数据库DBA,但是一般来说,是不做linux服务器LVM 逻辑卷的创建.扩容和减容操作的,基本上有系统管理员操作,一是各司其职,专业的事专业的人做,二是做多了你的责任也多了,哈哈! 但是li ...

  9. unity 卡牌聚拢算法

    unity 卡牌聚拢算法 前言 代码 前言 笔者在做项目时遇到了一个要聚拢手牌,像三国杀里的手牌聚拢的效果 大概效果图: 代码 public Dictionary<int, int> le ...

  10. 【转】借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...