ML2001-2 机器学习/深度学习 过拟合(overfit)

时间:2024-11-05 17:58:49

该文档是李宏毅关于机器学习过拟合(overfit)的指导方针,主要内容如下:

1. 机器学习框架与过拟合问题介绍

  • 机器学习框架:包含训练数据和测试数据,可应用于语音识别、图像识别、说话人识别、机器翻译等任务。
  • 过拟合现象:训练数据上损失小,测试数据上损失大。可能出现模型偏差(model bias)或优化问题(optimization issue)。

2. 模型偏差与优化问题的判断及解决方法

  • 判断方法
    • 模型偏差:模型太简单,可能在训练数据上损失大,表现为 “大海捞针但无针” 的情况。
    • 优化问题:从较浅网络(或其他模型)开始,如果更深网络在训练数据上不能获得更小损失,则可能存在优化问题。
  • 解决方法
    • 模型偏差:重新设计模型使其更灵活,如增加特征、采用深度学习(更多神经元、层数)。
    • 优化问题:采用更强大的优化技术(下一次讲座内容)。

3. 过拟合的处理方法

  • 一般指导方针
    • 模型选择:将训练数据分为训练集和验证集进行模型选择。
    • 模型调整
      • 若测试数据上损失大,可简化模型;若训练数据上损失大,可使模型更复杂。
      • 增加训练数据(作业中不要求,除作业 11 外)、进行数据增强(data augmentation)。
  • 针对不同模型的处理
    • 灵活模型:可能导致过拟合,可增加训练数据、进行数据增强。
    • 受限模型:如减少特征、提前停止(early stopping)、正则化(regularization)、采用 Dropout、减少参数及共享参数(适用于 CNN 和全连接网络)。

4. 模型选择方法

  • 介绍了交叉验证(Cross Validation),包括 N - fold 交叉验证,用于选择合适的模型,避免使用公共测试数据结果选择模型导致的问题。

5. 案例分析

  • 以预测 2/26 的观看次数为例,展示不同层数模型在 2017 - 2020 年和 2021 年的损失情况,并对比实际值和预测值。同时提到训练和测试数据分布不同(mismatch)的问题,仅增加训练数据可能无法解决,需注意数据生成方式。

幻灯片 1:封面

  • 标题为 “General Guidance”,作者为 Hung - yi Lee(李宏毅)。
  • 幻灯片 2:机器学习框架

  • 展示了机器学习的框架,包括训练数据和测试数据,并列举了语音识别、图像识别、说话人识别、机器翻译等应用领域。
  • 幻灯片 3 - 4:训练与测试数据的使用及上传

  • 提到训练数据用于训练模型,测试数据用于评估模型。可能会涉及将模型上传到 Kaggle 平台进行评估。
  • 幻灯片 5:模型偏差与过拟合 - 训练数据损失大

  • 当训练数据上损失大时,可能是模型偏差问题,模型可能太简单,解决方法是使模型更复杂,如增加特征或采用深度学习(更多神经元、层数)。
  • 幻灯片 6:模型偏差与过拟合 - 测试数据损失大

  • 当测试数据上损失大时,可能出现过拟合现象,解决方法包括简化模型、增加训练数据(作业中一般不要求,除作业 11 外)以及数据增强。同时强调要将训练数据分为训练集和验证集用于模型选择。

幻灯片 7:模型偏差与优化问题的判断

  • 说明大损失并不总是意味着模型偏差,还有可能是优化问题。通过对比不同层数网络在训练数据和测试数据上的损失情况来判断是模型偏差还是优化问题。如果从较浅网络开始,更深网络在训练数据上不能获得更小损失,则可能存在优化问题。
  • 幻灯片 8 - 9:模型偏差与优化问题的解决方法

  • 对于模型偏差,解决方法是重新设计模型使其更灵活;对于优化问题,需要采用更强大的优化技术(下一次讲座内容)。
  • 幻灯片 10 - 11:过拟合的进一步讨论

  • 再次强调过拟合是训练数据上损失小,测试数据上损失大的现象,并给出一个极端例子:某个函数在训练数据上损失为零,但在测试数据上损失很大。
  • 幻灯片 12 - 13:灵活模型的过拟合处理

  • 对于灵活模型导致的过拟合,可增加训练数据和进行数据增强,但有些情况下增加训练数据可能无法实现(如作业中不要求)。
  • 幻灯片 14 - 16:受限模型的过拟合处理

  • 对于受限模型,可采用减少特征、提前停止、正则化、Dropout、减少参数及共享参数等方法来处理过拟合问题,适用于 CNN 和全连接网络。
  • 幻灯片 17 - 18:模型选择与偏差 - 复杂性权衡

  • 通过不同模型在训练集和测试集上的均方误差(mse)展示了模型偏差 - 复杂性权衡问题。在选择模型时,需综合考虑训练损失和测试损失。同时提到作业中可能会涉及此类问题,如根据给定的模型在不同数据集上的表现选择合适的模型。
  • 幻灯片 19 - 20:交叉验证介绍

  • 介绍了交叉验证的概念,包括一般交叉验证和 N - fold 交叉验证。强调不推荐使用公共测试数据结果来选择模型,因为这可能会导致公共集表现优于私人集的问题。通过示例展示了如何使用 N - fold 交叉验证来选择模型,即比较不同模型在各个验证集上的平均均方误差。
  • 幻灯片 21:预测案例

  • 以预测 2/26 的观看次数为例,展示了不同层数模型在 2017 - 2020 年和 2021 年的损失情况,并对比了实际值和预测值。
  • 幻灯片 22 - 23:训练与测试数据分布不匹配

  • 指出训练和测试数据可能存在分布不同的问题(mismatch),这种情况下仅增加训练数据可能无法解决问题,需要注意数据的生成方式。这一问题在大多数作业中不存在,除作业 11 外。同时展示了训练数据和测试数据的示例图片,以说明可能存在的差异。