tensorflow学习日志(四) 机器学习(泛化,过拟合, 数据集,验证集,测试集)

主要来源:视频学习网站Google机器学习教程

泛化 (Generalization)

泛化是指模型很好地拟合以前未见过的新数据(从用于创建该模型的同一分布中抽取)的能力。
在这里插入图片描述
过拟合: 过拟合模型在训练过程中产生的损失很低,但在预测新数据方面的表现却非常糟糕,即泛化能力差;
产生原因:过拟合是由于模型的复杂程度超出所需程度而造成的。机器学习的基本冲突是适当拟合我们的数据,但也要尽可能简单地拟合数据。

奥卡姆的威廉是 14 世纪一位崇尚简单的修士和哲学家。他认为科学家应该优先采用更简单(而非更复杂)的公式或理论。奥卡姆剃刀定律在机器学习方面的运用如下:
机器学习模型越简单,良好的实证结果就越有可能不仅仅基于样本的特性。

现今,我们已将奥卡姆剃刀定律正式应用于统计学习理论和计算学习理论领域。这些领域已经形成了泛化边界,即统计化描述模型根据以下因素泛化到新数据的能力:
模型的复杂程度;
模型在处理训练数据方面的表现;

衡量模型的泛化能力:
往往我们会把数据集划分为训练集验证集测试集

一般来说,在测试集上表现是否良好是衡量能否在新数据上表现良好的有用指标,前提是:
1.测试集足够大。
2.您不会反复使用相同的测试集来作假

典型陷阱:请勿对测试数据进行训练
损失低得令人惊讶?
在庆祝之前,请检查您是否不小心对测试数据进行了训练

机器学习细则
以下三项基本假设阐明了泛化:
1.我们从分布中随机抽取独立同分布 (i.i.d) 的样本。换言之,样本之间不会互相影响。(另一种解释:i.i.d. 是表示变量随机性的一种方式)。
2.分布是平稳的;即分布在数据集内不会发生变化。
3.我们从同一分布的数据划分中抽取样本。

总结
如果某个模型尝试紧密拟合训练数据,但却不能很好地泛化到新数据,就会发生过拟合。
如果不符合监督式机器学习的关键假设,那么我们将失去对新数据进行预测这项能力的重要理论保证。

训练集+测试集的划分

在这里插入图片描述
前面介绍了如何将数据集划分为训练集和测试集。借助这种划分,您可以对一个样本集进行训练,然后使用不同的样本集测试模型。采用两种分类之后,工作流程可能如下所示:
在这里插入图片描述
存在问题:我们基于给定测试集执行评估的次数越多,不知不觉地过拟合该测试集的风险就越高。接下来,我们会考虑更好的方案。(即测试集也会存在过拟合)

验证 (Validation):另一个划分方式

将数据集划分为两个子集是个不错的想法,但不是万能良方。通过将数据集划分为三个子集(如下图所示),您可以大幅降低过拟合的发生几率:
在这里插入图片描述
将单个数据集划分为三个子集。
使用验证集评估训练集的效果。然后,在模型“通过”验证集之后,使用测试集再次检查评估结果。下图展示了这一新工作流程:
在这里插入图片描述
在这一经过改进的工作流程中:

1.选择在验证集上获得最佳效果的模型。
2.使用测试集再次检查该模型。
该工作流程之所以更好,原因在于它暴露给测试集的信息更少。

猜你喜欢

转载自blog.csdn.net/sazass/article/details/87214134
今日推荐