type
status
date
slug
summary
tags
category
icon
password
 
浅层模型泛化和深层模型泛化
泛化性指模型经过训练后,应用到新数据并做出准确预测的能力。一个模型在训练数据上经常被训练得太好即过拟合,以致无法泛化。
过拟合
过拟合是机器学习和统计建模中的一种常见现象当一个模型对训练数据的拟合程度过高,而对新的、未见过的数据的预测能力却很差时,就发生了过拟合。过拟合的模型在训练集上可能表现得非常好,但是在测试集或实际应用中则表现不佳。这主要是因为模型学习了训练数据中的“噪声”而非底层的数据生成规律
以下是一些过拟合的特点和解决方法:

特点

  • 高训练精度,低测试精度:模型在训练数据上的表现远超过在测试数据上的表现。
  • 模型过于复杂:模型参数过多,结构复杂,超出了数据本身所需的复杂度

解决方法

  1. 简化模型:减少模型的复杂性,比如减少层数、参数数量或选择更简单的模型。
  1. 增加数据:增加更多的训练数据可以帮助模型学习到更泛化的特征。
  1. 使用正则化:例如L1或L2正则化,可以惩罚模型的复杂度。
  1. 交叉验证:使用交叉验证可以更有效地利用数据,评估模型在未知数据上的表现。
  1. 早停:在训练过程中,一旦测试误差开始增加或不再改善,立即停止训练。
理解和防止过拟合对于构建一个健壮的模型非常重要,能够提高模型在实际应用中的可靠性和效果。
噪声
在机器学习中,"噪声"通常指的是数据中那些不代表实际模式或规律的信息。这些噪声可能来自多种来源,例如数据收集和处理过程中的错误、异常值或者是数据本身的随机性。噪声的存在可能会使得模型学到这些不相关或错误的信息,而非真正有助于预测的模式
简单来说,如果一个模型过分复杂,它可能不仅学习了数据中的有效规律,还学习了这些噪声特征。这种情况下,模型可能在训练数据上表现得非常好,因为它甚至记住了训练数据中的随机误差或特定的异常情况。但是,当模型面对新的、未见过的数据时,这些基于噪声的“学习”就会降低模型的预测能力,因为新数据中不会复现相同的随机噪声或者具体的异常情况。这就是为什么过拟合的模型在实际应用中表现往往不佳的原因。
如何评价一个模型有没有过分复杂
评价一个模型是否过于复杂通常涉及到以下几个方面:

1. 参数数量

模型的复杂度往往与其参数的数量成正比。例如,在神经网络中,层数多、每层神经元数量多的网络比层数少、神经元数量少的网络复杂度高。如果一个模型有大量的参数而训练数据有限,这可能导致模型学习到数据中的噪声,而不是潜在的数据生成规律。

2. 拟合程度

通过观察模型在训练集和验证集(或测试集)上的表现可以判断模型的复杂度是否适当。理想的情况是模型在这两种数据集上都有良好的表现。如果模型在训练集上的表现远远优于在验证集上的表现,这通常是过拟合的一个标志,也意味着模型可能过于复杂。

3. 模型选择标准

使用如信息准则(如AIC,BIC)这类统计量也可以帮助评估模型复杂度。这些准则试图平衡模型的拟合优度和模型复杂度,通过对比不同模型的这些值,可以选择一个既能很好地拟合数据又不过于复杂的模型。

4. 交叉验证

通过交叉验证可以更客观地评估模型的泛化能力。交叉验证通过将数据分成多个部分,在一个部分上训练模型,在另一个部分上验证模型,然后重复这个过程多次,可以更全面地评价模型在未知数据上的表现。如果一个模型在多个不同的验证集上都表现不稳定或表现较差,这可能是模型过于复杂的一个信号。
总的来说,判断模型是否过于复杂需要综合考虑模型的设计、参数数量、以及其在不同数据集上的表现等因素。调整这些因素使得模型既能捕捉到数据中的主要规律,又不会对噪声进行过度拟合,是模型选择和调优过程中的重要任务。
 
notion image
我们传统的统计学习理论(statistical learning theory)认为模型参数较多的时候,泛化能力应该会更差。而深度人工神经网络通常拥有比训练样本数量更多的模型参数,然而一些模型却能表现出更好的泛化能力
因此,本文针对传统对于泛化能力的看法不能够解释不同神经网络之间泛化能力的本质区别。我们通过分析现有的一些关于深度学习泛化方面的研究,进行总结分类如下:
一、正则 (Regularization)
正则化
正则化是机器学习中用于防止模型过拟合的一种技术它通过添加一个额外的惩罚项到损失函数中来限制模型的复杂度。正则化的核心思想是在模型的训练过程中引入一定程度的偏差,以换取更高的模型泛化能力。下面介绍两种常见的正则化方法和它们的应用。

1. L1 正则化(Lasso)

L1 正则化通过向损失函数添加一个与模型权重的绝对值成比例的惩罚项来工作。这种方法可以导致模型中一些权重系数变为零从而实现特征的自动选择。简单来说,L1 正则化倾向于产生稀疏权重矩阵,对于处理具有高维特征的数据集特别有效因为它可以帮助减少数据的维度并提高模型的解释性。

2. L2 正则化(Ridge)

与L1正则化不同,L2 正则化向损失函数添加的是权重的平方的惩罚项。这种方法不会将权重减少到零,而是减小权重的大小使模型的输出对输入中噪声的敏感度降低。L2 正则化通常能够提高模型的稳定性和泛化能力因为它限制了所有权重的大小,使得权重不会对单个数据点过度调整。

应用

在应用正则化时,通常需要设定一个正则化参数(通常称为 𝜆λ 或 𝛼α),这个参数决定了正则化项的权重设置较大的正则化参数可以增强正则化效果,有助于减少过拟合,但过高可能导致模型欠拟合。因此,选择一个合适的正则化参数是非常重要的,这通常通过交叉验证等技术来实现。

优点和缺点

  • 优点
    • 增强模型的泛化能力,减少过拟合。
    • 在某些情况下(特别是使用L1正则化时),可以进行特征选择。
  • 缺点
    • 需要调整额外的参数(正则化系数)
    • 过强的正则化可能导致模型欠拟合
正则化是提升模型在未见数据上性能的有效工具,广泛用于各种机器学习模型中,包括线性回归、逻辑回归、神经网络等。通过适当的正则化,可以在复杂度和泛化能力之间找到一个好的平衡。
高维特征的数据集
高维特征的数据集指的是那些拥有大量特征或变量的数据集,这种数据集的特点是特征的数量可能远超过样本的数量。在高维数据集中,每个数据点可能包含成千上万个特征或变量。这种情况在某些领域非常常见,特别是在需要处理大量测量或观察数据的场景中

典型代表

  1. 基因表达数据
      • 生物信息学领域经常处理基因表达数据集,其中每个样本可能包含成千上万个基因的表达水平。这种数据通常用于研究不同条件下基因的活动差异,例如研究不同疾病状态的基因表达模式。
  1. 图像数据
      • 在机器视觉领域,尤其是使用原始像素作为特征的情况下,图像数据可以被视为高维数据。例如,一个简单的256x256大小的灰度图像就有65536个像素值,每个像素值都可以作为一个特征。
  1. 文本数据
      • 在自然语言处理中,文本数据常常通过技术如词袋模型表示,其中每个独立的单词或短语都是一个特征。大型文档集合可以很容易地产生成千上万的独特词汇。
  1. 金融数据
      • 在金融领域,尤其是在处理高频交易数据时,可能会有成千上万个变量,如不同时间点的价格、交易量等,这些都可以视为特征。
在处理这些高维数据时,直接应用传统的统计方法或机器学习算法往往会遇到困难,例如“维度的诅咒”,这意味着随着特征数量的增加,模型的性能和解释能力可能反而下降。因此,使用如L1正则化这样能够进行特征选择的方法尤其有价值,它可以帮助减少无关特征的干扰,提升模型的预测性能和泛化能力。
  1. 显式正则 (Data augmentation,Noise 和 Dropout)
2. 隐式正则 (Early stop,Batch normalization)
二、模型优化 (Model Optimization)
三、对抗攻击(Adversarial Attack)
一、正则
  1. 显示正则
1.1 Drop Out
Drop out 应用在网络中的相邻层之间。关键思想是在每次迭代时,随机地从神经网络中丢弃一些连接。
notion image
1.2 Data augmentation
数据增强通过对原有的样本进行变换(放缩、裁剪等),这样虽然传达的语义信息是相同的,但它们在模型看来却是不同的。
1.3 Noise
一种常见的正则化是在训练过程中注入噪声将噪声添加或乘以神经网络的隐藏单元。在训练深度神经网络时,通过允许一些不准确的情况,不仅可以提高训练性能,还可以提高模型的准确性。除了向输入数据本身加噪,还可以将噪声添加到激活、权重或梯度中太少的噪声没有影响,而太多的噪声则会使映射函数的学习难度过大。
2. 隐式正则
2.1 Early Stop
Early Stop 是一种交叉验证策略,我们保留训练集的一部分作为验证集。当我们看到验证集上的性能越来越差时,我们就会停止对模型的训练
                               训练集和测试集误差
训练集和测试集误差
2.2 Batch Normalization
批量归一化(BN,Batch Normalization)是一种将网络输入标准化的技术,应用于前一层的激活或直接输入。这种方法可以让网络的每一层都能尽量独立于其他层进行学习。BN是通过调整和缩放激活来对输入层进行归一化。
notion image
二、模型优化
Zhang 等人认为SGD的过程本身带有一个隐含的正则效果。换句话说,优化方法本身限制了模型的解空间,使得学到的模型就有一定的泛化能力。
三、对抗攻击
在机器学习模型中加入抗性数据,可以得到欺骗的识别结果。如果我们能增强模型的抗攻击能力,自然可以提升模型的泛化能力。
notion image
Wang 等人从频域的角度对模型训练进行分析。在一个有限的数据集中,除了数据语义和 label 关联之外,还有一些与高频噪音的关联。因此,当训练一个模型的时候,如果没有指明模型应该学习数据语义还是这些高频信号,模型可能会两者都会去学,而这将对模型泛化能力产生很大的影响。更多资料:CMU团队解析CNN泛化能力:一切秘密都在数据中
例如,BatchNorm 之所以能够如此有效地提高模型的准确率,可能是在鼓励模型大量使用高频信息。对抗攻击样本如果包含与label关联的高频信息,便会成功地欺骗模型。
notion image
 
参考文献:
Neelakantan A, Vilnis L, Le Q V, et al. Adding gradient noise improves learning for very deep networks. arXiv 2015.
Zhang C, Bengio S, Hardt M, et al. Understanding deep learning requires rethinking generalization. ICLR 2017.
Wang H, Wu X, Huang Z, et al. High-frequency component helps explain the generalization of convolutional neural networks. CVPR 2020.
文章来源:
 
 
 
 
关于澳洲研究型(research)硕士的申请了解字节跳动观察
Loading...
NotionNext
NotionNext
一个普通的干饭人🍚
Announcement
🌟 欢迎来到盛溪的博客!🌟
大家好,我是盛溪。在这里,我将分享我的生活感悟、学习心得以及其他一些有趣的发现。希望我的文章能为你的生活带来一点启发和乐趣。
📅 更新通知:
  • 我会定期更新博客,分享新的内容。你可以通过RSS订阅或关注我的社交媒体账号来及时获取更新通知。
💬 互动环节:
  • 如果你有任何问题或想法,欢迎在评论区留言。我非常期待与你的互动!
📚 推荐阅读:
  • 不定期推荐一些我觉得有价值的书籍或资源,希望能对你有所帮助。
感谢你的访问和支持,希望你能常来逛逛!
盛溪敬上