第二课 week3
文章目录
1.1 Debug
1.2 模型评估
当变量增多时,绘制曲线查看模型效果的方法不太现实,所以需要更系统的方法来评估模型的表现。
1)线性回归问题
注意:误差公式不包含正则化项
模型在训练集上误差较小,但是在测试集上会与实际值有一定差距,即该模型泛化能力较弱。
2)分类问题
不使用逻辑损失来计算测试误差,而是使用训练误差来衡量测试集的分数和算法错误分类训练集的分数。
1.3 模型选择 交叉验证
训练集的误差是对泛化误差是乐观的估计。
- 训练集用来训练参数 w w w 和 b b b ,而测试集用来选择多项式模型(即参数 d d d ),训练集不能评估 w w w 和 b b b 的好坏,类似的测试集也不能用来评估参数 d d d 的好坏
- 用 test 数据选择模型意味着选择的最适合test上数据的模型,再用 test 集去测试误差,那么结果一定是乐观的
引入交叉验证集,使用交叉验证集来检查不同模型的有效性或准确性。
选择模型的时候使用验证集!!!
看泛化能力(评估模型)用测试集!!!
2.1 偏差 方差
查看算法在训练集合交叉验证集上的性能是能系统的方法。
算法具有高偏差的有力指标:训练集代价函数值高
高偏差:训练集误差和验证集误差都很大。
高方差:训练集误差小,验证集误差大。
高偏差和高方差可能会同时出现。高偏差意味着即使训练集上表现不好,高方差意味着在交叉验证集上做得更差。
2.2 正则化 偏差 方差
λ λ λ 的不同取值的影响:
- λ λ λ 过大,导致 w w w 和 b b b 极小,近似为直线,欠拟合
- λ λ λ 过小,则平衡过拟合的效果差,导致过拟合
2.3 性能评估基准
示例:语音识别
10%的错误率看起来很高,但是实际上和人类识别的准确率相比非常接近,因为数据集中有的语音示例模糊不清。
Baseline的选择:
2.4 学习曲线
随着训练集规模的增加,模型变好,模型的交叉验证错误下降。
随着训练集规模的增加,模型无法完美的拟合每一个示例,模型的训练错误上升。
欠拟合:即使数据增加,模型效果也不会有明显的提升,仍然与人类的水平有一定的差距。
过拟合:随着数据增加,验证集的错误将下降并且不断接近训练集的错误。
如果减小训练集规模,模型会很好的适应训练集(针对过拟合问题),但这会使交叉验证集错误上升,模型性能也会受到影响,所以针对高方差问题,不应该随意丢弃训练样本。
2.5 方差/偏差和神经网络
高方差与高偏差的均衡 tradeoff:
神经网络提供了一种新的思路,可以减少偏差或减少方差,而不需要在二者之间进行权衡。但也有局限性,训练更大的神经网络不会减少偏差,但在有些时候会增加计算成本。
精心选择正则化的大型神经网络通常与较小的神经网络一样好,或者更好。
kernel_regularizer
正则化参数,L1、L2、L3是正则化的三种方法,L1是参数绝对值,L2是参数平方,L3是两者相加。
3.1 机器学习开发迭代
3.2 错误分析
通过查看交叉验证集中的一组错误分类示例(如果交叉验证集过大就从中进行随机采样),并找到他们的共同主题或特征,试图了解算法出错的原因。同时也可以根据特点找到相应的解决方案,并且了解其优先级,比如错误拼写情况少,所以针对该问题去完善意义不大。
注:某一个示例可能同时具备以下多个特征,如医疗推销中也有错误拼写。
但该方法适用于人类也擅长的领域,人类也不擅长的领域里错误分析具有一定难度,如广告点击预测。
3.3 添加更多数据
1)数据增强
如果调节 A 的亮度对比度,但这种程度不能代表测试集看到的内容,因为测试集中不经常获得这样的图像,那么实际上帮助不大。
2)人工模拟
3.4 迁移学习
注意:没有复制 W [ 5 ] 、 b [ 5 ] W^{[5]}、b^{[5]} W[5]、b[5] ,因为该层的维度已经更改,因此需要我们提出新的 W [ 5 ] 、 b [ 5 ] W^{[5]}、b^{[5]} W[5]、b[5] ,需要从头开始训练。
在迁移学习中,可以使用前四层的参数,实际上除输出层之外的所有层作为参数的起点,然后运行优化算法如梯度下降或 Adam 优化算法,使用来自该神经网络的值初始化参数。
具体来说,可以有两种方式。
- 只训练输出层参数:将 W [ 1 ] 、 b [ 1 ] … … W [ 4 ] 、 b [ 4 ] W^{[1}]、b^{[1]}……W^{[4]}、b^{[4]} W[1]、b[1]……W[4]、b[4] 作为顶部的值,将其固定,如何使用优化算法如梯度下降或 Adam 优化算法仅更新 W [ 5 ] 、 b [ 5 ] W^{[5]}、b^{[5]} W[5]、b[5] ,以此来降低成本函数。适用于训练集较小的情况。
- 训练所有参数:但是前四层的参数使用你目前训练出来的值进行初始化。适用于训练集较大的情况。
这种首先在大的数据集进行训练,然后再较小的数据集上进一步调整参数的步骤称为监督预训练。第二步称为微调,在其中获取已初始化或从监督预训练中获得的参数,如何进一步运行梯度下降调整权重适应你自己的数据集。
3.5 机器学习的完整周期
确定项目范围:定义项目
收集数据:确定需要的数据、收集数据、获取标签
训练模型:训练模型,根据错误分析迭代模型,可能需要收集更多数据
在生产环境中部署:部署系统后需要继续监控系统的性能并维护系统,以防性能变差。模型没有按照预期的效果工作时,需要回去训练模型进行改进,甚至回去获取更多的数据。
3.6 公平、偏见、伦理
4.1 倾斜数据集的误差指标
误差最小的预测可能不是特别有用的预测。
针对偏斜数据集问题时,通常使用不同的误差度量,而不仅仅是分类误差来确定学习算法的性能。
示例:罕见病预测
4.2 精确率与召回率的权衡
提高阈值可能会导致召回率下降,因为预测的病人数量减少了。
降低阈值可能会导致精确率下降,因为现在的条件更宽松。