mechine learning yearning notes(笔记)

3 篇文章 0 订阅

第一章: 概述

1. Why Machine Learning Strategy

make rapid progress
save you months or years of development time

2. How to use this book to help your team

So you can print them out and get your teammates to read just the 1 or 2 pages you need them to know

A few changes in prioritization can have a huge effect on your team’s productivity.

3. Prerequisites and Notation

传销头子,教育挣钱呀,一个月50刀了解一下,我反正学完了。

4. Scale drives machine learning progress

  1. Data availability
  2. Computational scale
    在这里插入图片描述

5. Your development and test sets

  1. Training set —— train
  2. Dev set —— tune parameters, select features, cross validation set
  3. Test set evaluate the performance

approximate actual user data

第二章: 构建开发和测试数据集

6. Your dev and test sets should come from the same distribution

7. How large do the dev/test sets need to be?

Large enough to see the difference between algorithms
and that’s enough

8. Establish a single-number evaluation metric for your team to optimize

accuracy or F1 or average or weighted average

9. Optimizing and satisficing metrices

约束就是必要条件,比如运行时间最多100ms,准确率就是优化,在所有达到约束的算法里找最准的。

唤醒词:siri
误唤醒的比例 作为约束性指标,24小时内被唤醒的次数小于等于1
没被正确唤醒的比例(说了唤醒词,但是没有唤醒) 作为优化指标,越小越好。

10. Having a dev set and metric speeds up iterations

That’s why we use single-number metrics to evaluate the algorithm.
在这里插入图片描述

11. When to change dev/test sets and metrics

实际产品 不等于 开发数据集与衡量指标
Possible Reasons:

  1. different distribution
  2. overfit to the dev set
  3. the metric is measuring something other than what the project needs to optimize

12. Takesaways: Setting up development and test sets

第三章: 误差分析

13. Build your first system quickly, then iterate

建立基本的系统,即使这个基本系统不怎么样,但是可以快速找到线索,发现值得投入时间的方向。

14. Error analysis: dev sets

比如,你发现你的识别猫的应用,把狗当成了猫。
是否整合第三方软件,让app可以更好得识别狗呢?
收集错误分类的100个样本,手动查看并计算其中有多少是狗。
假设识别猫的准确度是90%

  1. 如果误分类为狗只有5%,你的准确度提升很有限。90%-90.5%
  2. 如果误分类为狗有50%, 90%-95%

15. 并行评估多个想法的可能性

创建表格,并不断增加错误分类,狗,猫科动物,模糊 ···
平衡人手和工作量

16. Mislabeled

同时提升测试机与训练集
正确与错误分类可以同时进行检查

17. Split a large dev set into two subsets, look at only one of which

Eyeball dev set and Blackbox dev set.

18. How big should be the Eyeball and Blackbox dev sets be?

人类观测数据集,100 - 500 个错误,可以让你更好得理解错误来源。
黑盒开发数据集,1000-10000个样本,调优和参数选择。
如果开发样本数量不够大,不足以使用这种分割的方式,,那么只需要使用一个人工观测数据集来进行误差分析,模型选择,和超参数调优。

第四章:偏差和方差

20. 概念和用途

如果期望错误率5%,实际训练集错误率15%,验证集16%,加入更多的训练数据并没有用。
此时,首要问题是提升算法在训练样本上的性能。
16% = 15% 偏差 + 1% 方差
改进偏差,可以提升训练集性能。
改进偏差,提升泛化效果。

21.举例说明偏差和方差

训练集错误率 1%
验证集错误率 11%
偏差1%+方差10%
也就是过拟合(低偏差高方差)

训练集错误率 15%
验证集错误率 16%
偏差15%+方差1%
也就是欠拟合(高偏差低方差)

训练集错误率 15%
验证集错误率 30%
偏差15%+方差15%
也就是欠拟合(高偏差高方差)

22.目标:最优错误率

以人类为标准

训练集错误率 15%
验证集错误率 16%
偏差15%+方差1%
也就是欠拟合(高偏差低方差)

但是最优错误率(不可避免的偏差)是14%
偏差15% = 不可避免的偏差 14% + 可避免的偏差 1%
故 可避免的偏差是1%,方差1%
其实是很好的算法

23.方差和偏差的处理方法

  1. 偏差高说明欠拟合,模型不行,增加隐藏层或者神经元
  2. 方差高说明过拟合,泛化能力差,数据少了,多搞点数据

如果是用来额正则化的模型,请放心得增加模型的性能,而不必担心过拟合。
避免使用更大模型的唯一原因是,计算量的增加。

24.权衡模型的方差和偏差

增加模型的性能,会减少偏差增加方差。
增加正则项,增加偏差减少方差。

但是,现在

增加模型的性能并增加正则化,可以减少偏差,但不会明显影响偏差
增加数据量,可以减少方差,不影响偏差

25.减少可避免的偏差

  1. 增加模型规模
  2. 修改输入的特征
  3. 减少或者去除正则化
  4. 修改模型架构

26.误差分析

偏差高的时候很有用
在这里插入图片描述
专注处理背景噪音
并用人类识别比较

27.减少方差

  1. 增加训练数据
  2. 使用正则化
  3. 提早停止
  4. 特征选择的时候减少输入特征的数量
  5. 减少模型的规模

基于误差分析修改输入特征
修改模型架构

第五章:学习曲线

28.通过学习曲线诊断偏差和方差

绘制验证集错误率-训练样本数量的关系曲线。

在这里插入图片描述
并加入期望水平
在这里插入图片描述
如果渐渐发现验证集 错误率不下降了
在这里插入图片描述
那么说明添加数据并无意义。

29.将训练错误率用图形绘制出来

在这里插入图片描述

30.高偏差的学习曲线

在这里插入图片描述

  1. 添加数据使得训练错误率增加,但总在期望上方。
  2. 验证集错误率高于训练集错误率,再怎么增加也不会让验证集错误率降到期望一下。

这表明,算法有很大的可避免偏差。

31.其他情况

在这里插入图片描述
偏差小,方差大,添加数据会使两个错误率接近。

在这里插入图片描述
偏差方差都很大,需要同时是偏差方差下降。

32.学习曲线绘制技巧

  1. 随机选择多个包含10个样本的样本集,然后训练不同模型,计算每个模型的准确率,计算平均值。
  2. 训练子集的分布与原始一致。
  3. 只有附加的训练成本可以接受时,这项技术才有意义。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值