Datawhale X 李宏毅苹果书 AI夏令营 Task3打卡

news2024/12/23 2:26:43

实践方法论

1 模型偏差

1.1 基本概念

        模型偏差(Model Bias),也称为“偏差误差”或“系统误差”,是指模型预测值与真实值之间的差异,这种差异并不是由随机误差引起的,而是由模型本身的结构或假设导致的。模型偏差通常反映了模型对数据的拟合程度不足。

高偏差模型的特征

  • 在训练集和验证集上都有较高的误差。
  • 模型的预测结果与真实数据相差较大。
  • 模型对新数据的泛化能力差。

1.2 常见类型

欠拟合(Underfitting):

  • 欠拟合是指模型过于简单,无法捕捉到数据中的复杂关系和模式。
  • 特征选择不足:模型没有使用足够的特征或正确的特征来描述数据。
  • 模型复杂度不够:模型的结构过于简单,例如线性模型用于非线性问题。
  • 训练不充分:模型没有足够的训练数据或训练次数不足。

        若模型过于简单,可能无法找到可以降低损失的函数。需重新设计模型,给予模型更大的灵活性,(如增加输入数据的多样性/增加更多特征等等)

增加模型复杂度可以减少偏差,但可能会增加方差(过拟合);减少模型复杂度可以减少方差,但可能会增加偏差(欠拟合)。

 2 优化问题

2.1 使用梯度下降算法进行优化的缺陷

        可能会卡在局部最小值,无法找到真正使损失很低的参数

3 判断造成训练数据损失不够低的原因

3.1 可能原因

        可能是因为模型偏差,也可能是因为优化问题

3.2 判断方法

        通过不同的模型来判断现有模型是否足够大

         对于从来没做过的问题,可以先跑一些比较小、浅的网络/用一些非深度学习的方法,比如线性模型、支持向量机(Support Vector Machine,SVM),这类比较容易做优化的,比较不会有优化失败问题的模型来测试,看其会是怎样一个损失情况。

3.3 问题解决

        如果训练损失大,可以先判断是模型偏差还是优化。如果是模型偏差,就把模型变大。假设经过努力可以让训练数据的损失变小,接下来可以来看测试数据损失;如果测试数据损失也小,比这个较强的基线模型还要小,说明一定程度解决问题了。

        但如果训练数据上面的损失小,测试数据上的损失大,可能是过拟合。在测试上的结果不好,不一定是过拟合。要把训练数据损失记下来,先确定优化没有问题,模型够大了。接下来才看看是不是测试的问题,如果是训练损失小,测试损失大,这个有可能是过拟合。

4 过拟合

4.1 基本概念

过拟合是指模型在训练数据上表现得很好,但在新的、未见过的数据上表现不佳。

        我们真正可以观察到的是训练集,训练集可以想像成从这条曲线上面,随机采样出来的几个点。模型的能力非常的强,其灵活性很大,只给它这 3 个点。在这 3 个点上面,要让损失低,模型的曲线会通过这 3 个点,但其它没有训练集作为限制的地方,因为它的灵活性很大,模型可以变成各式各样的函数,没有给它数据作为训练,可以产生各式各样的结果。 

4.2 解决方法

4.2.1 增加数据集

 虽然模型它的灵活性可能很大,但是因为点非常多,它就可以限制住,它看起来的形状还是会很像产生这些数据背后的 2 次曲线,如图 2.7 所示。可以做数据增强(data augmentation),这个方法并不算是使用了额外的数据。

        数据增强是根据问题的理解创造出新的数据。

举个例子,在做图像识别的时候,常做的一个招式是,假设训练集里面有某一张图片,把它左右翻转,或者是把它其中一块截出来放大等等。对图片进行左右翻转,数据就变成两倍。但是数据增强不能够随便乱做。在图像识别里面,很少看到有人把图像上下颠倒当作增强。因为这些图片都是合理的图片,左右翻转图片,并不会影响到里面的内容。

但把图像上下颠倒,可能不是一个训练集或真实世界里面会出现的图像。如果给机器根据奇怪的图像学习,它可能就会学到奇怪的东西。

所以数据增强,要根据对数据的特性以及要处理的问题的理解,来选择合适的数据增强的方式

4.2.2 增加模型限制

        1.给模型比较少的参数。如果是深度学习的话,就给它比较少的神经元的数量,本来每层一千个神经元,改成一百个神经元之类的,或者让模型共用参数,可以让一些参数有一样的数值。

全连接网络(fully-connected network):是一个比较有灵活性的架构

卷积神经网络(Convolutional Neural Network,CNN):是一个比较有限制的架构

CNN 是一种比较没有灵活性的模型,其是针对图像的特性来限制模型的灵活性。

对于全连接神经网络,可以找出来的函数所形成的集合是比较大的,CNN 所找出来的函数,它形成的集合比较小,其实包含在全连接网络里面的,但是因为CNN 给了比较大的限制,所以 CNN 在图像上反而可以做得更好。

        2.用比较少的特征。比如,本来给 3 天的数据,改成用给两天的数据。

        3.早停(early stopping):一种在机器学习训练过程中用来防止过拟合的技术。它的核心思想是在模型训练过程中,当模型在验证集上的性能不再提升时,提前终止训练。这样可以避免模型在训练集上过度学习,从而提高模型在未知数据上的泛化能力。

早停的工作原理通常包括以下几个步骤:

  1. 定义性能指标:首先需要确定一个性能指标,比如准确率、损失函数值等,用于评估模型在验证集上的表现。

  2. 设置监控间隔:在训练过程中,每隔一定的迭代次数或周期,评估模型在验证集上的性能。

  3. 记录最佳模型:在每次评估时,如果当前模型的性能比之前记录的最佳性能要好,就更新最佳模型,并记录当前的迭代次数。

  4. 设置容忍度:定义一个容忍度(patience),即在一定次数的迭代后,如果模型性能没有进一步提升,就停止训练。

  5. 终止训练:当模型在验证集上的性能在连续多个监控周期内没有提升,并且达到设定的容忍度时,训练过程会被终止。

早停不仅可以防止过拟合,还可以节省训练时间,特别是在训练大型模型或数据集时非常有用。此外,早停还可以与正则化技术(如L1、L2正则化)结合使用,以进一步提高模型的泛化能力。

        4.正则化(regularization):通过在模型的损失函数中添加一个额外的项来实现,这个额外的项通常与模型的复杂度相关,目的是惩罚模型的复杂度。

        5.丢弃法(dropout method):是一种在训练过程中随机“丢弃”(即暂时移除)网络中一部分神经元(包括它们连接的权重)的技术。这可以防止模型对特定的数据样本过度敏感,从而提高模型的泛化能力。

注:但也不要给太多的限制,模型的限制太大在测试集上不会得到好的结果。这种情况下的结果不好,并不是因为过拟合了,而是因为给模型太大的限制,大到有了模型偏差的问题。

4.2.3 模型复杂程度与损失的关系

比较复杂的模型包含的函数比较多,参数比较多。如图 2.10 所示,随着模型越来越复杂,训练损失可以越来越低,但测试时,当模型越来越复杂的时候,刚开始,测试损失会显著下降,但是当复杂的程度,超过某一个程度以后,测试损失就会突然暴增了。这就是因为当模型越来越复杂的时候,复杂到某一个程度,过拟合的情况就会出现,所以在训练损失上面可以得到比较好的结果。在测试损失上面,会得到比较大的损失,可以选一个中庸的模型,不是太复杂的,也不是太简单的,刚刚好可以在训练集上损失最低,测试损失最低。

 5 交叉验证

比较合理选择模型的方法是把训练的数据分成两半,一部分称为训练集(training set),一部分是验证集(validation set)。比如 90% 的数据作为训练集,有 10% 的数据作为验证集。在训练集上训练出来的模型会使用验证集来衡量它们的分数,根据验证集上面的分数去挑选结果,再把这个结果上传到 Kaggle 上面得到的公开分数。在挑分数的时候,是用验证集来挑模型,所以公开测试集分数就可以反映私人测试集的分数。但假设这个循环做太多次,根据公开测试集上的结果调整模型太多次,就又有可能在公开测试集上面过拟合,在私人测试集上面得到差的结果。

k 折交叉验证是先把训练集切成 k 等份。在这个例子,训练集被切成 3 等份,切完以后,拿其中一份当作验证集,另外两份当训练集,这件事情要重复 3 次。即第一份第 2 份当训练,第 3 份当验证;第一份第 3 份当训练,第 2 份当验证;第一份当验证,第 2 份第 3 份当训练。

6 不匹配

6.1 基本概念

        "不匹配问题"(Mismatch Problem)通常指的是模型训练和测试阶段的数据分布不一致的情况。这种不一致性可能导致模型在实际应用中的表现不佳,即使它在训练数据上表现得很好。

6.2 基本类型

①数据分布不匹配

  • 训练集和测试集分布不一致:如果训练数据和测试数据来自不同的分布,模型可能无法很好地泛化到新的数据上。
  • 时间不匹配:随着时间的推移,数据分布可能会发生变化(例如,季节性变化或长期趋势),导致模型过时。

②特征不匹配

  • 特征空间不一致:如果训练数据和测试数据使用的特征集不同,模型可能无法正确地识别和预测测试数据。
  • 特征缩放不一致:如果训练和测试数据的特征没有以相同的方式进行缩放或标准化,模型的性能可能会受到影响。

③标签不匹配:如果训练数据中的标签错误或与测试数据的标签定义不一致,模型的预测准确性会受到影响。

④概念不匹配:在现实世界中,数据的底层概念可能会随时间变化,导致模型无法适应新的概念。

⑤采样不匹配:如果训练数据和测试数据的采样方法不同,可能会导致模型在某些类别或特征上表现不佳。

⑥数据质量不匹配:如果训练数据和测试数据的噪声水平不同,模型可能无法正确地学习数据中的模式。

对于不匹配问题,单纯增加数据也不能让模型做得更好,而匹不匹配依靠对数据本身的理解。

  • 数据增强:通过生成新的数据点或变换现有数据来增加数据的多样性。
  • 数据清洗:确保训练和测试数据的质量一致。
  • 特征工程:确保训练和测试数据使用相同的特征集和特征处理方法。
  • 域适应:在迁移学习中,使用特定的技术来减少源域和目标域之间的差异。
  • 重新采样:通过过采样或欠采样来平衡类别分布,减少采样偏差。
  • 集成学习:使用多个模型的集成来提高模型对不同数据分布的适应性。

参考资料

Datawhale (linklearner.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在 Raspberry Pi 5 上设置 Raspberry Pi AI Kit

本指南将帮助您在 Raspberry Pi 5 上安装 Raspberry Pi AI Kit。这将使您能够使用 Hailo AI 神经网络加速器运行 rpicam-apps 摄像头演示。 如果您在开始安装人工智能套件之前需要帮助,本指南提供了安装过程的分步图片。 安装人工智能套件:https://www.…

SGM41511电源管理芯片与STM32L496通讯源码虚拟I2C协议实测成功读写cubemx设置裸机和freertos操作系统源码通用

不用它的I2C设置,容易出错不通讯,只打开GPIO输出就可以; 如果是RTOS的话请打开系统定时器提供参考时间基准,那个定时器都行; 以下是经过验证的代码,同样适用于SGM同类系列电源管理芯片; 准备好…

HTML5好看的花店商城源码1

文章目录 1.设计来源1.1 主界面1.2 界面效果11.3 界面效果21.4 界面效果31.5 界面效果41.6 界面效果51.7 界面效果61.8 界面效果7 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh…

【补-网络安全】日常运维(二)终端端口占用排查

文章目录 一、利用ipconfig、netstat 命令行统计二 、策略封禁IP 引言:检查频繁,第一步我们梳理完资产,第二步应该对资产终端进行一个排查,诊断把脉,了解清楚系统的端口占用及开放情况 一、利用ipconfig、netstat 命令行统计 1.先用ipconfig定位该终端的IP地址 2.明确IP地址后…

9.2(C++ Day 4)

一、作业 完成算术运算符重载&#xff0c;实现至少两个运算符的成员函数和全局函数的版本 1.&#xff08;1&#xff09;成员函数实现算术运算符&#xff08;-&#xff09;重载 const 类名 operator#(const 类名 &R) const {} #include <iostream>using namespac…

三级_网络技术_56_应用题

一、 请根据下图所示网络结构回答下列问题。 1.填写RG的路由表项。 目的网络/掩码长度输出端口__________S0&#xff08;直接连接&#xff09;__________S1&#xff08;直接连接&#xff09;__________S0__________S1__________S0__________S1 (2)在不改变路由表项的前提下&…

mysql安装和使用

文章目录 下载mysqlmysql安装检验mysqlpython、vscode插件 下载mysql 进入官网&#xff0c;选择下载。mysql官网是 https://www.mysql.com/ 。 选择社区版 选择windows版 选择离线包 让你登陆&#xff0c;我们谢绝登录 ojbk。开始下载。 mysql安装 选自定义安装。 “Server…

「漏洞复现」WookTeam searchinfo SQL注入漏洞

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

用Python导入CSV和Excel表格数据到Word表格

在不同格式的文档之间进行数据传输是非常重要的操作。例如将CSV和Excel表格数据导入到Word文档中&#xff0c;不仅可以实现数据的有效整合与展示&#xff0c;还能极大地提升工作效率和文档的专业性。无论是生成报告、制作统计分析还是编制业务文档&#xff0c;熟练掌握用Python…

Java简单实现服务器客户端通信

目录 Socket 概述Socket 通信模型Socket 编程流程DEMO服务器端客户端 在Java中实现服务器和客户端的通信&#xff0c;可以使用Java Socket编程。 Socket 概述 Socket 指的是“插座”&#xff0c;是应用层与传输层之间的桥梁&#xff0c;用于在网络上进行双向通信。在 Socket …

Ceph-deploy搭建ceph集群

Ceph介绍及安装 一、Ceph介绍1.1 ceph说明1.2 Ceph架构1.3 Ceph逻辑组织架构1.3.1 Pool1.3.2 PG1.3.3 PGP 二、部署Ceph集群2.1 部署方式&#xff1a;2.2 服务器准备monitor、mgr、radosgw&#xff1a;MDS&#xff08;相对配置更高一个等级&#xff09;OSD节点 CPU&#xff1a;…

文献阅读(218)EHP

题目&#xff1a;A Research Retrospective on the AMD Exascale Computing Journey时间&#xff1a;2023会议&#xff1a;ISCA研究机构&#xff1a;AMD 题目&#xff1a;Realizing the AMD Exascale Heterogeneous Processor Vision时间&#xff1a;2024会议&#xff1a;ISCA研…

【人工智能 | 机器学习】神经网络

文章目录 1. 神经元模型2. 感知机与多层网络3. 误差逆传播算法&#xff08;BP)4. 全局最小与局部极小5. 其他常见神经网络6. 深度学习 1. 神经元模型 神经网络&#xff1a;具有适应性的 简单单元&#xff08;神经元&#xff09;组成的广泛并行互连的网络&#xff0c;其组织能够…

微服务组件----网关

小编目前大一&#xff0c;刚开始着手学习微服务的相关知识&#xff0c;小编会把它们整理成知识点发布出来。我认为同为初学者&#xff0c;我把我对知识点的理解以这种代码加观点的方式分享出来不仅加深了我的理解&#xff0c;或许在某个时候对你也有所帮助&#xff0c;同时也欢…

KTV包房开台必点套餐--SAAS本地化及未来之窗行业应用跨平台架构

一、源码 var 未来之窗app_通用ID"";CyberWin_Dialog.layer(url,{type:"url",title:title,move:false,width:"700px",height:"400px",id:未来之窗app_通用ID,mask:true,align:59,hideclose:false}); 二、解释 以下是用修仙手法为您改…

深度学习系列69:tts技术原理

tts为text-to-speech&#xff0c;asr为Automatic Speech Recognition&#xff0c;即speech-to-text。 1. 常用基础模型 下面介绍的deep voice是端到端生成语音的模型&#xff0c;后面两个是生成Mel谱&#xff0c;然后再使用vocoder生成语音的模型。 1.1 Deep voice 目前端到…

Ubuntu安装boost,protobuf、moduo

一、Ubuntu安装muduo muduo库是基于boost开发的&#xff0c;确保先安装了boost&#xff08;对boost版本有要求&#xff09;&#xff0c;还需要先安装protobuf&#xff0c;curl库 库版本boost1.70.0protobuf3.14.0curl7.74.0muduo2.0.2 1、Ubuntu安装boost # 更新资源列表 s…

【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统

摘 要 当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也日益突出&#xff0c;人类的生存和思考方式也产生了变化。传统城市公交查询管理采取了人工的管理方法…

【第0005页 · 贪心】非递减数列

【前言】本文以及之后的一些题解都会陆续整理到目录中&#xff0c;若想了解全部题解整理&#xff0c;请看这里&#xff1a; 第0005页 非递减数列 今天我们来看一道 LeetCode 上“广泛好评”的一道 Easy 题&#xff01;&#xff01;&#xff01;&#xff08;蓝色是 OJ 平台&…

CentOS 7 升级 OpenSSH 9.8p1

背景 OpenSSH 官方发布安全通告&#xff0c;披露CVE-2024-6387 OpenSSH Server远程代码执行漏洞。 环境 操作系统内核openssh 版本openssl 版本7.8.20033.10.0-11277.4p11.0.2k-fips 安装编译软件和下载 OpenSSH9.8p1 软件包 mkdir -p /data/software cd /data/software/…