【吴恩达深度学习笔记】3.1机器学习策略Machine Learning strategy

第三门课 结构化机器学习项目(Structuring Machine Learning Projects)

1.1为什么是ML策略(Why ML Strategy?)

改善系统的方式:
在这里插入图片描述

1.2正交化(Orthogonalization)

正交意味着互成90度,设计出正交化的控制装置,各个参数单独调试互不干扰,最理想的情况是和实际想控制的性质一致,这样调整参数时就容易得多。
在这里插入图片描述

1.3单一数字评估指标(Single number evaluation metric)

评估分类器的一个合理方式是观察它的查准率(precision)和查全率(recall)。查准率的定义是在分类器标记为猫的例子中,有多少真的是猫。如果分类器有95%的查准率,意味着分类器说这图有猫的时候,有95%的机会真的是猫。查全率是对于所有真猫的图片,分类器正确识别出了多少百分比。如果分类器查全率是90%,意味着对于所有的图像,比如说开发集都是真的猫图,分类器准确地分辨出了其中的90%。

结合查准率 P P P和查全率 R R R的标准方法是 F 1 F_1 F1分数, F 1 F_1 F1分数是查准率和查全率的调和平均数。 F 1 F_1 F1分数就是一个单实数评估指标,可以提高决策效率。 F 1 = 2 1 P + 1 R F_1=\frac{2}{\frac{1}{P}+\frac{1}{R}} F1=P1+R12

1.4满足和优化指标(Satisficing and optimizing metrics)

通过定义优化和满足指标,就可以给你提供一个明确的方式,去选择“最好的”分类器。如果要考虑 N N N个指标,有时候选择其中一个指标做为优化指标是合理的。所以你想尽量优化那个指标,然后剩下 N − 1 N-1 N1个指标都是满足指标,意味着只要它们达到一定阈值,例如运行时间快于100毫秒,但只要达到一定的阈值,你不在乎它超过那个门槛之后的表现,但它们必须达到这个门槛。

假设你正在构建一个系统来检测唤醒语(触发词),这指的是语音控制设备。比如亚马逊Echo,你会说“Alexa”。你可能也需要顾及假阳性(false positive)的数量,就是没有人在说这个触发词时,它被随机唤醒的概率有多大?这种情况下,组合这两种评估指标的合理方式可能是最大化精确度。当某人说出唤醒词时设备被唤醒的概率最大化,必须满足24小时内最多只能有1次假阳性。所以在这种情况下,准确度是优化指标,每24小时发生一次假阳性是满足指标,你只要每24小时最多有一次假阳性就满足了。

1.5训练/开发/测试集划分(Train/dev/test distributions)

机器学习工作流程是,你尝试很多思路,用训练集训练不同的模型,然后使用开发集来评估不同的思路,然后选择一个,然后不断迭代去改善开发集的性能,直到最后可以得到一个令你满意的成本,然后你再用测试集去评估。其中开发(dev)集也叫做开发集(development set),有时称为保留交叉验证集(hold out cross validation set)。

开发集和测试集来自同一分布,数据随机分配到开发集和测试集。就是设立开发集加上一个单实数评估指标。

1.6开发集和测试集的大小(Size of dev and test sets)

这部分内容在之前的blog中记录过了

1.7什么时候改变开发/测试集和指标(When to change dev/test sets and metrics)

分类错误率指标: 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 ) ≠ y ( i ) } Error=\frac{1}{m_{dev}}\sum^{m_{dev}}_{i=1}w^{(i)}I\{ y^{(i)}_{pred} \neq y^{(i)}\} Error=mdev1i=1mdevw(i)I{ypred(i)=y(i)}

m d e v m_{dev} mdev是开发集例子数, y p r e d ( i ) y^{(i)}_{pred} ypred(i)是预测值,值为0或1,符号 I I I表示一个函数,统计出里面这个表达式为真的样本数,所以这个公式统计了分类错误的样本。 w ( i ) w^{(i)} w(i)是权重项,如果图片 x ( i ) x^{(i)} x(i)不是不想要的图片,则 w ( i ) = 1 w^{(i)}=1 w(i)=1,如果 w ( i ) w^{(i)} w(i)是不想要的图片,设置其为大的权重10或者100,这样错误率这个项快速增大。如果想要归一化常数,技术上就是 w ( i ) w^{(i)} w(i)对所有 i i i求和,这样错误率仍在0到1之间,即: E r r o r = 1 ∑ w ( i ) ∑ i = 1 m d e v w ( i ) I { y p r e d ( i ) ≠ y ( i ) } Error=\frac{1}{\sum w^{(i)}}\sum^{m_{dev}}_{i=1}w^{(i)}I\{ y^{(i)}_{pred} \neq y^{(i)}\} Error=w(i)1i=1mdevw(i)I{ypred(i)=y(i)}

处理机器学习问题时应该分成两个独立的步骤。第一步是如何定义一个指标来衡量事情的表现,然后分开考虑如何改善系统在这个指标上的表现。第二步是如何优化系统来提高这个指标评分。比如改变神经网络要优化的成本函数 J J J

1.8为什么是人的表现(Why human-level performance?)

在这里插入图片描述
当继续训练算法时,可能模型越来越大,数据越来越多,但是性能无法超过某个理论上限,这就是贝叶斯最优错误率(Bayes optimal error)。贝叶斯最优错误率是理论上可能达到的最优错误率,就是说没有任何办法设计出一个 x x x y y y的函数,让它能够超过一定的准确度。而贝叶斯最优错误率有时写作Bayesian,即省略optimal,就是从 x x x y y y映射的理论最优函数永远不会被超越。

1.9可避免误差(Avoidable bias)

贝叶斯错误率或者对贝叶斯错误率的估计和训练错误率之间的差值称为可避免偏差。你可能希望一直提高训练集表现,直到接近贝叶斯错误率,但理论上是不可能超过贝叶斯错误率的,除非过拟合。而这个训练错误率和开发错误率之前的差值,就大概说明算法在方差问题上还有多少改善空间。
在这里插入图片描述

1.10理解人的表现(Understanding human-level performance)

“人类水平错误率”用来估计贝叶斯误差,那就是理论最低的错误率,任何函数不管是现在还是将来,能够到达的最低值。在定义人类水平错误率时,要弄清楚目标所在,如果要表明可以超越单个人类,那么在某些场合部署你的系统,也许这个定义是合适的。但是如果目标是替代贝叶斯错误率,那么这个定义理论最低错误率才合适。到贝叶斯错误率估计值的差距,告诉你可避免偏差问题有多大,而训练错误率和开发错误率之间的差值告诉你方差上的问题有多大,你的算法是否能够从训练集泛化推广到开发集。

1.11超过人的表现(Surpassing human-level performance)

机器学习进展会在接近或者超越人类水平的时候变得越来越慢。如果算法的错误率已经比一群充分讨论辩论后的人类专家更低,那么依靠人类直觉去判断算法还能往什么方向优化就很难了。

1.12改善模型的表现(Improving your model performance)

在这里插入图片描述

错题

开发集和测试集是属于同一分布的,两者的错误率相差很大说明对开发集适应的太好,过拟合了,从而导致对测试集测试的不好。改善的策略有很多,为了防止过拟合,可以增加开发集大小等。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值