吴恩达深度学习 第三门课 结构化机器学习项目(笔记)

ML策略

优化你的机器学习系统:吴恩达的经验教你少走弯路

正交化

正交化是一种控制变量的思想,是指你可以想出不同的维度来专门调节不同的对结果的影响,类似于显示器上不同的按钮调节亮度、分辨率等等。

单一数字评估指标

找到一个单实数评估指标,相当于找到一个目标,会进展很快。
例如F1 score:它是综合了查全率和查准率, 2 1 P + 1 R \frac{2}{\frac{1}{P}+\frac{1}{R}} 不同的模型查全率和查准率可能各有好坏,实际上我们要做一个权衡,权衡的方式就是F1score,不同于简单的算术平均。

满足和优化指标

考虑不同的分类器会有不同的准确率和运行时间

我们可以将准确度和运行时间组合成一个整体评估指标,比如成本 c o s t = a c c u r a c y 0.5 r u n n i n g T i m e cost=accuracy-0.5*runningTime 表示我们对两者中哪个更看重,当然我们也可以设定一个阈值,比如时间在100ms以下就可以只考虑准确率。
当然也可能考虑假阳性,例如做一个唤醒系统,“hi,siri”,除了考虑说出触发词唤醒的准确率,我们还可以考虑没有说出触发词唤醒的次数,这里其实和查全率查准率相似,设立24小时内错误唤醒的次数最多只能有一次。
总结一下就是将你关注的多个指标通过一定的方式组合成一个,达到全自动的方法评估,只看组合后的指标。

训练/开发/测试集划分

用训练集训练不同的模型,用开发集(dev=development set -保留交叉验证集-hold out cross validation set)评估不同的思路,然后选择一个,不断迭代开发集的性能,得到一个满意的成本,最后用测试集评估。

考虑如下,我们在多个区域使用猫分类器,我们需要将各个区域的数据打乱,然后划分训练集/dev/测试集,保证三个数据集属于同分布,并且能够反映未来会得到的数据。

改变开发/测试和定义一个新的评估指标

举一个例子,假如模型是识别猫的照片并推送给用户,A的错误率为3%,B的错误率为5%,但是发现A会把很多色情图片分类为猫,这里显然A模型是不能接受的,这个时候我们需要改变评估指标了。我们在评估模型时,可以写成这样 E r r o r = 1 m d e v i = 1 m d e v I ( y p r e d n o t = y ) Error=\frac{1}{m_{dev}}\sum_{i=1}^{m_dev}I(y_{pred}not=y) 上述表示统计的错误样本的比率。
当我们把色情图片的问题考虑到评估指标 E r r o r = 1 m d e v i = 1 m d e v w i I ( y p r e d i n o t = y i ) Error=\frac{1}{m_{dev}}\sum_{i=1}^{m_dev}{w^{i}}I(y_{pred}^{i}not=y{i}) 添加一个权重项 w i w^{i} ,当为错误样本且为色情图片时,我们可以设置为10,当为普通的错误样本设为1,相当于将把色情图片识别为猫的惩罚加大十倍。如果我们想要得到归一化结果可以使用 E r r o r = 1 w i i = 1 m d e v w i I ( y p r e d i n o t = y i ) Error=\frac{1}{\sum_{w^{i}}}\sum_{i=1}^{m_dev}{w^{i}}I(y_{pred}^{i}not=y{i}) 这样可以保证错误率仍在区间 ( 0 , 1 ) (0,1)
因而我们在处理机器学习问题时,通过两步,第一步是弄清楚如何定义一个指标来衡量模型的表现,第二步是逼近目标,优化参数修改指标。
继续刚才的例子,假如两个模型A和B错误率率分别为3%和5%,然后实际应用时,由于用户上传的照片图像质量较差,这是你会发现模型B表现较好,那么我们就需要修改指标或者开发集(dev)

为什么是人的表现


当一个算法表现比人类好时,性能会逐渐达到某个理论上限,这就是贝叶斯最优错误率(bayes optional error),是指理论上可以达到的最优错误率

可避免偏差–偏差策略还是方差策略

我们以猫分类器为例,如果训练集和测试集错误率分别为8%和10%,我们会倾向与减少偏差,因为与人类1%的错误率相比,模型拟合并不好。因而我们可以训练更大的神经网络,或者跑久一点梯度下降。
在之前的方差和偏差的讨论中,我们是假设贝叶斯误差接近0,如果合理一点,我们可以考虑人类的正确率,因为人类能做到的水平和贝叶斯错误率相差不远。所以我们可以把贝叶斯错误率和训练错误率的差值定义为可避免误差。因而在下图中,关注于解决2%的方差空间更大

理解人的表现

我们以下图为例,在考虑人类水平错误率的界定时,考量的准则是把它作为贝叶斯错误率的替代或估计

关于改善模型的表现

总体原则:考量是减少偏差还是方差。然后对症下药

未完待续…

本文参考:
[第三门课 结构化机器学习项目](http://www.ai-start.com/dl2017/html/lesson3-week1.html

猜你喜欢

转载自blog.csdn.net/weixin_40548136/article/details/86437657