Machine learning Year阅读笔记

Machine learning Year

01 Why Machine Learning Strategy

比如想开发一个图像分类的APP,识别图像中是否含有猫,通常可能有以下想法:

Your team has a lot of ideas, such as:
• Get more data: Collect more pictures of cats.
• Collect a more diverse training set. For example, pictures of cats in unusual positions; cats
with unusual coloration; pictures shot with a variety of camera settings; ….
• Train the algorithm longer, by running more gradient descent iterations.
• Try a bigger neural network, with more layers/hidden units/parameters.
Page 6 Machine Learning Yearning-Draft Andrew Ng• Try a smaller neural network.
• Try adding regularization (such as L2 regularization).
• Change the neural network architecture (activation function, number of hidden units, etc.)
• …

那么如何,快速准确的训却的选择合适的方向则是非常必要的,如果选择错误则可能浪费好几个月的时间,因此需要一个合适的策略来进行选择、开发。

02 How to use this book to help you team

阅读完这本书,应该可以为machine learning 项目选择合适的前进方向。

03 Prerequisites and Notation

这本书的阅读前提是对监督学习有所了解(主要是deep learning)

04 Scale drives machine learning progress

  1. deep learning的思想已经很多年了,但是直到现在才获得突破性效果,具体有以下两个原因:

    • 大量的数据
    • 强大的计算能力(GPU)
  2. 基于图4.1与图4.2,想要获得一个good performance,需要 large NN + 大量数据

在这里插入图片描述

图4.1 small NN与传统方法随着数据量变化时候的效果提升

在这里插入图片描述

图4.2 不同规模的NN在数据量增加时候的性能提升

  1. 虽然很多资料表明结构很重要,且这里面确实有很多工作可以做,但是如今最可高的提升算法性能的方法仍然是
    1. 训练更大网络;
    2. 获取更多的数据

05 Your development and test sets

  1. 需要三类数据集: Training setDev setTest set。其中,Dev set,Test set 决定了团队的努力方向,通常都会想各种方法使得算法在这两个数据集上取得很好的效果。也正因如此,应该保证这两个数据集尽可能的接近算法真实的应用场景!

06 Your dev and test sets should come from the same distribution

  1. 验证集需要和测试集来自同一分布,这是自然的。
  2. 当验证集和测试集来自同一分布时, 如果算法在验证集上表现好,而在测试集上表现不好,那么说明算法对验证集过拟合了。
  3. 如果验证集和测试集来自不同的分布(比如验证集是在美国拍的猫,测试集是在中国拍的猫),那么就会有多种可能
    1. 在验证集上过拟合了。
    2. 测试集的难度大于验证集。此时算法可能其实如预期一样做的很好,只是没反映出来,并且还有可能进一步提升。
    3. 测试集并不难,但是和验证集很不同,因此在验证集上好,但是在测试集上不好。此时再继续努力提升在验证集上的性能可能并没有什么意义。
  4. 作为具体的machine learning应用来说,还是尽量制作一个来自同一分布的数据集

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

  1. 验证集、测试集需要够大,这样才能检测到微小的性能提升;但是不需要太大,太大就没有必要了。

08 Establish a single-number evaluation metric Establish a single-number evaluation metric

  1. 最好确立一个具有单一值评价指标。
    比如,目标检测常用的precision和recall,同时关注这两个可能无法做出决定来判断模型的优劣,因为当改变检出阈值的时候通常一个会升高,另外一个会升高。但是通过F1 score )可能非常简单的判断出模型的优劣。但是这样做的前提是既重视precision又重视recall。如果你可能对某一个指标(precision/recall)有倾向性,那么可能需要额外注意一下那个指标。
  2. 综合多个评价指标
    比如,猫的分类任务中,测试集有来源于不同国家的图像,可以分别在每个国家的数据集上进行测试,得到F1分数,然后取平均。

09 Optimizing and statisficing metrics

1.当涉及到多个评价指标,且无法融合时,确立一些指标的底线,然后去优化单个指标。
比如,猫的分类任务中,不仅要求分类的准确率,还要求执行的速度,很难合理的通过一个公式来合并这两个指标,但是可以先确定满足要求的最慢速度,然后再去优化准确率。

10 Having a dev set and metric speeds up iterations

  1. Maching Learning是一个高度的迭代过程,需要不断尝试idea,一定要有一个合理的dev/test 以及 符合实际业务需求的度量方式。

11 When to change dev/test sets and metrics

  1. dev/test 与主观感受不一致时(测试集表明分类器A好,人工测试表明分类器B好),需要改变二者。
  2. dev/test 与主观感受不一致的原因有以下:
    1. 实际场景的的数据分布于dev/test不同。比如,dev/test用的是成年猫,用户喜欢上传小奶猫。
    2. 过拟合了 。
    3. 度量算法的指标不符合实际业务需求。比如,分类器A的准确率确实高于B,但是A会偶尔把色情图像录入其中,这在实际中是不可接受的。
  3. 随着业务的发展改变 dev/test 是一种很常见的现象

12 Takeaways: Setting up development and test sets

  1. 选择正确的验证集,测试集;选择符合实际业务需求的度量方式;快速迭代,验证想法

13 Build your first system quickly, then iterate

  1. 刚开始建立一个AI系统的时候,一般很难以抉择如何下手。吴恩达给的建议是快速开始,然后改进迭代,思考合适的方向,不要想一开始就建立一个完美的系统。

14 Error analysis :Look at dev set examples to evaluate ideas

  1. 衡量改进的方向是否值得。当确定一个可以带来性能的提高的优化方向时,需要考虑

    1. 需要多大代价(时间/资源)来实现这个优化;
    2. 优化测试实现以后能够带来多大的效益;

    ​ 比如,猫的分类器容易把一种类型的狗分类成猫,可以花两个月解决这一问题,可是你发现实际上这类狗的图像很少很少,哪怕把所有的这类狗的图像都给分类对,提升也不过是0.1%。此时,这个优化方向可能就不值得做。

15 Evaluating multiple ideas in parallel during error analysis

  1. 分析错误的最大原因。比如分类任务,专门分析被错误分类的图像,找到造成错误的最大原因,从此开始。

16 Cleaning up mislabeled dev and test set examples

  1. 我们的测试集/验证集中有的数据可能会被错误的标记,是否人工修正这些数据取决于这些数据对结果造成了多大的影响。比如发现了在dev中错误的预测结果中有1%是因为错误的标注,这时候修正这部分数据的效益可能并不大,可以不着急修正;如果发现错误的预测结果中有40%是因为错误的标注,这时候就需要着手去修正这部分的数据。

17 If you have a large dev set , split it into two subsets, only one of which you look at

  1. 比如有个数据量5000的dev set,预测的错误率为20%,也就是1000幅图。进行误差分析时,可能
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值