吴恩达深度学习第三课第二周 机器学习策略(2)

1.进行误差分析

假如我们训练了一个神经网络用来对猫狗进行识别,最后我们得到了一个90%的准确率,我们观察错误数据,发现有一些狗被错误的识别成了猫。

那我们接下来该怎么办?要再写一个狗的判断器吗?我们应该查看所有的错误,观察我们当前解决什么能达到最大的优化效果。

假如我们得到了上表,显然处理狗不是一个最好的选择,或许我们应该选择处理一下模糊图片(61%)和狮子这一类的大型猫科动物(43%)。

因为如果我们处理狗,只在10%的8%出现了狗的问题,即使花费大力气解决了这个问题,优化的也不过是0.8%,不如其他优化项效率高。

2.清除标注错误的数据

由于数据是人标注的,不免要出现错误,对于偶发的错误,事实上网络有很好的鲁棒性,可以规避掉这些错误,而对于系统性的错误:比如标注者是个色盲,所有的红色都被标注成了绿色,这时候我们就需要重新对数据集进行标注。

同样,对于数据集上的错误,如果我们想改进数据集,一样设置表格来寻找当前效率最高的优化项。

3.快速搭建你的第一个系统,并进行迭代

我们一开始的目的并不是建立一个完善的网络,就像敏捷开发一样,刚开始建立一个最小可执行版本,然后慢慢迭代改进。

这里也一样,先建立一个可用的网络,然后根据表格来判断改进方向慢慢迭代。

4.使用来自不同分布的数据进行训练和测试

现在有一个问题就是我们要进行用户在手机上传的猫图片识别,我们从搜索引擎抓取了大量的猫图片,但是用户上传的往往清晰度不是很高。

前面的我们有20w张,而后者我们只有1w张,这时候我们怎么分布训练。

如果像我们之前的说法,可能我们就将这21w张图片打乱然后按照422或者其他比例分配,但是这样的话最后测试集中我们的最终目标——识别模糊猫,的测试数据又太少,不足以表示网络对模糊的猫的识别程度。

因此我们将测试集和交叉验证集均设置成2500张(或更多)模糊图片,其他的作为训练集,这样进行训练,然后使用交叉验证集进行调整。

5.数据分布不匹配时,偏差与方差分析

如果我们使用上面的数据分类方法,那么不就又成了训练集与交叉验证集(测试集)的数据分布不匹配吗?怎么分析偏差与方差?

我们再添加一个train-dev数据集,与训练集同分布,这样我们在分析的时候就可以比较出偏差与方差了

因为training set和training-dev set同分布,比较这两个就可以比较出方差问题,用例human 和training可以比较出偏差问题。而dev(test)和training-dev则可以用来发现网络对目标的适应情况。

6.迁移学习

迁移学习是当我们完成了一类任务而有另一类相似任务从而使用已经完成的网络进行训练的思想,也叫预训练。

比如我们要做一个x光的图像处理网络,但是x光数据太少了,因此我们可以用已经使用数十万张图片训练过的网络,重新定义输出层(也可以继续添加隐藏层)来进行训练,这样往往也有一个比较好的效果。

当然迁移学习也是有限制的,首先就是必须是相关问题,其次预训练的数据集比最终任务要大很多。

测验

你受雇于一家创业的自动驾驶的创业公司。您负责检测图片中的路标(停车标志,行人过路标志,前方施工标志)和交通信号标志(红灯和绿灯),目标是识别哪些对象出现在每个图片中。例如,上面的图片包含一个行人过路标志和红色交通信号灯标志。

1.您的100,000张带标签的图片是使用您汽车的前置摄像头拍摄的,这也是你最关心的数据分布,您认为您可以从互联网上获得更大的数据集,即使互联网数据的分布不相同,这也可能对训练有所帮助。你刚刚开始着手这个项目,你做的第一件事是什么?假设下面的每个步骤将花费大约相等的时间(大约几天)。

  1. 花几天时间去获取互联网的数据,这样你就能更好地了解哪些数据是可用的。
  2. 花几天的时间检查这些任务的人类表现,以便能够得到贝叶斯误差的准确估计。
  3. 花几天的时间使用汽车前置摄像头采集更多数据,以更好地了解每单位时间可收集多少数据。
  4. 花几天时间训练一个基本模型,看看它会犯什么错误。

4。

2. 您的目标是检测道路标志(停车标志、行人过路标志、前方施工标志)和交通信号(红灯和绿灯)的图片,目标是识别这些图片中的哪一个标志出现在每个图片中。 您计划在隐藏层中使用带有ReLU单元的深层神经网络。 对于输出层,使用Softmax激活将是输出层的一个比较好的选择,因为这是一个多任务学习问题,对吗?

不对,因为监测结果并不止有一个输出(多任务学习)

3. 你正在做误差分析并计算错误率,在这些数据集中,你认为你应该手动仔细地检查哪些图片(每张图片都做检查)?

  1. 随机选择10,000图片
  2. 随机选择500图片
  3. 500张算法分类错误的图片。
  4. 10,000张算法分类错误的图片。

3。

4. 在处理了数据几周后,你的团队得到以下数据:

  • 100,000 张使用汽车前摄像头拍摄的标记了的图片。
  • 900,000 张从互联网下载的标记了道路的图片。

每张图片的标签都精确地表示任何的特定路标和交通信号的组合。 例如[1,0,0,1,0]T, 表示图片包含了停车标志和红色交通信号灯。

因为这是一个多任务学习问题,你需要让所有y(i)向量被完全标记。 如果一个样本等于 [0,?,1,1,?] 那么学习算法将无法使用该样本,是正确的吗?

错误。

5.你所关心的数据的分布包含了你汽车的前置摄像头的图片,这与你在网上找到并下载的图片不同。如何将数据集分割为训练/开发/测试集?

  1. 将10万张前摄像头的图片与在网上找到的90万张图片随机混合,使得所有数据都随机分布。 将有100万张图片的数据集分割为:有60万张图片的训练集、有20万张图片的开发集和有20万张图片的测试集。
  2. 将10万张前摄像头的图片与在网上找到的90万张图片随机混合,使得所有数据都随机分布。将有100万张图片的数据集分割为:有98万张图片的训练集、有1万张图片的开发集和有1万张图片的测试集。
  3. 选择从互联网上的90万张图片和汽车前置摄像头的8万张图片作为训练集,剩余的2万张图片在开发集和测试集中平均分配。
  4. 选择从互联网上的90万张图片和汽车前置摄像头的2万张图片作为训练集,剩余的8万张图片在开发集和测试集中平均分配。

3。

6. 假设您最终选择了以下拆分数据集的方式:

您还知道道路标志和交通信号分类的人为错误率大约为0.5%。以下哪项是真的(检查所有选项)?

  1. 由于开发集和测试集的错误率非常接近,所以你过拟合了开发集。
  2. 你有一个很大的数据不匹配问题,因为你的模型在训练-开发集上比在开发集上做得好得多。
  3. 你有一个很大的可避免偏差问题,因为你的训练集上的错误率比人为错误率高很多。
  4. 你有很大的方差的问题,因为你的训练集上的错误率比人为错误率要高得多。
  5. 你有很大的方差的问题,因为你的模型不能很好地适应来自同一训练集上的分布的数据,即使是它从来没有见过的数据。

2,3。

7. 根据上一个问题的表格,一位朋友认为训练数据分布比开发/测试分布要容易得多。你怎么看?

  1. 你的朋友是对的。 (即训练数据分布的贝叶斯误差可能低于开发/测试分布)。
  2. 你的朋友错了。(即训练数据分布的贝叶斯误差可能比开发/测试分布更高)。
  3. 没有足够的信息来判断你的朋友是对还是错。
  4. 无论你的朋友是对还是错,这些信息都对你没有用。

3。

8. 您决定将重点放在开发集上, 并手动检查是什么原因导致的错误。下面是一个表, 总结了您的发现:

在这个表格中,4.1%、8.0%这些比例是总开发集的一小部分(不仅仅是您的算法错误标记的样本),即大约8.0 / 14.3 = 56%的错误是由于雾天的图片造成的。

从这个分析的结果意味着团队最先做的应该是把更多雾天的图片纳入训练集,以便解决该类别中的8%的错误,对吗?

  1. 错误,因为这取决于添加这些数据的容易程度以及您要考虑团队认为它会有多大帮助。
  2. 是的,因为它是错误率最大的类别。正如视频中所讨论的,我们应该对错误率进行按大小排序,以避免浪费团队的时间。
  3. 是的,因为它比其他的错误类别错误率加在一起都大(8.0 > 4.1+2.2+1.0)。
  4. 错误,因为数据增强(通过清晰的图像+雾的效果合成雾天的图像)更有效。

1。

9. 你可以买一个专门设计的雨刮,帮助擦掉正面相机上的一些雨滴。 根据上一个问题的表格,您同意以下哪些陈述?

  1. 对于挡风玻璃雨刷可以改善模型的性能而言,2.2%是改善的最大值。
  2. 对于挡风玻璃雨刷可以改善模型的性能而言,2.2%是改善最小值。
  3. 对于挡风玻璃雨刷可以改善模型的性能而言,改善的性能就是2.2%。
  4. 在最坏的情况下,2.2%将是一个合理的估计,因为挡风玻璃刮水器会损坏模型的性能。

1。

10. 您决定使用数据增强来解决雾天的图像,您可以在互联网上找到1,000张雾的照片,然后拿清晰的图片和雾来合成雾天图片,如下所示:

  1. 只要你把它与一个更大(远大于1000)的清晰/不模糊的图像结合在一起,那么对雾的1000幅图片就没有太大的过拟合的风险。
  2. 将合成的看起来像真正的雾天图片添加到从你的汽车前摄像头拍摄到的图片的数据集对与改进模型不会有任何帮助,因为它会引入可避免的偏差
  3. 只要合成的雾对人眼来说是真实的,你就可以确信合成的数据和真实的雾天图像差不多,因为人类的视觉对于你正在解决的问题是非常准确的。

3。

11. 在进一步处理问题之后,您已决定更正开发集上错误标记的数据。 您同意以下哪些陈述? (检查所有选项)

  1. 您不应更正训练集中的错误标记的数据, 以免现在的训练集与开发集更不同。
  2. 您应该更正训练集中的错误标记数据, 以免您现在的训练集与开发集更不同。
  3. 您不应该更正测试集中错误标记的数据,以便开发和测试集来自同一分布。
  4. 您还应该更正测试集中错误标记的数据,以便开发和测试集来自同一分布。

1,4。

12. 到目前为止,您的算法仅能识别红色和绿色交通灯,该公司的一位同事开始着手识别黄色交通灯(一些国家称之为橙色光而不是黄色光,我们将使用美国的黄色标准),含有黄色灯的图像非常罕见,而且她没有足够的数据来建立一个好的模型,她希望你能用转移学习帮助她。

  1. 她应该尝试使用在你的数据集上预先训练过的权重,并用黄光数据集进行进一步的微调。
  2. 如果她有10,000个黄光图像,从您的数据集中随机抽取10,000张图像,并将您和她的数据放在一起,这可以防止您的数据集“淹没”她的黄灯数据集。
  3. 你没办法帮助她,因为你的数据分布与她的不同,而且缺乏黄灯标签的数据。
  4. 建议她尝试多任务学习,而不是使用所有数据进行迁移学习。

1。

13. 另一位同事想要使用放置在车外的麦克风来更好地听清你周围是否有其他车辆。 例如,如果你身后有警车,你就可以听到警笛声。 但是,他们没有太多的训练这个音频系统,你能帮忙吗?

  1. 从视觉数据集迁移学习可以帮助您的同事加快步伐,多任务学习似乎不太有希望。
  2. 从您的视觉数据集中进行多任务学习可以帮助您的同事加快步伐,迁移学习似乎不太有希望。
  3. 迁移学习或多任务学习可以帮助我们的同事加快步伐。
  4. 迁移学习和多任务学习都不是很有希望。

4。

14. 要识别红色和绿色的灯光,你一直在使用这种方法:

A:将图像x输入到神经网络,并直接学习映射以预测是否存在红光(和/或)绿光y

B:在这个两步法中,您首先要检测图像中的交通灯(如果有),然后确定交通信号灯中照明灯的颜色。

在这两者之间,方法B更多的是端到端的方法,因为它在输入端和输出端有不同的步骤,这种说法正确吗?

错误,A是端到端。

15.在上面的问题中,什么情况方法A比B方法更有效

  1. 大训练集
  2. 多任务学习的问题。
  3. 偏差比较大的问题。
  4. 高贝叶斯误差的问题。

1。


0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注