我从一本书中读到以下内容:
您可以直观地将表示空间的维度理解为“在学习内部表示时,您允许模型拥有多少自由度”。拥有更多的单元(更高维的表示空间)可以让您的模型学习更复杂的表示,但它会使模型的计算成本更高,并可能导致学习不需要的模式(这些模式会提高训练数据的性能,但不会提高训练数据的性能)测试数据)。
为什么使用更高的表示空间会导致训练数据的性能提升,而不是测试数据的性能提升?
当然,在训练数据中学习的表示/模式也会在测试数据中找到。
我从一本书中读到以下内容:
您可以直观地将表示空间的维度理解为“在学习内部表示时,您允许模型拥有多少自由度”。拥有更多的单元(更高维的表示空间)可以让您的模型学习更复杂的表示,但它会使模型的计算成本更高,并可能导致学习不需要的模式(这些模式会提高训练数据的性能,但不会提高训练数据的性能)测试数据)。
为什么使用更高的表示空间会导致训练数据的性能提升,而不是测试数据的性能提升?
当然,在训练数据中学习的表示/模式也会在测试数据中找到。
您的问题的答案是您的模型的容量(即您的模型可以计算的函数的数量和类型)通常会随着参数的数量而增加。因此,一个更大的模型可能会更好地逼近您的训练数据所代表的函数,但同时,它可能没有考虑到测试数据,这种现象称为过度拟合训练数据(即拟合“太多”训练数据)。
理论上,你想要完美地拟合训练数据,所以过拟合应该没有意义,对吧?问题是,如果我们只拟合所有(训练)数据,就无法凭经验检查我们的模型在未见数据上的表现是否良好,即它会泛化到训练期间未见的数据吗?因此,我们将数据分为训练数据和测试数据:我们想了解我们的模型是否也能在看不见的数据上表现良好。
还有一些理论界限可以确保您在概率上和近似上可以概括:如果您的训练数据多于某个阈值,那么您表现不佳的概率很小。然而,这些理论界限在实践中通常不会被考虑在内,因为例如,我们可能无法收集更多数据来确保满足界限。
当然,在训练数据中学习的表示/模式也会在测试数据中找到。
这可能是错误的假设,也是您感到困惑的原因。您可以假设您的训练数据和测试数据都来自同一个分布,但这并不一定意味着它们具有相同的模式。例如,我可以从高斯样本中采样 13 个数字,前 10 个数字可能非常接近和最后一个可能接近. 如果您拆分此数据,以便您的训练数据包含与测试数据不同的模式,则不能保证您在测试数据上也能表现良好。
最后,请注意,在监督学习中,当我们将模型拟合到标记数据时,我们的最终目标是学习一个函数(或函数的概率分布),我们通常假设训练和测试数据都是来自我们未知的目标函数,即, 在哪里(在哪里是您的标记数据集),并且是未知的目标函数(即我们想用我们的模型计算的函数),所以,如果我们的模型在训练数据上表现良好但在测试数据上表现不佳,我们假设训练和测试数据都来自同一个函数,我们的模型无法计算我们的目标函数如果它在测试数据上表现不佳。