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

2024-09-03 05:04

本文主要是介绍Datawhale X 李宏毅苹果书 AI夏令营 Task3打卡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实践方法论

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)

这篇关于Datawhale X 李宏毅苹果书 AI夏令营 Task3打卡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132103

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

AI Toolkit + H100 GPU,一小时内微调最新热门文生图模型 FLUX

上个月,FLUX 席卷了互联网,这并非没有原因。他们声称优于 DALLE 3、Ideogram 和 Stable Diffusion 3 等模型,而这一点已被证明是有依据的。随着越来越多的流行图像生成工具(如 Stable Diffusion Web UI Forge 和 ComyUI)开始支持这些模型,FLUX 在 Stable Diffusion 领域的扩展将会持续下去。 自 FLU

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close