首页 > 其他分享 >吴恩达机器学习-第二课-第三周

吴恩达机器学习-第二课-第三周

时间:2024-04-20 21:26:24浏览次数:33  
标签:吴恩达 第二课 训练 方差 模型 第三周 拟合 Jtrain 数据

吴恩达机器学习

学习视频参考b站:吴恩达机器学习
本文是参照视频学习的随手笔记,便于后续回顾

如何在机器学习项目中决定下一步做什么

当训练模型后效果并不好,下一步可以考虑:
1.使用更多训练数据
2.使用更少或更多的特征值
3.尝试采用多项式特征值
4.减少或增加正则化参数λ
image
下面会通过诊断判断该进行哪一步

模型评估(Evaluating a model

多维难以判断模型好坏

多特征值不是很好通过图像评估模型好坏
image

训练集与测试集

我们可以将数据集分为两部分,70%为训练集,30%为测试集,以下有具体的符号表示
image
1.先通过训练集的数据通过代价函数最小化参数w,b
2.使用测试集的代价函数训练集的代价函数(除去正则化项)判断模型好坏
image
训练集的代价函数小,但测试集的代价函数高,说明模型只在训练数据集中表现良好,在一些没训练的地方,实际表现不是很好,如下图
image
分类问题中的过程
大致参考回归过程,也可以是下面的方法
通过设定y-hat来分类,如果预估值y-hat不等于实际值y,就是错误分类通过观察训练集和测试集的错误分类数量来判断模型好坏
image
image

模型选择&交叉验证测试集的训练方法

训练集、测试集方法:
通过训练集拟合w,b参数,测试集评估拟合效果,这样的预测效果并不好,因为都是一个数据集里的数据,实际使用并不优秀,那么该如何选择模型?
image
可以通过观察不同阶数多项式的代价函数值,通过测试集测试,选用最小的那个作为模型
这样有一个问题,使用测试集的数据得到的代价函数误差都会小于实际误差
下面会解决这个问题
image
将数据集分为三个部分训练集(Training set),交叉验证集(cross validation set)或称验证集(Validation set),测试集(test set)
下图是符号表示
image
image
你可以使用多个多项式来拟合w,b,在交叉验证集上评估误差,看看哪个最低用哪个
image
然后通过训练不同神经网络架构,选择Jcv最小的一个来使用,最后使用测试集来验证模型效果
image
总结:通过训练集和验证集来拟合、评估模型,最后用测试集测试

模型诊断

通过偏差和方差进行诊断(diagnosing bias and variance

Jtrain很高说明模型有高偏差
Jcv远远高于Jtrain说明模型具有高方差
Jtrain不高并且Jcv也不远高于Jtrain,说明模型较好
image
当多项式的阶数越来越高Jtrain会下降,因为这样会更适应训练数据,但是可能会导致过拟合
当多项式的阶数很低Jtrain会很高,因为这样不能很好的更适应训练数据,会导致欠拟合
但是Jcv随着多项式阶数变化表现为二次函数,所以最低值是模型最适合的,这样Jcv不会很高
image
有时候对数据的训练可能同时出现欠拟合和过拟合
高偏差意味着即使在训练集上做的不好
高方差意味着在验证集上和训练集上表现差很多(训练集好,实际不好
image

正则化如何影响方差和偏差

正则化参数λ很大,会导致欠拟合,高偏差
正则化参数λ很小,会导致过拟合,高方差
image

如何选择一个好的λ值

λ从很小的值开始,每次都加倍,通过拟合后,选择Jcv最小所对应λ值,然后通过测试集观测误差
λ过大,导致欠拟合,模型对训练集的表现不好,高偏差
λ太小,导致过拟合,模型对训练集的表现很好,对测试集表现差,高方差
尝试很多λ的值,最终选择导致Jcv小的
image

性能评估的基准

通过三方面来确定基准
1.人类表现水平
2.竞争算法的表现
3.基于经验猜测
像是下面例子,如果Jtrain远大于基准,就是高偏差,如果Jcv远大于Jtrain,就是高偏差
也有可能会同时出现高方差和高偏差,概率小
image
image

学习曲线(Learning curves)

随着训练集变大,Jtrain会变大,因为阶数限制了不能更好的拟合数据
而Jcv会随着训练集变大而变小,但还是会比Jtrain大
image

高偏差的学习曲线

随着数据量变大,模型并没有太大的改变,所以Jtrain会逐渐变平
image

高方差的学习曲线

Jtrain可能比人类表现水平低或高
如果是高方差,那么增加训练集数据可能会有好处,因为Jcv会变低接近人类表现水平
image
绘制学习曲线缺点:计算成本很高

决定下一步做什么(修订revisted)

解决高方差或高偏差应该做什么:
image
不需要减少训练集的大小,这并不会有任何帮助,会恶化模型

偏差与方差

image
大型的神经网络往往会是低偏差
当训练完模型后可以判断Jtrain的值,如果模型是高偏差就适当增加神经网络的大小,再次训练
如果低偏差就通过验证集验证Jcv,如果有高方差,就适当提高训练集,再次训练,或者使用其他减少高方差的办法
最终会得到比较好的模型,但是神经网络的增大会导致计算成本升高
image
如果你要把小的神经网络扩大,可能会导致过拟合,如果正则化效果较好,也可能会和小神经网络表现一样或更好
image
image
只要适当的正则化,选择更大的神经网络几乎没什么坏处,不过会减慢计算速度

机器学习开发的迭代

机器学习开发迭代的一般步骤

迭代循环
1.选择数据、参数等
2.训练模型
3.诊断
4。做决定下一步干什么
image
示例:垃圾邮件分类
垃圾邮件与正常邮件对比:
image
制作字典,一种方法是某个单词在邮件中出现就设为1,另一种是单词在邮件中出现几次设为几
第一种比较好
image
给予一些数据进行训练,预测y是多少
如果预测的结果y正确率并不高,可以尝试一些方法优化模型,像是下面
通过判断高方差还是高偏差来选择不同的优化方法
image

误差分析(Error analysis

统计100个错误分类的邮件有什么共同的特点(基于数据集大小和时间选择统计数量)
像是都包含drug单词、故意拼写错误、不寻常的路由、盗窃密码、图片嵌入
发现故意拼写错误占的比重不大,要优先解决所占比重大的
优先解决示例中的包含drug字段的问题因为它100个邮件中有21个都是垃圾邮件
可以选择更多的数据,更多包含医疗邮件的来训练,或者更多与医疗相关的单词加入特征值
根据具体的问题思考不同的解决方法
image

添加更多数据(两种方法

添加数据继续训练模型时,可以增加模型做不好的相关数据,像是示例中的医疗垃圾邮件,
也可以通过数据增强:像是判断图像A,可以将图像进行旋转,放大,缩小,增加对比度,镜像后作为输入数据,让模型更好的判断图像A
image
数据增强更高级的示例,在图像A上放一个网格,通过扭曲网格来制造更丰富的A的资源库
image
也可以在语音识别上用,给一段原始音频增加杂音等,让它变的更糟,来增加训练数据
image
对数据做无意义的处理事没有用的,像是给A加噪点,机器实际处理的时候并不是这样储存的
image
另一种方法是数据合成:通过人工数据输入来创造全新的数据示例(using artificial data inputs to create a new training example),(计算机视觉用的多)
以photo OCR为例:读取大屏上的文字
image
通过计算机上的不同字体,不同颜色来合成数据(右图),左图为真实数据
image
image

迁移学习(使用不同任务中的数据-using data from a different task)

迁移学习:像是下图的示例,有1百万个数据集用来训练识别猫狗人车等1000个分类的模型,你现在需要10个输出,只需要替换输出层为更少的神经元(0-9),然后通过两种训练方式重新训练(小数据集),重要的是先前的监督预训练(一百万数据),自己训练的过程使用小模型称为微调(Fine tuning)
方式1.只训练输出层的参数,其他层参数固定
方式2.训练所有层的参数
image

为什么迁移学习有用?

像是图像识别,每一层都识别不同的小形状,学会识别了通用的图像特征,所以也通用与其他图像处理任务
必须是相同类型的模型,适用自己的目标的模型才能微调,其他模型拿过来并不起作用
image

迁移学习的两个步骤

1.下载预训练模型
2.微调
image

机器学习项目的完整周期

确定项目范围->收集数据->训练模型->生产部署
image

部署Deployment

模型部署在推理服务器,app调用API使用模型预测
过程中也需要软件工程的参与
MLOps:机器学习操作--系统地构建和部署实践并维护机器模型
image

公平、偏见与伦理(Fairness,bias,and ethics)

bias-偏见问题

image

Adverse use cases-不良用例

奥巴马口型模仿
image

image

Guidelines-指导方针

1.多元化团队
2.行业标准、指南和文献
3.制定缓解计划
image

倾斜数据集的误差指标(Error metrics for skewed datasets)

如果一个罕见病只有0.5%的人会得,机器判断99%的概率准确,1%错误
当判断出是罕见病输出y=0这并不好
有0.5%错误率的模型之会输出y=0,和有1.2%错误率的模型会判断这是那种罕见病
后者比较好,并不是完全看错误率来判断模型好坏
image

精准率和召回率(Precision/recall)

例如100个例子
四个方格有不同的名字
精准率公式:True positives/predicted positive
召回率的公式:True positives/actual positive
如果模型始终预测零,那么模型没有意义,精准率和召回率可以帮助判断算法是否始终预测为零
这两个值越高越好,算法越有用
image

精准率和召回率的权衡(Trading off precision and recall)

分类的阈值一般为0.5,若提高到0.7甚至0.9,或者降低到0.3会发生什么?
提高阈值会导致精确率提高,召回率降低
降低阈值会导致精准率降低,召回率提高
image
F1 score:通过将精准率和召回率合并为一个分数,判断算法的好坏
方法:1.取平均值(不推荐,别用),2.计算F1 score(这个公式也称为P和R的调和-harmonic mean)
image

Summary

本周主要学习了以下内容
1.机器学习项目中如何决定下一步做什么模型评估,模型选择,
2.训练集和测试集的训练方法,交叉验证集的训练方法
3.通过偏差和方差进行模型诊断正则化如何影响方差和偏差,性能评估的基准,学习曲线
4.机器学习开发的步骤误差分析,添加数据的两种方法
5.迁移学习,机器学习项目的周期,项目的部署
6.一些公平、偏见和伦理问题,指导方阵
7.精准率和召回率,如何权衡

标签:吴恩达,第二课,训练,方差,模型,第三周,拟合,Jtrain,数据
From: https://www.cnblogs.com/Mmbhcyt/p/18139449

相关文章

  • 吴恩达机器学习-第二课-第二周
    吴恩达机器学习学习视频参考b站:吴恩达机器学习本文是参照视频学习的随手笔记,便于后续回顾。TensorFlow实现神经网络模型训练细节训练步骤与和逻辑回归的比较训练模型分为三步:1.确定f(x)函数2.确定损失函数和代价函数3.通过数据训练寻找最小值详细介绍1.创建模型2.......
  • 吴恩达神经网络-第一周
    吴恩达神经网络学习视频参考b站:吴恩达机器学习本文是参照视频学习的随手笔记,便于后续回顾。神经网络(NeuralNetworks)发展历程神经元和大脑(Neuronsandthebrain)多个树突接受信号,通过轴突把信号传给下一个神经元通过软件模仿大脑工作,但大脑实际怎么工作的人们并不清楚,只是......
  • 吴恩达机器学习
    吴恩达机器学习-第三周学习视频参考b站:吴恩达机器学习本文是参照视频学习的随手笔记,便于后续回顾。分类(Classification)分类回顾输出结果y能分为两大类trueorfalse线性回归并不适合分类癌症探测:线性函数所得结果值大于0.5判定为yes,小于0.5判定为no(蓝色线)若但在右侧多加......
  • 论文解读:吴恩达来信AI Agent技巧—利用自我反馈的迭代细化技术
    《自我完善:利用自我反馈的迭代细化技术》https://arxiv.org/pdf/2303.17651.pdf摘要Largelanguagemodels(LLMs)经常无法在一次尝试中生成最佳输出。受人类在修改书面文本时所表现出的迭代精炼过程的启发,我们提出了SELF-REFINE,一种通过迭代反馈和精炼来改进大型语言模......
  • 吴恩达机器学习笔记:第 7 周-12支持向量机(Support Vector Machines)12.1-12.3
    目录第7周12、支持向量机(SupportVectorMachines)12.1优化目标第7周12、支持向量机(SupportVectorMachines)12.1优化目标到目前为止,你已经见过一系列不同的学习算法。在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法......
  • 吴恩达2022机器学习专项课程(一) 5.5 特征缩放1 & 5.6 特征缩放2
    问题预览/关键词什么是特征缩放?作用是什么?特征尺度和参数w权重的关系是?算法为什么要调节w权重?不进行特征缩放对梯度下降的影响?有特征缩放对梯度下降的影响?实现特征缩放的三种方法是?如何实现最大值缩放?如何实现均值归一化?如何实现Z-score标准化?判断缩放成功的标准是?什么情况......
  • 吴恩达机器学习
    吴恩达机器学习-第二周学习视频参考b站:吴恩达机器学习本文是参照视频学习的随手笔记,便于后续回顾。多维特征(MultipleFeatures)多种不同类型的输入X1,X2,X3......模型f(x)=w1x1+w2x2+w3x3+w4x4+b,加了小箭头的是向量(Vector),可以不加,只是方便辨识点积表示法:符号表......
  • 吴恩达机器学习-第一周
    吴恩达机器学习-第一周学习视频参考b站:吴恩达机器学习本文是参照视频学习的随手笔记,便于后续回顾。机器学习定义Fieldofstudythatgivescomputerstheabilitytolearnwithoutbeingexplicitlyprogrammed.--ArthurSamuel(1959)编译了跳棋程序,程序自己下棋迭代。Que......
  • 蓝旭工作室第三周预习:JS入门
    一、JavaScript概述    JavaScript是一种运行于JavaScript解释器/引擎中的解释型脚本语言。    解释型:运行之前不需要编译;运行之前不会检查错误,直到碰到错误为止。    编译型:对源码进行编译,还能检查语法错误。如C、C++。运行环境    1、......
  • 书生浦语第二期实战营——第二课_part2
    这里写目录标题1基于`InternLM2-Chat-7B`运行`Lagent`智能体1.1介绍1.2实践准备运行1.3作业2部署`浦语·灵笔2`模型2.1介绍2.2实践(1)环境配置(2)图文写作(3)图片理解2.3作业(1)图文创作(2)视觉问答正文主要内容:运行Lagent智能体、部署浦语·灵笔2模型B......