吴恩达深度学习笔记(三)week2机器学习策略

来源:互联网 发布:国际数据公司idc 编辑:程序博客网 时间:2024/06/05 15:03

进行误差分析

以一个简单的例子为例,在做一个猫图片的分类器时,若产生了5%的误差,其中有些图片误把狗分类为猫,是不是应该马上决定设计一个针对狗的识别系统?答案是否定的,若错误分类里面只有少数的是狗则不需要,所以有必要对误差进行分析。
这里写图片描述
常用的误差分析是用一个表格做统计,如下图所示,统计每项可能引起系统误差的比例。
这里写图片描述

清楚标记错误的数据


吴恩达:人工干预,对误差进行分析,加入人对数据的理解在构建实际机器学习系统很有帮助。


由于人工对数据错误标记引起的误差也是根据实际情况来看需不需要处理。简单的说就是若错误标记占总误差的比例很小则不需处理,很大则需要处理。还有一点就是深度学习系统往往对随机误差的鲁棒性很好,而对系统误差的鲁棒性很差(例如总是把白狗分类成猫)
这里写图片描述

在不同划分上进行训练和测试

当拥有很多数据但是只有一小部分和系统将来要用到的数据符合同一分布,这时对数据集的划分通常把那小部分和实际应用同分布的数据作为开发(验证)集和测试集,那大部分数据作为训练集。这样就导致了数据集的分布不一样,但通常都是这么做的。如下两个例子,其一,猫的数据集中大量图片是从网上下载的高清图片,只有少量是可能和实际应用中相似的图片,通常会把后者全部作为验证集/测试集,这相当于给系统设立了一个目标靶心。
这里写图片描述
其二,在语音识别的系统开发中,有很多音源但是只有少量是应用场景中的情况。处理方法如上。
这里写图片描述

不匹配数据划分的偏差和方差

这一节主要是讲对误差的分析。如下图所示,当人类误差几乎为0,训练误差为1%验证误差为10%时,不能简单的认为系统出现了过拟合,因为数据不匹配也可能是导致这一结果的原因 ,这时候对误差分析的方法可以新建一个数据集”training-dev set”由来自于两类分布的混合组成(混合的训练集部分未用于训练),这时可以用下图右侧的方法分析误差。
这里写图片描述

处理数据不匹配的问题

上一节讲到了分析误差,当我们发现是由于数据不匹配的问题造成的误差时应该怎么处理。

  • 首先分析训练集和开发集/测试集的不同
  • 人工合成数据使训练集和开发集/测试集尽可能相似
    下图以语音激活后视镜为例,可以通过合成语音(原训练集+汽车噪声)作为新的训练集。
    这里写图片描述
    人工合成数据易造成过拟合,如用一小时的汽车噪音去合成1000小时的训练集,对人耳来说可能很难分辨,但是实际却很可能对那一小时噪音造成了过拟合。
    这里写图片描述
    另一个例子是下图的汽车都是通过同一辆车合成得到的,以人眼很难分辨,但是训练中却可能对一小部分汽车集造成过拟合。
    这里写图片描述

迁移学习

迁移学习是把在一个任务中学到的网络用于另一个任务,吴恩达给出的解释是:网络的前面的层学到的 一些比较低层次的特征仍然对新的任务有用(虽然不是很理解。。。先mark)课程中举了两个例子,其一是猫识别的系统可以用于放射科图片的系统,其二是语音识别系统,只需把最后的输出层换掉。如下图所示:
这里写图片描述
什么时候可以用迁移学习?
- 任务A和任务B有相同的输入(如都是图片或语音)
- 任务A比任务B有更多数据
- 任务A中的低层次特征对任务B有用。

多任务学习

当构建一个学习系统的任务有多个时可以考虑多任务学习,如构建一个学习系统同时检测图片中是否有人、车、红绿灯、停车标志时,可以将输出单元设置为四个,同时学习,如下图所示:
这里写图片描述

  • 不同的学习任务之间有相似的低层次特征
  • 不同的学习任务之间的数据有很大的相似性
  • 训练一个足够大的网络能很好的完成目标任务

端到端的学习

有的任做务可以直接一步学习(端到端),如机器翻译。而有些可以有中间步骤,如根据一张骨骼的图片判断年龄可以通过,学习图片到骨骼,在查表得出年龄。
这里写图片描述

阅读全文
0 0
原创粉丝点击