结构化机器学习项目开发guidelines小结

本文总结了吴恩达在Coursera的结构化机器学习项目课程,包括模型评估方法、错误结果分析、训练集与验证集分布不同时的结果分析以及迁移学习和多任务学习。强调了错误结果分析在指导模型改进中的作用,以及如何处理训练集与验证集分布不一致的情况。此外,介绍了迁移学习的基本原则和多任务学习的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这篇文章是对吴恩达老师在Coursera平台发布的Deep learning 专项课程的的第三部分Structuring Machine Learning Projects课程的总结,并在此基础上加入了一些个人的思考。这一部分主要讲述了在系统的进行机器学习项目开发的过程中,应该如何设计模型的目标,以及如何对错误结果进行分析,下一步应该采取怎样的做法等等。

总结在这里是为了方便日后的学习,由于个人的才识有限,若是在阅读过程中发现了错误,欢迎批评指教。

模型评估方法

1.单指标评估

选取一个单一的数字指标来评价我们的一众模型的优劣程度,这个选取的指标要具有代表性。

比如我们Precision 和 Recall 两个数字指标都在某个角度反映了模型的性能,但二者是不可兼得的,因此我们可以选取F1 score这个指标(类似于前面两个指标的平均)来综合评估模型的好坏。

2.多指标评估

我们从不同的角度可以对模型提出不同的要求,当这些要求都需要满足的时候,则称为对模型的多指标评估。

此时我们需要挑选一个最为重要的最需要满足的的指标作为最优化指标(Optimizing),而其他的指标作为需满足的指标(Satisficing)。也就是说,此时的最优模型应该是那个既满足那些需要满足的指标,同时又在最优化指标上表现最好的的那个模型。

错误结果分析(error analysis)

当完成一次模型的训练后,对测试集中出现错误的样本进行分析是有必要的,它能指导我们进行下一步的决策。
以分类问题为例,典型的分析方法如下:

  • 随机选取少量测试集中的出错样本
  • 对样本中不同的错误类型进行计数。比如分类结果错误的把B,C,D类物品认定成为目标物品A,则分别统计B,C,D类错误出现的次数。
  • 如果考虑人工错误(测试数据本身的标签是错的),也可单独计算错误标签的次数

不同类型错误所占的比例,标志着我们下一步是否该针对这类错误进行改进,以及如果改进某种错误能使模型性能提升的上限是多少。

训练集与验证集分布不同时的结果分析

什么时候会发生训练集与验证集的数据分布不同,或者说数据很不相似呢?

以自动驾驶技术为例,如果由目标汽车自行拍摄的路况照片数量较小的话,我们的训练集可能会选取来自网络的数量庞大的路况图片,而使目标汽车自行拍摄的路况照片作为验证集。此时我们得出的训练集错误率和验证集错误率,二者的差别可能是由两种原因造成的。一是因为model对训练集产生了过拟合,二是因为训练集和验证集的数据来源很不同。那到底两种原因究竟哪个是主要原因呢?

解决办法是引入一个新的数据集training-dev set,见名知意,就是从之前的训练集中单独抽取一部分数据,在这个抽取的数据及上同样统计错误率。

  • 极限误差(人工误差)和training set错误率的差值标志着模型对训练集的偏离程度
  • training set 和training-dev set 间的错误率之差标志着模型对训练集过拟合的程度
  • training-dev set和dev set间的错误率差值标志着训练集和验证集数据来源不同产生影响的程度

顺便一提,要改正数据不匹配的问题时,如果采用人工合成一些目标数据的方法,要小心模型对人工数据产生过拟合。

迁移学习和多任务学习

迁移学习(transfer learning):我们已经完成了任务A的模型训练,如果想将得到的模型应用于另一个任务B时,寻要满足两个条件,

  • A与B属于同类型的问题,比如均为图像处理,或均为语言处理
  • A的量级要大于B的量级
    此时可以保留模型A的前面若干层的结构和参数,重新修改后面几层的结构和参数,使其应用于问题B。此时相对B而言,任务A的训练可以称为pre-training,而任务B对模型的修改则成为fine tuning(微调)。

迁移学习的依据何在?相同数据的底层信息是很类似的,比如A和B均为图像处理领域的问题,输入数据都是图像,则图像的底层信息(点线面)地提取过程是类似的,而神经网络的靠前的层次恰恰可以理解为是对底层信息的提取,因此可以使A的模型稍作修改后迁移到任务B上。

多任务学习(multi-task learning):举例来说,对于自动驾驶技术的模型,如果我们的训练是判断输入图片是否含有汽车这么一个非黑即白的问题的话,这就是一个单任务学习过程,相反,如果我们的训练要求同时判断输入图片是否含有汽车,是否含有行人,是否含有指示灯等多个问题的话,这就是一个多任务学习的过程。

输入输出(多个标签)
一张路况照片(是否有汽车,是否有行人,是否有信号灯)
多任务学习的输入输出

多任务学习的使用条件:

  • 多个任务的类型是相似的,共享一些底层信息
  • 针对每个任务的数据总量是接近的
  • 可以保证运行足够大的神经网络

PS.迁移学习的应用很常见,而多任务学习则很少用到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值