据我了解,此链接正则化用于减少模型的过度拟合。
- 当我们真的有很多数据时,过度拟合是不是很糟糕?
- 我不明白为什么“非常大的权重非常适合训练数据”?
- 是否总是需要正则化?
据我了解,此链接正则化用于减少模型的过度拟合。
过度拟合总是不好的,因为这意味着您对模型做了一些事情,这意味着它的泛化性能变得更糟。当您拥有大量数据时,这种情况不太可能发生,并且在这种情况下,正则化往往不太有用,但过度拟合仍然是您不想要的。
这张图(来自维基媒体)显示了一个过拟合的回归模型
。为了让回归线穿过每个数据点,回归在许多点上都有很高的曲率。在这些点上,模型的输出对输入变量值的变化非常敏感。这一般需要大数量级的模型参数,使输入的微小变化被放大为输出的大变化。
不,并不总是需要正则化,尤其是当您有太多数据以致模型不够灵活而无法利用噪声时。我建议将正则化放入并使用交叉验证来设置正则化参数。如果正则化没有帮助,交叉验证将倾向于使正则化参数足够小以至于它没有实际效果。我倾向于使用留一法交叉验证,因为对于许多有趣的模型(线性回归、支持向量机、内核机器、高斯过程等)来说,它的计算成本非常低,尽管它的高方差不那么有吸引力。
这取决于您的模型和数据的特殊性。例如,拟合未修剪的决策树总是会导致过度拟合,即使只是几个变量。参数模型也是如此,即使有大量数据,大量参数也会导致过度拟合。无论哪种方式,您都应该系统地尝试调整模型的复杂性,以确保获得最佳的泛化误差。
我不认为“大”权重的问题比“无约束”权重的问题多。向回归添加正则化项基本上会强制您的系数接近零(或其他一些预定义的先验值)的区域。正则化的贝叶斯解释使其更加明显:正则化参数(例如,用于岭回归)控制给定系数的先验标准偏差。高正则化意味着小系数的“机会”更高,并限制了它们的值,从而降低了模型的自由度并因此过度拟合。
取决于你的型号。如果您有大量数据和 2 个变量并且正在进行线性回归,那么可能不会。如果您将多项式拟合到 100 个数据点,那么是的。如果您不确定您的模型对训练数据的复杂程度,那么只需尝试少量正则化并查看泛化错误是否有所改善(使用验证集或 X 验证)。
当我们真的有很多数据时,过度拟合是不是很糟糕?
大量数据过拟合仍然是过拟合,过拟合是不好的。
我不明白为什么“非常大的权重非常适合训练数据”?
我在 Goodfellow 的 Deep Learning 中找到了一个示例(第 293 页):
假设我们将逻辑回归应用于类线性可分的问题。如果一组权重使模型非常适合数据,那么很明显将为我们提供更高的可能性。理论上,经过多次优化迭代,这种增长永远不会停止。
是否总是需要正则化?
这个问题似乎等于:过拟合总是发生吗?如果存在模型在训练期间从未见过的数据,则可能会发生过度拟合,因此需要进行正则化。似乎我们几乎无法在所有可能的情况下训练模型,那么通常正则化总是必要的。