吴恩达《Machine Learning Yearning》总结(1-10章)
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章)的更多相关文章
- 吴恩达Machine Learning 第一周课堂笔记
1.Introduction 1.1 Example - Database mining Large datasets from growth of automation/ ...
- 吴恩达Machine Learning学习笔记(一)
机器学习的定义 A computer program is said to learn from experience E with respect to some class of tasks T ...
- 吴恩达Machine Learning学习笔记(四)--BP神经网络
解决复杂非线性问题 BP神经网络 模型表示 theta->weights sigmoid->activation function input_layer->hidden_layer ...
- 吴恩达Machine Learning学习笔记(三)--逻辑回归+正则化
分类任务 原始方法:通过将线性回归的输出映射到0-1,设定阈值来实现分类任务 改进方法:原始方法的效果在实际应用中表现不好,因为分类任务通常不是线性函数,因此提出了逻辑回归 逻辑回归 假设表示--引入 ...
- 吴恩达Machine Learning学习笔记(二)--多变量线性回归
回归任务 多变量线性回归 公式 h为假设,theta为模型参数(代表了特征的权重),x为特征的值 参数更新 梯度下降算法 影响梯度下降算法的因素 (1)加速梯度下降:通过让每一个输入值大致在相同的范围 ...
- 吴恩达 Deep learning 第二周 神经网络基础
逻辑回归代价函数(损失函数)的几个求导特性 1.对于sigmoid函数 2.对于以下函数 3.线性回归与逻辑回归的神经网络图表示 利用Numpy向量化运算与for循环运算的显著差距 import nu ...
- 吴恩达 Deep learning 第一周 深度学习概论
知识点 1. Relu(Rectified Liner Uints 整流线性单元)激活函数:max(0,z) 神经网络中常用ReLU激活函数,与机器学习课程里面提到的sigmoid激活函数相比有以下优 ...
- Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源
最近开源了周志华老师的西瓜书<机器学习>纯手推笔记: 博士笔记 | 周志华<机器学习>手推笔记第一章思维导图 [博士笔记 | 周志华<机器学习>手推笔记第二章&qu ...
- 我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)【中英双语】
我在 B 站学机器学习(Machine Learning)- 吴恩达(Andrew Ng)[中英双语] 视频地址:https://www.bilibili.com/video/av9912938/ t ...
- Coursera课程《Machine Learning》吴恩达课堂笔记
强烈安利吴恩达老师的<Machine Learning>课程,讲得非常好懂,基本上算是无基础就可以学习的课程. 课程地址 强烈建议在线学习,而不是把视频下载下来看.视频中间可能会有一些问题 ...
随机推荐
- .NET中的程序集
参考:http://blog.sina.com.cn/s/blog_7ade159d0102wmg9.html 程序集(Assembly,装配件,.NET程序集) 程序集是应用程序的部署单元,.NET ...
- Mybatis中的连接池
Mybatis中DataSource的存取 MyBatis是通过工厂模式来创建数据源DataSource对象的,MyBatis定义了抽象的工厂接口:org.apache.ibatis.datasour ...
- 【转】C#日期时间格式化
源地址:https://www.cnblogs.com/polk6/p/5465088.html
- DHCP与PPPOE 区别
1.静态IP的方式,如果是占用一个INTERNET的IP的话,上网都是很贵的,当然这个也是最方便的,开机就能上网,不用做任何拨号或者认证的过程.2.PPPOE,只是多了一个获得IP的过程,一旦获得了I ...
- [WebShow系列] 固定展示界面的现场调用
正在制作......,敬请期待. 固定展示界面的现场调用 现场管理员通过现场控制台可以控制主展示界面,实现 主题 所选选手展示 所选选手打分展示 排行展示 详情排行展示 柱状图展示 界面的展示切换外, ...
- shell-002:统计IP访问量
统计IP访问量 #!/bin/bash # 统计IP的访问量 # 第一步首先得获取到日志的IP # 第二步给IP排序,这样相同的的IP就会在一起 sort # 第三步则给重复的IP统计数量,去重 un ...
- elementtaryos root密码更改
在elementtaryos 终端中使用root 账户但不幸忘记密码怎么办?请进行如下操作...... 1.进入高级选项选中recovery mode 2.按e编辑,找到recovery nomode ...
- C++_异常8-异常、类和基础
异常.类和继承以三种方式相互关联. 首先,可以像标准C++库所做的那样,从一个异常类派生出另一个. 其次,可以在类定义中嵌套异常类声明来组合异常. 第三,这种嵌套声明本身可以被继承,还可以作为基类. ...
- ubuntu系统下如何切换输入法
如何切换输入法:ctrl+空格键 输入中文时如何翻页:键盘上的 - +两个键 super表示:美式键盘中的Win键
- LeetCode记录之9——Palindrome Number
LeetCode真是个好东西,本来闲了一下午不想看书,感觉太荒废时间了就来刷一道题.能力有限,先把easy的题目给刷完. Determine whether an integer is a palin ...