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. php代码审计10审计会话认证漏洞

    挖掘经验:遇到的比较多的就是出现在cookie验证上面,通常是没有使用session来认证,直接将用户信息保存在cookie中      Session固定攻击:黑客固定住目标用户的session i ...

  2. shell-脚本-作用是发现前10个最占用磁盘空间的文件

    #!/bin/bash## 这个脚本的作用是发现前10个最占用磁盘空间的文件################定义这个脚本的全区变量##################################C ...

  3. loj #2305. 「NOI2017」游戏

    #2305. 「NOI2017」游戏 题目描述 小 L 计划进行 nnn 场游戏,每场游戏使用一张地图,小 L 会选择一辆车在该地图上完成游戏. 小 L 的赛车有三辆,分别用大写字母 AAA.BBB. ...

  4. Java面向对象之关键字super 入门实例

    一.基础概念 (一)super关键字 super关键字的用法和this相似.this代表的是当前对象.super代表的是父类中内存空间. 子父类中是不会出现同名属性的情况. (二)继承中.成员变量问题 ...

  5. unix网络编程源码编译问题

    ​##获得更多资料欢迎进入我的网站或者 csdn或者博客园 今天在温习计算机网络时,突然将我很久前买的<unix网络编程第三版卷一>拿出来看看了.放了两年了,哈哈.主要讲的套接字,之前编写 ...

  6. Linux管理命令

    管理命令 用户管理: useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage 组管理: groupadd, groupdel, ...

  7. 多线程 NSOpeartion 的使用

    NSOperation简介 相对于 GCD ,具有面向对象的特征,比 GCD 更简单易用,代码可读性强 NSOperatioin 单独使用时, 不具有开辟新线程的能力, 只是同步执行操作, 需要配合 ...

  8. alter table添加表约束

    翻阅了一下网上关于alter table添加表约束的资料,学习下,然后供自己以后使用. 仅仅供自己使用... 总结alter table ### add constraint ## 使用方法 添加表约 ...

  9. JavaWeb学习笔记(十二)—— JDBC的基本使用

    一.JDBC概述 1.1 数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡,同样道 ...

  10. Day45--js基本小结

    JavaScript基本总结 一:基本背景 01:注:ES6就是指ECMAScript 6.(2015 ECMAScript6 添加类和模块) ECMAScript和JavaScript的关系 199 ...