1.为什么选择机器学习策略

案例:建立猫咪图像识别app

系统的优化可以有很多的方向:

(1)获取更多的数据集,即更多的图片;

(2)收集更多多样数据,如处于不常见的位置的猫的图,颜色奇异的猫的照片等;

(3)增加算法迭代次数,使算法训练的更久;

(4)尝试添加正则化;

(5)改变神经网络的架构(层数,单元的个数等);

……

2.如何使用本书帮助你的团队

本书其实就是帮助做决策,决定改进的策略。

3.先修知识和符号标记

监督学习(supervised learning)主要会介绍:线性回归(linear regression)、逻辑回归(logistic regression)、神经网络(neural network)。

4.规模驱动机器学习非发展

(1)数据可用性(data availability):各种数字设备、智能终端带来了海量的数据。

(2)计算机计算能力的增强(computational scale)。

图说明:小数据集时,可能一些传统的机器学习算法通过人工的设计特征等,其效果会优于深度神经网络,但随着数据量的增强,深度神经网路的优势愈发明显。

5.开发集合测试集的概念

(1)训练集(training set):用于运行你的算法。

(2)开发集(development set):用于调整参数,选择特征,以及对学习算法做出其他决定,也被称为留出交叉验证集(hold-out cross validation set)。

(3)测试集(test data):用于评估算法的性能,但不会据此决定使用什么学习算法或参数。

开发集和测试集的使命就是引导你的团队对机器学习系统做出最重要的改变。

在传统机器学习中,训练集和测试集可能按照7/3来划分,但随着数据的增加,测试集所占的比例会不断减少。

6.开发集和测试集应该服从同一分布

开发时所使用的数据集分布和上线后面对的真实数据之间尽量保持同分布,如果分布不同可能效果会很差,例如:开发时都是使用网上爬取的高清照片毛,而上线后上传的可能都是一些手机拍摄的模糊的猫照片,二者分布不同,故造成效果不好。

训练集效果好,测试集效果不好,首先得确定是否同分布,在这个前提下再去考虑过拟合等其他原因。

7.开发集和测试集应该多大

训练集测试集比例7/3较适用于数据规模在100至10000个样本时,随着数据的增加,测试集所占的比例会不断减少。

8.使用单值评估指标进行优化

准确率是单值评估指标,精确度(presicion)和召回率(recall)不是单值指标。

将precision和recall转换为单值指标公式F1 score:2(PR)/(P+R),值越大越好。

  1(label) 0(label)  
1(predict) True Positive False Positive precision=TP/(TP+FP)
0(predict) False Negative Ture Negetive  
  recall=TP/(TP+FN)   accuracy=(TP+TN)/(TP+TN+FP+FN)

说明:precision是从预测结果的视角来看的,预测为正样本中到底有多少是正样本;recall是从样本的视角来看的,真正的正样本有多少被预测到了。

9.优化指标和满意度指标

例子:既要追求速度,又要追求准确度,这里有两个指标,如果都融入一个公式中如accuracy-0.5*time,这样不是很合理,这时可以设定不超过100ms作为一个前提,即满意度指标,在这个指标的前提下去考虑剩余的那个指标。

当有N个指标时,使其中N-1个变为满意度指标,然后去优化剩余的那个指标。

10.通过开发集和度量指标加速迭代

(1)尝试一些关于系统构建的想法(idea);

(2)使用代码(code)实现想法;

(3)根据实验(experiment)结果判断想法是否行得通,在此基础上学习总结,从而产生新的想法,并保持这一迭代过程;

图说明:迭代越快进展越快,此时拥有开发集、测试集和度量指标的重要性便体现出来了,每当有一个新想法, 在开发集上评估其性能可以帮助你判断当前方向是否确定。

吴恩达《Machine Learning Yearning》总结(1-10章)的更多相关文章

  1. 吴恩达Machine Learning 第一周课堂笔记

    1.Introduction 1.1 Example        - Database mining        Large datasets from growth of automation/ ...

  2. 吴恩达Machine Learning学习笔记(一)

    机器学习的定义 A computer program is said to learn from experience E with respect to some class of tasks T ...

  3. 吴恩达Machine Learning学习笔记(四)--BP神经网络

    解决复杂非线性问题 BP神经网络 模型表示 theta->weights sigmoid->activation function input_layer->hidden_layer ...

  4. 吴恩达Machine Learning学习笔记(三)--逻辑回归+正则化

    分类任务 原始方法:通过将线性回归的输出映射到0-1,设定阈值来实现分类任务 改进方法:原始方法的效果在实际应用中表现不好,因为分类任务通常不是线性函数,因此提出了逻辑回归 逻辑回归 假设表示--引入 ...

  5. 吴恩达Machine Learning学习笔记(二)--多变量线性回归

    回归任务 多变量线性回归 公式 h为假设,theta为模型参数(代表了特征的权重),x为特征的值 参数更新 梯度下降算法 影响梯度下降算法的因素 (1)加速梯度下降:通过让每一个输入值大致在相同的范围 ...

  6. 吴恩达 Deep learning 第二周 神经网络基础

    逻辑回归代价函数(损失函数)的几个求导特性 1.对于sigmoid函数 2.对于以下函数 3.线性回归与逻辑回归的神经网络图表示 利用Numpy向量化运算与for循环运算的显著差距 import nu ...

  7. 吴恩达 Deep learning 第一周 深度学习概论

    知识点 1. Relu(Rectified Liner Uints 整流线性单元)激活函数:max(0,z) 神经网络中常用ReLU激活函数,与机器学习课程里面提到的sigmoid激活函数相比有以下优 ...

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

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

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

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

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

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

随机推荐

  1. Task ContinueWith

    前正无生意,且记Task.ContinueWith之用法. using System; using System.Collections.Generic; using System.Diagnosti ...

  2. centos7 .net core 使用supervisor守护进程,可以后台运行

    1.安装supervisor yum install supervisor 2.配置supervisor vi /etc/supervisord.conf 拉到最后,这里的意思是 /etc/super ...

  3. hadoop中常用的hdfs代码操作

    一:向HDFS中上传任意文本文件,如果指定的文件在HDFS中已经存在,由用户指定是追加到原有文件末尾还是覆盖原有的文件: package hadoopTest; import org.apache.h ...

  4. python3好用的requests库

    python3好用的requests库 requests是什么? requests是基于urllib编写的http库,支持python3,比urllib更好用,更简单.之前使用python写一些htt ...

  5. 【大数据系统架构师】0.2 Linux基础

    1. Linux基本环境 1.1 大数据Hadoop前置大纲讲解 1)Linux系统,基本命令 2)Java语言,JavaSE相关知识 3)MySQL基本的DML和DDL 1.2 常见Linux系统. ...

  6. clickonce发布方式创建桌面快捷方式

    1.工程属性->发布->选项->清单:创建桌面快捷方式打勾 2.工程属性->应用程序->清单:下拉列表选择Properties\app.manifest(其中的图标可以选 ...

  7. Link cut tree 实现不高效的 LCA

    https://www.luogu.org/problemnew/show/P3379 求 a 和 b 的 LCA 考虑先 access(a),此时 a 和 root 在一条链上,再 access(b ...

  8. [POI2007]ZAP-Queries 数学

    题目描述 Byteasar the Cryptographer works on breaking the code of BSA (Byteotian Security Agency). He ha ...

  9. 利用CountDownLatch和Semaphore测试案例

    package com.cxy; import java.util.HashMap; import java.util.Map; import java.util.concurrent.CountDo ...

  10. struts2学习笔记(二)—— struts2的架构【转】

    一.系统架构   Struts2的官方文档附带了Struts2的架构图. 从这张图能够非常好的去理解Struts2 关于图中的Key: Servlet Filters:过滤器链,client的全部请求 ...