我很难理解为什么我会首先使用 dropout、正则化、数据增强等来摆脱过度拟合。我知道如果您的模型太大或数据太稀疏,那么您的模型可能会开始记忆数据并且在新数据上表现不佳。但是,在任何情况下,添加 dropout、正则化等会提高验证集的准确性吗?例如,如果我的训练 acc 是 95% 并且 val 准确度是 70%,那么消除过度拟合是否会简单地将训练准确度降低到 val 准确度?或者有没有办法真正提高训练的准确性?我认为对此有一些直觉,将不胜感激!
摆脱过拟合有什么意义?
这就像只用过去一年的论文 (PYP) 来学习考试,而你就是分类器。不为考试而练习任何 PYP 是不明智的,这会导致考试成绩不佳(拟合不足)。另一方面,记住 PYP 的答案会很糟糕,因为你不能很好地概括与 PYP 绝对不同的试卷(过度拟合)。
基本上,预测误差可以分解为三项,其中两项是您可以控制的。MSE(均方误差)= 方差 + Bias^2 + 不可约误差。具有高方差的模型意味着训练数据集中的微小变化会在模型的拟合中产生很大的变化(在这种情况下)。具有低偏差的模型本质上非常适合训练数据集。不可减少的错误是问题本身固有的困难(因此,不可控),所以让我们忽略它。
在理想的世界中,我们显然希望低方差和低偏差。然而,这在现实中是极其困难的,因为直觉上,方差和偏差的两种力量相互对抗。原因是我可以通过简单地增加模型的复杂性、对每一个怪癖进行建模并基本上做你所说的“记忆数据集”来任意使我的模型非常适合数据(因此具有低偏差)。您会看到,数据是随机变量的实现,可能会产生许多不同的结果,因此数据集中存在噪声。因此,对数据集中的确切模式/趋势进行建模并不能很好地概括,因为数据本身并不是总体的完美表示(这是我们的目标),而是它的一个样本。
通过增加模型的复杂性以任意提高模型在数据集上的拟合度,我有效地用大量的方差来交换我的所有偏差。我这样做是因为很明显,通过将模型的复杂性增加到我的模型甚至可以记住数据集中的噪声的程度,具有不同观察值的数据集中相对较小的变化(来自同一群体的另一个随机样本)将改变非常适合模型。这是因为噪声本质上是随机的,不可预测且仅对于该特定数据集(样本)是唯一的,而不是数据来自的一般人群。由于我的模型随着我训练它的数据集发生了很大变化(许多人称之为不稳定模型),我的模型预测本质上也是非常随机的,因此,我的模型在新保留数据上的表现不会比随机猜测者好。这就是人们说他们的模型“过拟合”时的意思。我已经完美地拟合了训练数据集,代价是不对数据中的实际信号进行建模,而是对训练集独有的一堆噪声进行建模。
所以人们发现,我们需要在非常好地拟合训练数据和注意不建模噪声之间做出权衡。因此,像 NN 中的 dropout 层、L1/L2 正则化、树中的修剪、学习率、提前停止和成本复杂性惩罚等都在有意消除一些偏差(不太适合训练集)以希望减少方差(具有稳定的模型,因此具有稳定的非随机预测)。在两者之间取得平衡本质上是预测建模的意义所在,所有 ML 方法都试图以自己的方式解决这个问题。
在您的示例中,消除过度拟合意味着将验证准确度移近训练准确度,而不是相反。但是,当然,这通常是一个白日梦,你几乎总是会有些过拟合。考虑到手头的问题,您认为可接受的程度是关键。例如,如果我在许多情况下的训练准确度为 0.99,验证准确度为 0.89,我仍然会对模型感到满意。
训练准确性几乎无关紧要。为了回答你的一些问题,我将使用一个假设的例子。
让我们假设我们正在做二进制分类。为简单起见,我们有完美平衡的类(即 A 类实例与 B 类实例数量相同)。
模型 1
我们训练一个模型并获得 100% 的训练准确率,但 50% 的验证准确率。这个模型不值钱!即使它获得了 100% 的训练准确率,但在对看不见的数据进行测试时,它就像抛硬币一样好。
模型 2
我们训练另一个模型,得到 80% 的训练准确率和 70% 的验证准确率。这对我们的第一个模型来说是一个很大的改进,尽管我们的训练准确率下降了 20%。
模型 3
我们的第三个模型获得了 55% 的训练准确率和 60% 的验证准确率。这可能是由于验证集较小,这会使验证准确性更多地依赖于机会。尽管我们的最终目标是最大化验证准确度,但我们的模型仍然需要泛化我们的特征空间,这本质上会导致更高的训练准确度!
现在让我们可视化(请原谅我的粗略图纸)二元分类的模型概括。每个实例有 2 个特征,它们共同定义了我们的特征空间。我们的模型试图在这个特征空间中用一条连续的线将两个类分开(绿线是我们的模型)。我们的训练和验证数据集如下图所示。
在这里我们可以看到提高训练准确度并不会直接导致验证准确度提高(参见过拟合示例)。但是,例如,如果存在欠拟合,训练准确度仍然会影响验证准确度。
记住我们的目标:最大化验证准确性。
与具有良好拟合的模型相比,欠拟合和过拟合都会导致验证集的性能更差。这就是我们不希望过拟合(或欠拟合)的原因;两者都倾向于降低验证的准确性。
通常,验证准确度低于或接近训练准确度。它很少比训练准确度高得多,因为这通常意味着有很大的运气。因此,尽管我们的目标是最大化验证准确度,但训练准确度几乎就像验证准确度的上限。这就是为什么我说它几乎无关紧要:
最大化训练准确性不是我们的最终目标,但这样做通常是获得更好验证准确性的先决条件。









