深度学习第三课 结构化机器学习项目
第一周 机器学习策略
1.1 什么是机器学习策略
即用来调整机器学习准确率的各种策略。
1.2 正交化
一个按钮就控制一个功能,彼此互不影响。
现在系统已经满足了一个条件,要让系统满足第二个条件,但是要尽量满足第一个条件。
1.3 单一数字评价指标
顾名思义,为你的深度学习系统设置一个单一实数指标。
查全率
召回率
F1分数=查全率和召回率的调和平均。
1.4 满足和优化指标
所以更一般地,如果你有𝑁个指标,有时候选择其中一个指标做为优化指标是合理的 。尽可能优化那个指标,然后剩下的N-1个指标只要满足一定阈值就可以了。
1.5 训练/开发/测试集划分
打混你的训练集和测试集,使得你的训练集和测试集尽量同一分布。
否则,你的工作可能就变成了徒劳。开发集上的是一个目标,结果实际测试集是另一个目标。
1.6 开发集和测试集的大小
传统6/2/2已经不再适合了,现在的数据集都非常大,可以设置98/1/1。
1.7 什么时候改变开发测试指标
关注实际表现,及时更改开发指标。
1.8 人的表现
贝叶斯最优错误率:当你训练算法时,可能模型越来越大,数据越来越多,但是性能无法超过某个理论上限。
一般认为,人类在某些任务中,非常接近贝叶斯最优错误率。
当算法超越人类表现时,就很难再继续前进了。
1.9 可避免偏差
可避免偏差:训练集错误率和贝叶斯错误率的差。
还有一个偏差:开发集和训练集误差。
当你的可避免的误差大于第二个偏差时,你应该优化Bias。
当你的第二个误差过大时,说明你的模型可能过拟合,优化variance。
1.10 理解人的表现
用人类水平错误率来估计贝叶斯偏差。
1.11 超过人的表现
机器学习进展,会在接近或超越人类水平时候变得来慢。
1.12 改善你的模型表现
第二周 机器学习策略2
2.1 进行误差分析
比如说一个猫分类器,有90%的正确率。这时候你去查看分类错误的图像,发现你的分类器把一些狗的图像分为了猫。这时候,取100张分类错误的图像,假设里面有5张是狗,即使你针对狗去优化,最终正确率只能上升至90.5%。
再比如说,你对你的误差原因有很多的想法。列个表格,找个错误集人工标注一下,然后找到最多的错误原因,再针对这个错误原因去优化,效果会好得多。
2.2 清除标注错误的数据
在训练集的随机错误可以不管。
开发集/测试集上的错误如果严重影响你评估算法的能力,那么你就应该花时间去去修正错误的标签。
在如果你决定去修正开发数据,手动检查标签,并尝试修正一些标签,这里有一些额外的方针和原则需要考虑:
- 修正手段同时作用到开发集和测试集上
- 同时检验算法判断正确和判断错误的样本
2.3 快速搭建你的第一个系统,并进行迭代
如标题,如果你正在开发全新机器学习应用,你应该尽快建立你的第一个原型,然后快速迭代。
你的主要目标并不是发明全新的机器学习算法,而是弄出有用的系统。
所以我鼓励你们搭建快速而粗糙的实现 ,冉后用它做偏差/方差分析、错误分析,根据分析结果确定下一步优先要做的方向。
2.4 在不同的划分上进行训练并测试
训练集和实际用户提供数据不一样怎么办?
瞄准你的目标,将开发集和测试集替换为实际数据,训练集也要加上大部分实际数据。而不是加一些到原有数据再随机分布。
2.5 数据不匹配的偏差和方差的分析
当你的测试集和训练集来自不同分布时,你就不能很好的判断到底是你的模型泛化能力不够还是数据不匹配导致的问题。
解决技巧:拿出训练集上的一部分数据,作为训练-开发集。这样我们就得到了和训练集同分布的数据集。在拿出数据后的训练集进行训练。如果在训练-开发集上的误差还是很大,那么我们有理由相信,模型泛化能力不够,有一个方差问题。
2.6 定位数据不匹配
如果出现数据不匹配问题,我建议你做误差分析,看看训练集和开发集的区别,试图找出这两个数据分布不同,然后尽可能地多增加像开发集的数据作训练。
其中一个办法就是人工数据合成。在语音识别中,你可以将一段清晰的声音和一段噪音相合成。记住,当你使用人工人工合成数据时,一定要谨慎,你可能从所有可能性的空间中选取了很小一部分去模拟,这样的生成子空间还是很小,很可能出现过拟合现象。(比如游戏中车辆大部分都是合成的,可能只有20辆独立车辆,现实情况不仅仅如此)
2.7 迁移学习
在深度学习中,最强大的一个理念之一就是,有时候神经网络可以从一个任务中习得知识,并将这些知识应用到另一个独立的任务中。
你只需要把神经网络的最后一个输出层拿掉,把进入到最后一层的权重删掉,重新赋予权重,然后在新的数据集上训练即可。
有意义的迁移学习:
- 任务A和任务B都有相同的输入
- 任务A有更多的训练数据
- A的浅层次特征可以帮助B的学习
2.8 多任务学习
就是向量学习。比如无人驾驶,需要从一幅画面上检测行人,交通信号牌,道路等等。
2.9 端到端学习
人脸检测:一步到位(端到端)以及先检测人脸位置,再检测身份。