Why ML stategy

怎么提高预测准确度?有了stategy就知道从哪些地方入手,而不至于找错方向做无用功.

  

  

Satisficing and Optimizing metric

  

上图中,running time <= 100ms 就是satisficing,accuracy 就是 optimazing.

Dev set and test set should be from same distribution.

传统的traing set/ dev set / test set 比例是60/20/20, 在大数据时代可以是 98/1/1 这样的比例.

有些时候不能只看error rate 的值,下面这个图讲到算法A虽然error值低一些,但是如果含有色情图片就是不能接受的,所以需要一种新的计算error的方法, 对特定的图片加权.

  

还有一种情况是下面讲的,当你去做预测的时候,发现B的实际效果,比如你在高精度training set上训练的model, 用户却经常上传一些不专业的或者模糊的照片。这时你就要调整你的training set了.

  

Comparing to human performance

  

why comparing to human performance, 我的理解就是找到差距,变的更强大.

  

  

Error analysis

从mislabelled example 里统计各种不同类型的error, 看哪种占比大就从哪里入手.

  

  

Mismatched training and dev/test set (training data 和 dev/test data 来自不同的distribution)

把一些来自实际场景的数据,这些数据有价值但是数量不多,一部分放在training set里,另一部分都放在dev/test set. 就是下面的推荐的Option 2,dev set 和test set 里都是真正有价值的data. 这样做的好处使得我们的model 面向最终解决的问题.

  

  

在training set 和dev/test set 有不同的distribution时,根据训练得到的不同error值,怎么定位到底是bias, variance, 还是 data mismatch 问题?

可以多分一份 training-dev 的数据集

  

  

  

How to address data mismatch ?

  

  

  

Transfer learning

  

  

Mult-task learning

  

只要神经网络够大,multi-task learning 的performance会比针对每种分类跑一次softmax分类效率更高 (softmax 一个输出只包含一种类型, multi-task 一个输出可以有多个类型,比如既有行人又有汽车). multi-task learing is much less than transfer leaning in practice.

  

End-to-end learning

一般的做法是经历很多中间步骤,但是E2E learning 就是直接从raw data X 到 Y. 在有大量数据的情况下E2E 可能会有很好的performance, 但是

  

  

  

  

补充阅读:

什么是precision 和 recall

关于Precision 和 Recall 的作用有个很好的例子可以说明,就是针对 skewed data 比如判断病人是否有癌症,一个Model直接hardcode 使得 y=0 (没有癌症)也可以得到很好的预测结果,这个model 明显不合理,就引出了使用 Precision 和 Recall 来判断一个model 的优劣. 在这两个值都很大的情况下(接近1)就可以说Model很好.

用一个值来判断可以用F1 score.

Coursera Deep Learning 3 Structuring Machine Learning Projects, ML Strategy的更多相关文章

  1. 《Structuring Machine Learning Projects》课堂笔记

    Lesson 3 Structuring Machine Learning Projects 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第三门课程的课程笔记. 参考了其他人的笔 ...

  2. Decision Boundaries for Deep Learning and other Machine Learning classifiers

    Decision Boundaries for Deep Learning and other Machine Learning classifiers H2O, one of the leading ...

  3. [C5] Andrew Ng - Structuring Machine Learning Projects

    About this Course You will learn how to build a successful machine learning project. If you aspire t ...

  4. 课程三(Structuring Machine Learning Projects),第一周(ML strategy(1)) —— 0.Learning Goals

    Learning Goals Understand why Machine Learning strategy is important Apply satisficing and optimizin ...

  5. 课程三(Structuring Machine Learning Projects),第一周(ML strategy(1)) —— 1.Machine learning Flight simulator:Bird recognition in the city of Peacetopia (case study)

    []To help you practice strategies for machine learning, the following exercise will present an in-de ...

  6. Structuring Machine Learning Projects 笔记

    1 Machine Learning strategy 1.1 为什么有机器学习调节策略 当你的机器学习系统的性能不佳时,你会想到许多改进的方法.但是选择错误的方向进行改进,会使你花费大量的时间,但是 ...

  7. 吴恩达《深度学习》-课后测验-第三门课 结构化机器学习项目(Structuring Machine Learning Projects)-Week1 Bird recognition in the city of Peacetopia (case study)( 和平之城中的鸟类识别(案例研究))

    Week1 Bird recognition in the city of Peacetopia (case study)( 和平之城中的鸟类识别(案例研究)) 1.Problem Statement ...

  8. [C3W2] Structuring Machine Learning Projects - ML Strategy 2

    第二周:机器学习策略(2)(ML Strategy(2)) 误差分析(Carrying out error analysis) 你好,欢迎回来,如果你希望让学习算法能够胜任人类能做的任务,但你的学习算 ...

  9. 课程回顾-Structuring Machine Learning Projects

    正交化 Orthogonalization单一评价指标保证训练.验证.测试的数据分布一致不同的错误错误分析数据分布不一致迁移学习 transfer learning多任务学习 Multi-task l ...

随机推荐

  1. AITP

    AITP AITP比较简单,适合刚毕业,即将开始IT生涯的学生.接受CIPS认证课程的毕业生可以自动获得AITP证书,并获得一年的免费的CIPS会员资格. 接受非CIPS认证课程的毕业生需要申请,另外 ...

  2. TYVJ1266 费解的开关

    恩,这题...... 看看题面想到了啥?炮兵阵地! 再仔细一思考:炮兵阵地是求放置最多,而这个显然可以递推得出. 由于每个格子至多点一次,那么我们发现: 在第一行点击状态确定的情况下,后面每个格子的点 ...

  3. Django(三)框架之第二篇

    https://www.cnblogs.com/haiyan123/p/7717788.html 一.知识点回顾 1.MTV模型 model:模型,和数据库相关的 template:模板,存放html ...

  4. Map的嵌套

    package cn.lijun.demo2; import java.util.HashMap; import java.util.Iterator; import java.util.Set; p ...

  5. java中一维数组的定义和遍历

    public class ArrayDemo1{ public static void main(String[] args){ //1 定义数组 并同时赋值 int[] arr = new int[ ...

  6. python自动化开发-[第十八天]-django的ORM补充与ajax,分页器

    今日概要: 1.ORM一对多,多对多 2.正向查询,反向查询 3.聚合查询与分组查询 4.F查询和Q查询 5.ajax 6.分页器 一.ORM补充: django在终端打印sql语句设置: LOGGI ...

  7. OpenStack的基础原理

    OpenStack的基础原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集.其 ...

  8. 《Go并发编程实战》读书笔记-初识Go语言

    <Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...

  9. dubbo基础

    一.什么是dubbo,有什么用 dubbo是阿里巴巴开源的一个RPC框架,用于多个应用相互通信.使用dubbo需要安装一zookepper 二.dubbo的基本使用 1.构建一个maven的多模块项目 ...

  10. pom大全

    springboot集合 父模块 <parent> <groupId>org.springframework.boot</groupId> <artifact ...