Datawhale X 李宏毅苹果书 AI夏令营Day03

 一、打卡

Datawhale

二、学习

1、文档学习

Datawhale X 李宏毅苹果书 AI夏令营Day03_第1张图片

图中展示了一个函数集合,其中包含多个未知参数的函数 fθ1(x)和 fθ2(x)。通过将这些函数组合起来,可以得到一个更大的函数集合。然而,如果这个函数集合太小了,没有包含任何一个函数,那么即使找到了一个最优的 θ∗,其损失仍然不够低。这就像大海里捞针一样,想要找到一个损失低的函数,但最终却发现这个函数并不在这个函数集合内。在这种情况下,可以通过重新设计模型来增加模型的灵活性。

早停(Early Stopping)、正则化(Regularization)和丢弃法(Dropout)都是机器学习中用来防止过拟合的重要技术。

1. 早停(Early Stopping)

  • 定义:早停是一种监控模型训练过程并在验证集上的性能开始恶化之前停止训练的技术。
  • 原理:在训练过程中,模型的训练误差会逐渐减小,但经过一定数量的训练周期后,模型可能会开始过拟合,即在训练集上的性能继续提升,但在验证集上的性能反而下降。
  • 实现:在训练期间定期检查验证集上的性能,如果在若干个连续的周期内验证误差没有改善,则提前终止训练。
  • 优点:可以有效地防止过拟合,找到一个既能很好地拟合训练数据又不会过度拟合的模型。

2. 正则化(Regularization)

  • 定义:正则化是在损失函数中添加一个惩罚项,以限制模型参数的大小,从而防止模型变得过于复杂。
  • 类型
    • L1 正则化(Lasso Regression):惩罚绝对值大的权重,倾向于产生稀疏模型,即许多参数被设置为零。
    • L2 正则化(Ridge Regression):惩罚权重的平方值,使所有权重变得更小,但不会变成零。
    • Elastic Net:结合 L1 和 L2 正则化的优势。
  • 原理:通过在损失函数中加上一个正则化项,使得模型倾向于选择较小的权重,从而减少模型复杂度。
  • 优点:有助于简化模型,提高模型的泛化能力。

3. 丢弃法(Dropout)

  • 定义:丢弃法是一种专门用于深度学习的技术,主要用于减少神经网络中的过拟合。
  • 原理:在每次前向传播过程中,随机地“丢弃”(即设置为零)网络中的一部分节点,使得这些节点在当前训练过程中不起作用。这样做可以迫使网络学习更加鲁棒的特征表达。
  • 实现:在训练过程中,以一定的概率 p 关闭神经网络中的节点。在测试时,所有的节点都开启,但是权重需要按比例缩小。
  • 优点:能够模拟集成方法的效果,提高模型的泛化能力,并且不需要额外的数据增强或参数调整。

2、补充

(1)、交叉验证

交叉验证是一种统计学方法,用于评估机器学习模型的性能。它将数据集分成训练集和验证集,并多次执行训练和验证的过程,最终得到模型的性能评估结果。特别是在数据集较小的情况下,它可以帮助我们更好地了解模型在独立数据集上的泛化能力

常用方法:

  1. 留出法(Holdout Cross-Validation)

    • 将数据集分为训练集和测试集。
    • 通常比例为 70% 训练集,30% 测试集(或者其他比例)。
    • 这种方法简单快速,但结果依赖于随机分割。
  2. K折交叉验证(K-Fold Cross-Validation)

    • K 折交叉验证是最常用的一种交叉验证方法,它将原始数据集划分为 K 个子集,每个子集大约相同大小。
    • 对于每一轮交叉验证,都会选取其中一个子集作为验证集,其余 K-1 个子集作为训练集。
    • 这样一共有 K 轮交叉验证,每轮都会使用不同的子集作为验证集。
    • 最后,将 K 轮交叉验证的结果取平均,得到模型的平均性能。
  3. 留一法(Leave-One-Out Cross-Validation, LOOCV)

    • 特殊形式的 K-折交叉验证,其中 K 等于样本数。
    • 每次仅使用一个样本作为验证集,其余作为训练集。
    • 这种方法非常耗时,但在小数据集上可以提供最精确的估计。
  4. 分层 K折交叉验证(Stratified K-Fold Cross-Validation)

    • 在 K-折的基础上,确保每个折中的目标变量分布与整体数据集的分布相似。
    • 适用于类别不平衡的数据集。
  5. 时序交叉验证(Time Series Cross-Validation)

    • 在时序数据中,确保训练集中的数据总是早于验证集中的数据。
    • 适用于时间序列分析。

 

为什么使用交叉验证?
  • 交叉验证可以帮助我们更好地估计模型在新数据上的表现,因为它提供了更多数据用于验证。
  • 它减少了因随机抽样带来的误差,使得模型的评估更加稳定。
  • 通过多次分割数据,可以减少因为特定划分方式导致的偏见。
如何选择 K 值?
  • K 值的选择取决于数据量和计算资源。一般来说,K=5 或 K=10 是常见的选择。
  • 如果数据量较小,可以选择较大的 K 值,以充分利用数据;如果数据量较大,则可以选择较小的 K 值,以节省计算资源。
何时使用交叉验证?
  • 当你希望评估模型在新数据上的表现时,可以使用交叉验证。
  • 当你不确定哪个模型最好时,可以使用交叉验证来帮助选择最好的模型。

 

Datawhale X 李宏毅苹果书 AI夏令营Day03_第2张图片

这张图显示了模型复杂度与损失的关系,左侧的曲线代表训练损失,右侧的曲线代表测试损失。开始时,随着模型变得越来越复杂,训练损失和测试损失都在降低。但当模型达到一定复杂度后,训练损失继续下降,而测试损失开始上升。这表明模型已经过拟合,不再能够泛化到新数据。

(2)、不匹配 

在机器学习或数据分析领域,不匹配通常指的是模型与数据之间的不一致。

以下是一些常见的不匹配情况:

  1. 模型与数据不匹配:当使用的模型假设与数据集的特征、属性或分布不匹配时,可能会导致模型预测的准确性降低。例如,如果模型假设数据是线性分布的,但实际数据呈现非线性关系,那么模型的预测可能会出现偏差。

  2. 特征与问题不匹配:选择的特征与解决问题的要求不匹配时,也会出现不匹配问题。例如,在文本分类任务中,如果选取的特征不包含与分类任务相关的关键词或特征,那么模型的准确性可能会受到影响。

  3. 数据与标签不匹配:数据集中的标签或类别与实际场景或问题定义不匹配时,可能会导致模型的性能下降。例如,如果数据集中的标签与实际问题的定义不一致或有误,那么使用该数据集训练的模型可能无法准确地进行预测。

  4. 训练集与测试集不匹配:在机器学习中,通常将数据集划分为训练集和测试集。如果训练集和测试集的分布、特征或属性不匹配,那么在测试集上评估的模型性能可能不能准确地反映其在实际应用中的表现。

Datawhale X 李宏毅苹果书 AI夏令营Day03_第3张图片 

在图中,模型预测的蓝色曲线与实际观测的红色曲线出现了显著的偏离,特别是在 2 月 26 日这一天,预测值与真实值差距极大,误差达到了 2580。这种现象表明模型并未正确地捕获到数据中的某些关键模式,可能是由于数据分布的变化或模型本身的问题。

不匹配与过拟合不同,过拟合可以通过获取更多数据来改善,而不匹配则涉及训练集与测试集的分布差异。例如,如果使用 2020 年的数据作为训练集,2021 年的数据作为测试集,由于两者之间存在差异,模型可能无法准确预测 2021 年的数据。这可能是因为 2020 和 2021 年间存在不可预见的变化,如节假日、特殊事件或其他因素影响了观看人数。

解决不匹配问题的方法包括:

  1. 收集更多历史数据,以便模型能更好地适应新的环境。
  2. 引入额外的特征,如节假日信息、天气状况等,以增强模型的适应性。
  3. 使用正则化项,防止模型过于复杂,降低过拟合风险。
  4. 采用交叉验证和网格搜索等技术,选择合适的模型参数,提高模型的泛化能力。

 其实对于AI大多数都是知识壁垒,很多名称拗口,不通俗易懂。多查找,多学习。

你可能感兴趣的:(人工智能)