机器学习策略 ML strategy

觉得有用的话,欢迎一起讨论相互学习~Follow Me

1.1 什么是ML策略

机器学习策略简介

情景模拟

  • 假设你正在训练一个分类器,你的系统已经达到了90%准确率,但是对于你的应用程序来说还不够好,此时你有很多的想法去继续改善你的系统
  • 收集更多训练数据
  • 训练集的多样性不够,收集更多的具有多样性的实验数据和更多样化的反例集.
  • 使用梯度下降法训练更长的时间
  • 尝试一个不同的优化算法,例如Adam优化算法.
  • 尝试更大的神经网络或者更小的神经网络
  • 尝试dropout
  • 尝试L2正则化
  • 改变神经网络的结构:
    • 修改激活函数
    • 改变隐藏单元的数目
  • 如果你使用了错误的方向,不仅会浪费大量的时间,而且不会有所改善.

课程目的

  • 希望在这门课中,教一些策略,分析机器学习中遇到的问题,指引朝着最有希望的方向前进.

1.2 Orthogonalization正交化

正交化

  • 正交性或正交性是一种系统设计属性,它确保修改指令或算法的组成部分不会对系统的其他组件产生或传播副作用。独立地验证算法变得更加容易,它减少了测试和开发的时间。

    当一个受监督的学习系统在设计时,这四个假设必须是正确的和正交的。
  1. 成本函数在训练集上有好的表现

    • 对于一些应用而言,这可能意味着要达到人类水平的表现
    • 如果它不合适,那么使用更大的神经网络或者切换到更好的优化算法可能会有所帮助。
  2. 成本函数在开发集上有好的表现
    • 如果不合适,规范化或使用更大的训练集可能会有所帮助。
  3. 成本函数在测试集上有好的表现
    • 如果不合适,使用更大的开发集可能会有所帮助。
  4. 在实际系统中表现良好
    • 如果性能不好,开发测试集分布设置不正确,或者成本函数测量的尺度不正确.

1.3 单一数字评估指标

Single number evaluation metric

单实数评估指标

  • 无论是在调整超参数,或者尝试不同的机器学习的算法,或者搭建机器学习系统时尝试不同手段,你会发现,如果你有一个单实数评估指标,你的进展会快很多,它可以快速的告诉你,新尝试的手段比之前的手段好还是坏.

机器学习系统的迭代过程

我们通常有一个想法,编程序,跑实验,看看效果如何.然后使用这些试验结果来改善你的想法.然后继续走这个循环,不断改进你的算法.

查准率,查全率,F1分数

  • 假设现在你需要识别猫的图片,并且你已经开发出了A和B两个分类器.评估你的分类器的方式是观察他的查准率(precesion)和查全率(recall)

  • Precision 查准率 在你的分类器标记为猫的例子中,有多少真的是猫.95% 的机会表示当你的分类器认为这是一只猫时,95%的机会分类正确.
  • Recall 查全率 在所有真的是猫的图片中,你的分类器正确识别出的图片的百分比,实际为猫的图片中,被正确划分出类的个数.
  • 事实证明,虽然使用查准率和查全率来评估一个分类器是十分合理的,但是查准率和查重率之间往往需要一个折衷.
  • 例如如果出现A分类器在查全率上表现得更好,但是B分类器在查准率上表现得更好.

  • F1分数 在机器学习的文献中,权衡查准率P和查全率R的方法是计算P和R的调和平均值(harmonic mean)即F1分数.\[F1=\frac{2}{\frac{1}{P}+\frac{1}{R}}\]

平均误差

对于同一模型,在不同的状态下也许会产生不同的误差,这时候我们可以使用平均误差这个单一数值评估指标评价机器学习模型.

Summary

很多机器学习团队都是这样,有一个开发集,用于测量查准率和查全率还会定义一个单一数值评估指标(单实数评估指标)能让你快速从众多分类器中挑选合适的分类器.加速机器学习算法的迭代过程.

[DeeplearningAI笔记]ML strategy_1_1正交化/单一数字评估指标的更多相关文章

  1. ubuntu之路——day10.2单一数字评估指标与满足和优化的评估指标

    单一数字评估指标: 我们在平时常用到的模型评估指标是精度(accuracy)和错误率(error rate),错误率是:分类错误的样本数站样本总数的比例,即E=n/m(如果在m个样本中有n个样本分类错 ...

  2. [DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标

    机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 满足和优化指标 Stisficing and optimizing metrics 有时候把你要考 ...

  3. [DeeplearningAI笔记]ML strategy_2_1误差分析

    机器学习策略-误差分析 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.1 误差分析 训练出来的模型往往没有达到人类水平的效果,为了得到人类水平的结果,我们对原因进行分析,这个过程称为误差 ...

  4. [DeeplearningAI笔记]ML strategy_1_3可避免误差与改善模型方法

    机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.8 为什么是人的表现 今天,机器学习算法可以与人类水平的表现性能竞争,因为它们在很多应用程序中更有生产 ...

  5. [DeeplearningAI笔记]ML strategy_2_3迁移学习/多任务学习

    机器学习策略-多任务学习 Learninig from multiple tasks 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.7 迁移学习 Transfer Learninig 神 ...

  6. [DeeplearningAI笔记]ML strategy_2_4端到端学习

    机器学习策略-端到端学习 End-to-end deeplearning 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.9 什么是端到端学习-What is End-to-end dee ...

  7. [DeeplearningAI笔记]ML strategy_2_2训练和开发/测试数据集不匹配问题

    机器学习策略-不匹配的训练和开发/测试数据 觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.4在不同分布上训练和测试数据 在深度学习时代,越来越多的团队使用和开发集/测试集不同分布的数据来 ...

  8. Spark ML机器学习库评估指标示例

    本文主要对 Spark ML库下模型评估指标的讲解,以下代码均以Jupyter Notebook进行讲解,Spark版本为2.4.5.模型评估指标位于包org.apache.spark.ml.eval ...

  9. [DeeplearningAI笔记]神经网络与深度学习2.11_2.16神经网络基础(向量化)

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 2.11向量化 向量化是消除代码中显示for循环语句的艺术,在训练大数据集时,深度学习算法才变得高效,所以代码运行的非常快十分重要.所以在深度学 ...

随机推荐

  1. 修复Java使用POI合并Excel单元格后,边框不显示的问题

    使用Apache POI生成Excel文档时,当进行单元格合并操作后,被合并的单元格边框会消失,使用如下方式可以解决. 创建方法: public void setBorderStyle(int bor ...

  2. JDBC(二)之JDBC处理CLOB和BLOB及事务与数据库元数据获取

    前面大概介绍了JDBC连接数据库的过程,以及怎么操作数据库,今天给大家分享JDBC怎么处理CLOB和BLOB存储图片的事情,以及JDBC怎么去处理事务.怎么在插入数据的时候生成主键返回值 一.JDBC ...

  3. c语言字符相关函数

    1.fgetc(getc)fputc(putc)区别: getc和putc都是针对标准输入输出的,而fgetc和fputc可以对任意的文件操作,也可以用fgetc和fputc对标准输入输出操作fget ...

  4. c++(线性结构的处理)

    我们知道,在内存中的空间都是连续的.也就是说,0x00000001下面的地址必然是0x00000002.所以,空间上是不会出现地址的突变的.那什么数据结构类型是连续内部空间呢,其实就是数组,当然也可以 ...

  5. angular2 路由

    路由是个模块,命令行生成:ng generate module routerTest; 自己组建: 路由模块说明: Routes:路由配置,路由配置文件类型.比如:const routing:Rout ...

  6. Servlet面试题归纳

    尊重原创:http://blog.csdn.net/caohaicheng/article/details/38116481 1.说一说Servlet生命周期 Servlet生命周期包括三部分: 初始 ...

  7. 浅析const、let与var

    以前无论声明变量还是常量,总是使用var一勺端,知道接触了es6之后,发现原来变量.常量的声明其实是很讲究的. 这里简单来谈谈var.const与let. 1.var.var声明的变量没有块级作用域, ...

  8. Mac 终端 shell 公钥失效解决办法

    mac的终端下面使用ssh user@localhost输入密码不能正常登录解决   今天回来后发现系统突然很奇怪,以前在mac的终端下面使用ssh user@localhost输入密码就可以连接到远 ...

  9. 【自制工具类】Java删除字符串中的元素

    这几天做项目需要把多个item的id存储到一个字符串中,保存进数据库.保存倒是简单,只需要判断之前是否为空,如果空就直接添加,非空则拼接个"," 所以这个字符串的数据结构是这样的 ...

  10. 一个简洁的PHP可逆加密函数(分享)

    http://www.jb51.net/article/38018.htm 本篇文章是对一个简洁的PHP可逆加密函数进行了详细的分析介绍,需要的朋友参考下   很多时候我们需要对数据进行加密解密,比如 ...