结构化机器学习项目


机器学习策略(ML Strategy)1


一、机器学习策略介绍(Introduction to ML Strategy)

1、机器学习策略
就是超参数调优的策略,怎么调?怎们评估调优的效果?调哪些超参的效果更好?超参数调优的次序?
下图是一些经常调优的超参:

2、正交化(Orthogonalization)
正交化或正交性是一种系统设计属性,可确保修改算法的某一部分不会对系统的其他部分产生或传播副作用。 它使得相互独立验证算法变得更加容易,且减少了测试和开发时间。
(Orthogonalization or orthogonality is a system design property that assures that modifying an instruction or a component of an algorithm will not create or propagate side effects to other components of the system. It becomes easier to verify the algorithms independently from one another, it reduces testing and development time.)
其实就是类似于我们做实验时的控制变量法,一次只调优一个超参,保持其它超参不变,超参相互独立。

当设计一个监督型的学习模型时,下面的4个假设需要成立且相互正交。
(When a supervised learning system is design, these are the 4 assumptions that needs to be true and orthogonal.)

(1) Fit training set well in cost function
If it doesn’t fit well, the use of a bigger neural network or switching to a better optimization algorithm might help.

(2)Fit development set well on cost function
If it doesn’t fit well, regularization or using bigger training set might help.

(3)Fit test set well on cost function
If it doesn’t fit well, the use of a bigger development set might help

(4)Performs well in real world
If it doesn’t perform well, the development test set is not set correctly or the cost function is not evaluating the right thing.


二、设置优化目标(Setting up your goal)

1、单一数字评估指标(Single number evaluation metric)

查准率 (Precision);查全率 (Recall);F1-Score:查准率与查全率的 trade off;

注: Recall 的分母应该是 True positive + False negative
p: recision; r :recall
如果同时关注 precision 和 recall 两个指标,很难对算法效果做出判断。所以通常以F1-Score作为评估算法效果的单一指标。F1-Score 越大效果越好。

有时候也会把平均数作为单一数字评估指标:

下表的百分比表示误差,所以平均误差越小越好

2、设置满足和优化目标(Satisficing and Optimizing metrics)

满足目标:只要达到要求就行,不一定得很好
优化目标:尽可能的达到最好,不断优化。

分类器的性能有许多不同的评估指标,称为评估矩阵。它们可以归类为满足矩阵和优化矩阵。要注意,这些评估指标必须在训练集、开发集或测试集上进行评估。
(There are different metrics to evaluate the performance of a classifier, they are called evaluation matrices. They can be categorized as satisficing and optimizing matrices. It is important to note that these evaluation matrices must be evaluated on a training set, a development set or on the test set.)

一般的(general),如果要有N个指标,通常选择其中一个指标为优化指标,其它的N-1个指标为满足指标:

以算法的运行时间(Running time)和准确率(Accuracy)为例,通常运行时间只需要满足一定要求即可,如<100ms; 而准确率越高越好;所以把运行时间设为满足目标,准确率设为优化目标。


三、设置训练、开发、测试集(Setting up training、development and test sets)

1、开发、测试集中的数据选择建议

  • 开发集和测试集要来自同一分布 (same distribution )且随机选择样本 (randomly select)
    例:数据来自不同区域,开发集和测试集的数据选择不能使两个数据集分别从不同的某几个地区选取。正确的做法是在所有的地区中随机选择样本来分配给开发集和测试集。
  • 开发集和测试集中的数据最好能反应未来的数据(Choose a development set and test set to reflect data you expect to get in the future and consider important to do well)

2、训练、开发、测试集中的数据量(size)
训练集: 越大越好
开发集: 不用太大,够用就行,主要用来评估不同模型的效果,能区分不同模型的的差别即可。
测试集:视应用目标而定,越大置信度越高,一般不用太大。


三、修改评估指标或开发、测试集

1、开发模型也可以看做是Orthogonalization
首先,设置优化目标(评估指标),类比于靶心。
然后,不断的优化向优化目标逼近,类比瞄准靶心发射。

2、修改评估指标
当我们的算法中不允许包含某一向错误时,我们就要修改评价指标(错误率),给这项错误设置一个很大的权重,这样算法为了减小错误率会优先减小这项错误的产生。

3、修改开发、测试集
如果在训练开发测试的过程中得到的模型效果比较好,但是在实际应用中效果却不好的时候,就需要改变开发、测试集或者评估指标。例:当开发、测试集是高质量的图片而应用中用户的是低质量的图片时法,算法效果比较差。这时候应该把改变开发、测试集应为随机选择高低质量的图片。


四、人类表现比较(Comparing to human-level performance)

1.人类水平和贝叶斯最优误差
人类水平(Human level):对于某项任务,人类能达到的准确率。人类误差不是固定值,因为普通人和专家是有区别的,人为水平的定义取决于分析的目的和应用场景而定。

贝叶斯最优误差(Bayes optimal error):对于某项任务,理论上能达到的准确率,一定优于人类水平。

通常在语音识别、计算机视觉中可以把贝叶斯最优误差约等于人类误差,因为人类很擅长这方面的处理。

可避免的偏差(Avoidable bias)和方差variance:
可避免的偏差:人类水平或贝叶斯与训练集误差的差
方差:开发集与训练集误差的差。

哪个大优先优化即减小哪个,因为可提升的空间较大。

超过人的表现(Surpassing human-level performance)
以下是目前机器学习超过人类水平的几个方面,它们基本上是结构化数据的学习,因为计算机擅长于与数值计算与统计,而且数据量大,所以表现比人好。但在非结构化数据的学习方面,目前在这方面的学习超过人类水平的应用并不多,大部分还无法超过人类。

改善模型的表现(Improving your model performance)

Two fundamental assumptions of supervised learning:

  • The first one is to have a low avoidable bias which means that the training set fits well.
  • The second one is to have a low or acceptable variance which means that the training set performance generalizes well to the development set and test set.

不满足这两个假设的改进方法:

吴恩达深度学习笔记8-Course3-Week1【机器学习策略(ML Strategy)1】相关推荐

  1. 吴恩达深度学习笔记(四)

    吴恩达深度学习笔记(四) 卷积神经网络CNN-第二版 卷积神经网络 深度卷积网络:实例探究 目标检测 特殊应用:人脸识别和神经风格转换 卷积神经网络编程作业 卷积神经网络CNN-第二版 卷积神经网络 ...

  2. 799页!吴恩达深度学习笔记.PDF

    吴恩达深度学习课程,是公认的最优秀的深度学习课程之一,目前没有教材,只有视频,本文提供完整笔记下载,这本笔记非常适合和深度学习入门. 0.导语 黄海广博士和同学将吴恩达老师深度学习视频课程做了完整的笔 ...

  3. 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)

    深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...

  4. 吴恩达深度学习笔记——神经网络与深度学习(Neural Networks and Deep Learning)

    文章目录 前言 传送门 神经网络与深度学习(Neural Networks and Deep Learning) 绪论 梯度下降法与二分逻辑回归(Gradient Descend and Logist ...

  5. 吴恩达深度学习笔记——结构化机器学习项目(Structuring Machine Learning Projects)

    深度学习笔记导航 前言 传送门 结构化机器学习项目(Machine Learning Strategy) 机器学习策略概述 正交化(orthogonalization) 评价指标 数字评估指标的单一性 ...

  6. 吴恩达深度学习笔记1-Course1-Week1【深度学习概论】

    2018.5.7 吴恩达深度学习视频教程网址 网易云课堂:https://mooc.study.163.com/smartSpec/detail/1001319001.htm Coursera:htt ...

  7. 吴恩达深度学习笔记(四)—— 正则化

    有关正则化的详细内容: 吴恩达机器学习笔记(三) -- Regularization正则化 <机器学习实战>学习笔记第五章 -- Logistic回归 主要内容: 一.无正则化 二.L2正 ...

  8. 吴恩达深度学习笔记_Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现,可以在线阅读了!...

    吴恩达机器学习.深度学习,李航老师<统计学习方法>,可以说是机器学习入门的宝典.本文推荐一个网站"机器学习初学者",把以上资源的笔记.代码实现做成了网页版,可以在线阅读 ...

  9. 吴恩达--深度学习笔记

    这是一个督促自己学习的笔记 文章目录 这是一个督促自己学习的笔记 1.logistic回归 1. 神经网络基础----二分分类 2. logistic回归 3. logistic回归损失函数 4. 梯 ...

  10. 吴恩达深度学习笔记- lesson4 卷积神经网络

    文章目录 Week 1 卷积神经网络基础 4.1.1 计算机视觉(Computer vision) 4.1.2 边缘检测示例(Edge detection example) 4.1.3 更多边缘检测内 ...

最新文章

  1. java离职交接文档_离职了就没责任?会计离职没办这2项交接,要承担法律责任!...
  2. 画了个Android
  3. java8-Optional
  4. iOS----集成ijkplayer视频直播
  5. Python开发的一个IDE推荐,Sublime Text 3
  6. 电脑突然调节不了亮度?让我教你来恢复
  7. 《数字图像处理 第三版》(冈萨雷斯)——第十二章 目标识别
  8. java中的jQuery与Ajax的应用,菜鸟教程
  9. 3dmax渲染很慢/很卡?
  10. 怎么用计算机直接截图,电脑截图快捷键怎么使用,电脑怎么快捷键截图
  11. 陈强老师公开课笔记1——如何区别中介效应、调节效应与交互效应?
  12. 2021年剑桥高考成绩查询,2021年剑桥英语KET/PET成绩查询指南
  13. 新型城镇化红利,碧桂园的确定性在哪里?
  14. kali由wifi握手包破解密码gnuplot使用
  15. python 日志输出为json格式文件_Py修行路 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)...
  16. 【mac】MacBook使用快捷键
  17. 文件管理android2.3,Tomi文件管理器下载 v2.3.4 安卓版
  18. 看看如何辨别自己是什么肤质。
  19. SAP-SD-销售订单SO的可用性检查功能
  20. python士兵突击_01_枪类

热门文章

  1. 递归回溯最简单易懂的小例子
  2. day02.3-元组内置方法
  3. 标识位:可以用以确定鼠标点击的是哪一个按钮或者是文本框
  4. codevs 2924 数独挑战
  5. 第四十四章 微服务CICD(6)- gitlab + jenkins + docker + k8s
  6. WebGL on iOS8 最终等到了这一天
  7. (转)iOS 6的Rotation--详细版本
  8. 一步一步学Silverlight 2系列(5):实现简单的拖放功能
  9. Promise的源码实现(完美符合Promise/A+规范)
  10. 10 | 软件测试工程师需要掌握的非测试知识有哪些?