机器学习策略(ML Strategy)2


一、误差分析(Error Analysis)

1、进行误差分析(Carrying out error analysis)
当训练完模型后,可以得到该模型的误差。接着我们要不断的对模型进行优化,减少误差。误差分析就是为了指导模型往能最大化减少误差的方向调整。

误差分析就是对由不同错误分类类型引起的错误占总错误的比例进行排序,优先优化占比高的错误类型。
以识别猫为例,预测失败可能有很多种类型,如:把狗错识别为猫、把老虎错分成猫、图片模糊、滤镜等。我们可以逐一检查误检的样本,统计出各种错误的类型比例,这样我们可以辨别出某些不值得优化的类型,然后把精力投入到比例较高的错误类型的优化。

2、清除标记错误的数据(Cleaning up incorrectly labeled data)
我们的数据集中可能有一些样本被错误的标记,是否应该更正标记。通常如果错误标记是随机产生的而不是有规律的,可以不更正。因为深度学习算法对随机的错误有较强的鲁棒性(robusteness)。
我们可以在误差分析中加入错误标记这种错分类型,统计出它的占比。如果占比较大则考虑修改,较小可以不修正。如果真的需要修正,对整个数据集进行检查并修正明显是不明智的,所以正常只对错分的数据中的错误标记的样本进行修正。训练开发和测试集都需要进行修正,保证它们是同一的分布。

3、快速搭建系统并迭代(Build your first system quickly, then iterate)
搭建深度学习模型时,应该快速搭建出第一个简单的模型,然后通过偏差、方差和误差分析来驱动模型的优化。这样可以防止一开始就训练一个很复杂的模型结果却不好,浪费大量的时间。但如果有很多经验和参考时,搭建第一个模型时可以适当的复杂一点。


二、数据集的数据不匹配(Mismatched training and dev/test set)

1、在不同分布的数据上训练和测试(Training and testing on different distributions)
因为需求的数据量非常大,所以我们有时候使用的训练集、开发集和测试集来自不同的分布,这就是数据不匹配。这种情款其实很常遇到,因为对于某领域通常有一个很大的通用数据库,但我们要开发一个相对更细分的领域时我们的数据通常较少。例如语音识别相对于手机语音唤醒功能。

以大量的高质量和少量的低质量图片的数据集为例,对数据集分配有两种选择。
option 1:相对差,不采用
将两组数据合并到一起,随机选取样本分配到训练、开发、测试集中。
好处:三个集合中的数据均来自于同一分布;
坏处:我们目标是优化低质量图片的开发集数据,但是经过调整后开发集的数据大部分来自训练集高质量图片,这样优化目标就不准确了。

option 2:相对好,采用
训练集全部是高质量图片,也可以有低质量图片。开发和测试集都是低质量图片。
好处:优化目标准确;
坏处:训练集和开发、测试集来自不同的分布。

2、不匹配数据分布的偏差和方差(Bias and Variance with mismatched data distributions)
如果训练集和开发、测试集来自不同分布,当对算法进行评估发现开发集效果不好时,我们不能很好的区分这是由于高方差还是数据不匹配引起的。

分析方法:设置训练开发集
训练开发集(Training-dev set):和训练集同一分布,但不用来训练,其实就是从原本的训练集分一部分出来。
可避免偏差(avoidable bias):训练集和人类水平之差
方差(variance):训练开发集和训练集之差
数据不匹配(data mismrtch):开发集和训练开发集之差

3、解决数据不匹配(Addressing data mismatch)

  • 进行误差分析找出训练集和开发、测试集的不同之处。
  • 使训练集数据和开发、测试集的数据更相似。或者寻找和训练集和开发、测试集的数据相似的数据加入训练集

人工数据合成(Artificial data synthesis): 改变训练集数据使它和开发、测试集的数据更相似。例如使用通用的语音数据库来开发车辆语音识别系统时,可以把汽车的噪音和通用的语音数据库的数据进行人工合成作为训练集。


三、迁移学习(Transfer learning)

迁移学习就是把任务A(数据量大)中学到的知识应用到另一个独立的任务B(数据量少)。因为任务B的数据量少,训练模型时不能得到很好的效果,这时可以利用任务A已经学习到的一些通用的特征来使我们的模型有更好的表现。

预训练权重(pre-training weights):在通用数据库训练出来的权重。
微调权重(fine tuning weights):对预训练的权重进行微调(改变最后某几层的权重),用它来初始化自己的模型。

为什么有效:
以图像识别为例,在通用的大型数据库中训练分类器,往往网络的前几层模型能很好的学习到图像的一些基本特征,如: 边缘检测等。因为这些低层次的特征可以泛化到任务,所以它能让我们的模型表现得更好。

迁移学习有意义的条件:

  • 任务A和任务B有着相似的输入,如都是图片;
  • 任务A拥有的数据远远大于任务B(任务B的样本比A的样本对于我们模型的优化更有价值)。
  • 任务A的低层特征学习对任务B有一定的帮助。

四、多任务学习(Multi-task learning)

多任务学习:
多个任务并行学习,如在一张图片中同时检测出多个目标。

在神经网络中,把最后一层的神经元个数设为多任务的个数。样本的标签也应与此匹配。

cost function :类似于逻辑回归
i 表示第几个样本,j 表示第几个神经元即第几个任务

softmax和多任务学习的区别:
softmax是假定图片中只有一个目标,但这个目标可能属于不同的类别,选择概率最高的那一类作为预测的结果。而多任务学习是假定图片中有多个目标,预测输出每个目标的概率。

迁移学习有意义的条件:

  • 多任务之间在低层网络可以共用一些低级特征。
  • 每个任务的数据具有相似性(similiar),这样使得与单任务相比有更大的数据集,使得低级特征的提取更加准确。
  • 搭建的神经网络要足够大,这样才可以同时学习多个任务。

五、端到端深度学习(End-to-end deep learning)

1、端到端的深度学习定义
通过缩减人工预处理和后续处理,尽可能使模型从原始输入到最终输出,给模型更多可以根据数据自动调节的空间,增加模型的整体契合度。

以语音翻译为例:
传统机器学习:语音>>发音>>词>>句
端到端:语音>>句子
因为现在有大量的语音译为文本的数据,所以可以使用端到端。

2、端到端的深度学习使用规则(Whether to use end-to-end deep learning)
根据优缺点来决定:

  • 优点:
    端到端学习可以直接让数据自己决定要学习什么特征,而不是学习人为选择特征,可能能学得更多更准确。
    减少人工设计的组件(components)的需要。
  • 缺点:
    需要大量的数据,才能学习到足够的东西。
    排除了可能有用的手工设计组件,使学习更慢。

当有大量的端到端的数据时可以使用端到端的深度学习,如上例的语音识别。

当端到端的数据不多,而人工设计组件的数据多时不用端到端的深度学习,如下例,人脸识别。
图片>>人脸检测(人脸区域提取)>>人脸识别(与数据库匹配)
从有大量背景的图片到人脸区域的数据和从人脸区域到人名的数据很多,但是直接从有大量背景的图片到人名的数据相对小得多。而且这类数据不好获取或成本太高。所以不选择端到端的深度学习。

另一个例子:从骨骼图预测年龄


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

  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. Servlet监听器Listener
  2. 欲取代CNN的Capsule Network究竟是什么来头?它能为AI界带来革命性转折么?
  3. php商品分类显示商品,ecshop首页显示全部商品分类的方法
  4. 关于 Node.js scoped module 的一些理解
  5. 仿qq邮箱源码程序_小伙子利用C++实现邮件程序发送和接收
  6. matlab重要性采样,Importance Sampling (重要性采样)介绍 | 文艺数学君
  7. bzoj1257: [CQOI2007]余数之和sum
  8. RS485无线通讯模块工作原理及应用场景
  9. 逻辑斯蒂回归 matlab实现
  10. Visual Studio2019安装vsix扩展文件
  11. Thinkpad T430 重装系统不能从光盘或者U盘启动/BIOS设置 关于T430 无法光盘引导安装-BIOS设置问题...
  12. 开发中积累的单词800
  13. iOS 15 更新,图标改版
  14. RollPitchYaw傻傻分不清
  15. 关于springboot 的默认数据源
  16. 淘宝网禁售无证食品和保健品 问题商品将被屏蔽
  17. 类似华为麒麟鸿蒙类的名字,华为除了“麒麟”,还有四款顶级芯片,名字背后隐藏寓意令人感动...
  18. 成都计算机系统维护专业中专,成都计算机应用专业中专招生简章
  19. 深度揭密:2015年微商怎么玩才赚钱?
  20. ngram语言模型—基于KneserNey及Modified Kneser Ney平滑

热门文章

  1. C语言交换两个数字的三种做法
  2. 神奇的幻方(NOIP2015)(真·纯模拟)
  3. BUG系列:转让startActivityForResult()amp;onActivityResult()没有反应
  4. Linux sftp用法
  5. Apache2启动错误以及Ubuntu update的错误
  6. PHP之Smarty简单实现
  7. linux 查看服务器序列号(S/N)
  8. Algorithms学习笔记-Chapter0序言
  9. 深入出不来nodejs源码-V8引擎初探
  10. 浅析SQL Server数据库中的伪列以及伪列的含义