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. 在有主分支和个人分支情况下的TFS使用方法

    从事.NET开发的资深童鞋一定都知道VS有自带的代码管理工具TFS(Team Foundation Server ),但是开发萌新可能就不太了解了,下面我就介绍一下这个工具以及它的一些常用操作. TF ...

  2. php 文件、目录操作函数

    目录 opendir readdir closedir mkdir rmdir  : 只能删除空目录 文件 filetype filesize is_file basename dirname pat ...

  3. Agreement has been updated--Edit Phone Number最便捷解决办法(不需要安全提示问题和双重认证)

    2018年06月04日亲测有效: CSDN博客跳转网址:

  4. opencv.js小案例

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. ulimit -n 查看可以打开的最大文件描述符的数量

    具体ulimit命令参考 https://www.cnblogs.com/wangkangluo1/archive/2012/06/06/2537677.html

  6. JDBC_事务概念_ACID特点_隔离级别_提交commit_回滚rollback

    事务的概念 一组要么同时执行成功,要么同时执行失败的SQL语句,是数据库操作的一个执行单元! 事务开始于: 连接到数据库上,并执行一条DML语句(insert,update或delete),前一个事务 ...

  7. 关于运行robot framework 报错解决方法,ModuleNotFoundError: No module named 'robot'

    报错: command: pybot.bat --argumentfile c:\users\76776\appdata\local\temp\RIDEiw0utf.d\argfile.txt --l ...

  8. ASP.Net一般处理程序Session用法

    1.在aspx和aspx.cs中,都是以 Session["type"]="aaa" 和 string aaa=Session["type" ...

  9. audiosprite的使用

    github地址: https://github.com/tonistiigi/audiosprite 使用方法: http://www.jikexueyuan.com/course/2510_2.h ...

  10. C++_标准模板库STL概念介绍4-算法

    STL包含很多处理容器的非成员函数: sort() copy() find() random_shuffle() set_union() set_intersection() set_differen ...