吴恩达deeplearning.ai课程系列笔记09

#写在最前,deeplearning.ai系列课程相较于之前的Andrew Ng在coursera上2014发布的机器学习课程内容更加丰富。
重要的是此次课程示例代码都是用python来实现,不需要去熟悉octave,对大部分需要用python来学习机器学习的同学来说是个福音!
原课程视频请移步网易云课堂或者coursera上学习。

#本文内容部分来自网络,只为自己学习以及分享供更多的人学习使用微笑

1、误差分析

视频中举了个动物分类的例子,简单的来说,就是我们可以并行分析,来考虑导致误差的多种因素所占的比重。可以建个表格:


统计错误类型的百分比,这个分析步骤可以给我们一个粗略的估计,让我们大致确定是否值得去处理每个不同的错误类型。

另外,我们也需要对错误标注的数据提高警惕:

对于部分人工产生的随机误差,我们不需要耗费大量的精力在其中,因为如果数据足够大,这部分误差的影响并不明显。说白了,吴大大就是让我们通过进行误差分析,来发现到底是哪些因素导致了比较大的坏作用,然后让我们朝着改善这个的方向去努力,清楚后期的优化方向。

另外,吴大大还说了,就是抡起袖子干,快速搭建第一个系统,并进行迭代。

2、不同分布上的训练和测试

现如今,由于需求的数据量非常大,很多的团队,可能使用的训练数据都是和开发集和测试集来自不同的分布。

我们可以从网上获取大量的高清晰的猫的图片去做分类,如200000张,但是只能获取少量利用手机拍摄的不清晰的图片,如10000张。但是我们系统的目的是应用到手机上做分类。

方法一:

将两组数据合并到一起,总共得到21万张图片样本。将这些样本随机分配到训练、开发、测试集中。

  • 好处:三个集合中的数据均来自于同一分布;
  • 坏处:我们设立开发集的目的是瞄准目标,而现在我们的目标绝大部分是为了去优化网上获取的高清晰度的照片,而不是我们真正的目标。

这个方法不是一个好的方法。

方法二:

训练集均是来自网上下载的20万张高清图片,当然也可以加上5000张手机非高清图片;对于开发和测试集都是手机非高清图片。

  • 好处:开发集全部来自手机图片,瞄准目标;
  • 坏处:训练集和开发、测试集来自不同的分布。

从长期来看,这样的分布能够给我们带来更好的系统性能。

所以,吴大大更建议开发和测试集最好是全部来自目标样本。

对于不同分布的偏差和方差的分析,我们可以设立训练开发集:

训练开发集,其中的数据和训练数据来自同一分布,但是却不用于训练过程。

如果最终,我们的模型得到的误差分别为:

  • Training error: 1%
  • Training-dev error: 9%
  • Dev error: 10%

那么,由于训练开发集尽管和训练集来自同一分布,但是却有很大的误差, 模型无法泛化到同分布的数据,那么说明我们的模型存在方差问题

但如果我们的模型得到的误差分别为:

  • Training error: 1%
  • Training-dev error: 1.5%
  • Dev error: 10%

那么在这样的情况下,我们可以看到,来自同分布的数据,模型的泛化能力强,而开发集的误差主要是来自于分布不匹配导致的。

而解决数据分布不均产生的问题的办法有:

  • 进行人工误差分析,尝试去了解训练集和开发测试集的具体差异在哪里。如:噪音等;
  • 尝试把训练数据变得更像开发集,或者收集更多的类似开发集和测试集的数据,如增加噪音;
3、迁移学习


简单的解释就是假如我们之前训练好了一个喵咪分类器,后来我们有了新任务——做一个海豚分类器,那么就可以将之前创建的喵咪分类器模型运用到新任务中去。

一般来说,如果想将A模型运用到B模型,需要满足下面一些条件

  • A和B需要有相类似的输入数据集,例如要么都是图像识别,要么是语音识别
  • A的数据集要足够多,即远多于B
  • A中学到一些low level features要对B有所帮助

4、多任务学习

在多任务学习中,我们的子任务是并行处理的。例如在无人驾驶过程中,需要同时识别人,红绿灯以及其他各种物体。

最后的 ŷ  是一个有4元素的向量,假设分别是行人、汽车、停车标志、信号灯。如果识别出图片中有哪一个元素,对应位置则输出1。这跟softmax要进行区分,softmax只是一次识别一种物体,比如说识别出是行人,则输出[1,0,0,0],而不会说同时识别出行人和信号灯。

5、端到端的学习

相对于传统的一些数据处理系统或者学习系统,它们包含了多个阶段的处理过程,而端到端的深度学习则忽略了这些阶段,用单个神经网络来替代。

吴大大举了个语音识别的例子,感兴趣的可以去找视频看一下。

一般来说,在少数据集的情况下传统的特征提取方式可能会取得好的效果;如果在有足够的大量数据集情况下,端到端的深度学习会发挥巨大的价值。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlexJunCpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值