如何提升机器学习的泛化才能?
作者头像
  • 央宗
  • 2020-05-12 07:10:02 0

机器学习中的模型泛化

机器学习的一个重要目标是提升模型的泛化能力,即在以前未见过的数据上也能表现出良好的推理能力。在训练机器学习模型时,我们会按照7:1:2的比例将数据集划分为训练集、验证集和测试集。这些数据集被视为独立同分布的集合。训练集用于寻找最优参数,验证集用于优化超参数,而测试集用于评估模型的泛化性能。在这个过程中,训练误差指的是在训练集上的误差,而测试误差则是指在测试集上的误差。我们通常用测试误差来衡量模型的泛化性能。

泛化问题

在训练过程中,可能会出现欠拟合和过拟合的问题。

欠拟合与过拟合
  • 欠拟合:模型无法充分学习数据的特征,导致预测结果不准确,类似于“营养不良”。
  • 过拟合:模型不仅学到了数据的主要特征,还学到了一些噪音特征,导致预测结果带有偏差,类似于“营养过剩”。
原因

模型的容量决定了其拟合各种函数的能力。容量较低的模型难以拟合训练数据,容易导致欠拟合。而容量较高的模型虽然能更好地拟合复杂任务,但当容量超出实际需要时,可能会产生过拟合。理想的模型应当具备适中的容量,既能处理复杂的任务,又能避免过拟合。

判定

欠拟合和过拟合可以通过两个关键指标来判断: - 训练误差较高时,易发生欠拟合。 - 训练误差和测试误差差距较大时,易发生过拟合。

示例

如图所示,左图中使用线性函数拟合数据,导致欠拟合;中图中使用二次函数拟合数据,泛化效果较好;右图中使用九次多项式拟合数据,导致过拟合。

示意图

逻辑推理与机器学习

逻辑推理是从样本数据中提炼出普遍规律的一种确定性推理方法,需要所有数据信息。而机器学习是一种概率推理,不需要掌握所有数据信息,只需保证大多数数据可以被正确表示。遗憾的是,不同机器学习算法在未观测数据上的表现可能相同,因此没有一种算法总是优于其他算法。研究机器学习的目标并不是找到最通用或最好的算法,而是找到最适合特定任务的算法。很多时候,机器学习算法的目标是使训练误差尽可能小,而不是追求最优函数。依据奥卡姆剃刀原则,在所有可以解决问题的模型中,选择最简单的模型。

解决方法

2.1 选择复杂模型

含义

简单模型的表达能力有限,可以考虑使用更复杂的模型,如线性模型、多项式模型、支持向量机(SVM)、隐马尔科夫链以及深度学习网络等。

作用

避免欠拟合。

2.2 Boosting

含义

使用不同类型的模型,或在不同数据集上训练的同一类型模型,这些模型之间存在强相关性,通过平均它们的结果来改进模型性能。

作用

避免欠拟合。

2.3 提供更多训练数据

含义

增加训练数据量是防止欠拟合和过拟合的有效方法,但需要更多的计算资源。

作用

避免过拟合。

2.4 Bagging

含义

使用不同类型的模型,或在不同数据集上训练的同一类型模型,这些模型之间存在弱相关性,通过平均它们的结果来改进模型性能。

作用

避免过拟合。

2.5 正则化

含义

模型的表现不仅受假设空间中函数数量的影响,还受函数具体形式的影响。正则化是降低泛化误差而非训练误差的方法,通过在代价函数中加入正则化项来实现,常用的正则化方法包括L0、L1和L2范数。

作用

增加正则化项可以防止过拟合,减少正则化项可以防止欠拟合。

示例

如图所示,正则化项的加入使得代价函数变成了训练集上的均方误差和正则项之和。偏好的是L2范数较小的权重。

正则化示意图

2.6 Dropout

含义

在训练过程中,随机丢弃一部分神经网络的输入,从而降低网络规模,提升泛化能力。

作用

避免过拟合。

    本文来源:图灵汇
责任编辑: : 央宗
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
泛化机器提升才能如何学习
    下一篇