2022吴恩达机器学习(Deep learning)课程对应笔记28
机器学习开发过程的迭代
更新时间:2023/03/26
机器学习发展迭代的过程:
- 选择模型的特征
- 训练模型
- 诊断模型(偏差,方差和误差分析)
下面以垃圾邮件分类为例:
- 构建一个垃圾分类器,构建的特征是排名前10000个用于计算的词
误差分析
误差分析在实际的建模中是较有用的一个方法,如下例,如果你有一个500个样本大小的验证集,错误分类了100个样本,那么你可以去分析这些样本中有什么共同特性,然后针对它们的共同特性来设计更有针对性的特征。
数据增强
介绍一下数据增强这个概念和怎么样做数据增强。
数据增强:修改现存的数据集,尝试扩大训练集数据。
- 图像:旋转,裁剪,缩放,翻折等
- 语音:添加人群的噪音,添加汽车的噪音,添加一个不好的手机连接的音频
- 通用:人工智能合成数据集
传统的AI是以模型为中心的,现在的AI是以数据为中心的方法
迁移学习
迁移学习就是借助已经训练好的模型的参数,在这些参数的基础上,再训练新的参数。有下面两种迁移学习的方式
- 只训练输出层的参数。(如下图绿色的 W [ 5 ] , b ⃗ [ 5 ] W^{[5]},\vec{b}^{[5]} W[5],b[5])
- 训练所有层的参数。(以已训练好的模型的参数作为新模型参数的初始化)
不同层的功能是作用不一样,如下,有的层专用于检测边缘(edges),有的用于检测角落(corners),有的用于检测曲线(curves)。
迁移学习的步骤总结
- 下载带有参数的神经网络,这些参数已经在与算法相同输入类型的大模型数据集(文本,图像,音频)上预先训练过了。
- 进一步训练(微调)这个网络,在你自己的数据集上。
下面介绍下一个完整的机器学习系统的工作周期。以语音识别为例。
- 定义你的项目范围
- 收集对应的数据
- 训练模型,误差分析和迭代提升
- 部署在产品上
部署模型
怎么进行模型部署呢,假设有一个移动app,你可以调用API连接到你的推理服务器(Inference server)的机器学习模型,然后吧模型的预测结果返回到移动app端。
处理倾斜数据集
一般的数据集中,很有可能会出现数据倾斜的现象,比如你在用你的机器学习算法来做一个癌症检测的案例,你的机器学习算法可以达到99%的准确率,但是数据集中99.5%的人都是没有这种癌症的,因此我如果固定预测结果为 y = 0 y=0 y=0那就表示我可以达到99.5%的准确率。比精心设计的算法正确率还要高,显然这是不合理的一个衡量标准。
下面介绍精确率(precision)和召回率(recall)。 具体得了解下图所示的几个指标:正阳性(TP),假阳性(FP),假负例(FN),真负例(TN)。
- p r e c i s i o n = T P T P + F P precision=\frac{TP}{TP+FP} precision=TP+FPTP
- r e c a l l = T P T P + F N recall=\frac{TP}{TP+FN} recall=TP+FNTP
- 即使面对数据倾斜度非常高的数据集时,如果精确率和召回率很高,那么可以自信的认为你的机器学习算法很不错!
精确率和召回率的权衡
那么精确率和召回率怎么做权衡呢,下面介绍:
如下图的例子,在一个逻辑回归任务中,
- 如果我们将阈值从0.5提高到0.7,那么意味着会得到更高的精确率,更低的召回率。
- 如果我们将阈值从0.5降低到0.3,那么意味着会得到更低的精确率,更高的召回率。
那么怎么权衡精确率和召回率呢,答案是F1得分。
F 1 s c o r e = 1 1 2 ( 1 P + 1 R ) = 2 P R P + R F_1\ score=\frac{1}{\frac{1}{2}(\frac{1}{P}+\frac{1}{R})}=2\frac{PR}{P+R} F1 score=21(P1+R1)1=2P+RPR
本课程的笔记更新就到这里啦,后续的决策树、k-means等视频对应的更新,将结合周志华老师的机器学习(西瓜书)来讲解。后续会手推西瓜书中的公式。欢迎大家关注!下面是我的公众号也欢迎大家来领取资料,共同学习,共同进步。