为什么逻辑回归成本函数会按示例数量进行缩放?

机器算法验证 机器学习
2022-03-23 19:42:31

我有时会看到成本函数与正则化器一起除以 1/2m,其中 m 是示例数。当我们试图找到成本的最小值时,为什么按这个数量进行扩展很重要?它不影响最小值的位置。例子:

在此处输入图像描述

2个回答

我认为@soufanom 有一个很好的答案。我会尝试补充。

一般来说,损失函数保持不变有两个原因。

  • 第一个原因是以后有一个更简单的符号。例如,你可以有一个损失函数f(y,y^)=12(yy^)2, 取导数y,你不会有烦人的术语2.

  • 第二个原因是试图“标准化”数据点数量的损失值。例如,(让我们现在考虑回归),假设你有10数据点,对于每个数据点,您1.0错误,例如,基本事实是3.5,你的预测是2.5等。然后,您对整个数据集的损失是10.0. 另一方面,如果你有100数据点。你还有1.0每个估计的误差。那么你对整个数据的损失是100. 这没有太大意义,因为两个模型是相等的,但应用于不同的数据。如果您按数据数量对损失进行归一化(将总损失除以数据数量),则上述示例中的损失值将相同。

进一步建立@hxd1011的答案:

假设我们有一个固定的模型——参数和所有固定的。我们会将均方误差视为我们的误差度量。

MSE=1mi=1m(hθ(x(i))y(i))2

当我们使用参数的某些函数进行正则化时,我们添加了形式的参数λj=1nf(θj)在你的情况下f(x)=x2,但这是一个更笼统的概念。

如果您不按样本大小缩放该正则化 - 那么对于给定的λ, 作为m,正则化变得毫无意义。通过添加缩放比例,我们获得了两件事。

  1. 规模λ对于不同的样本量变得稳定。(即,您可以了解正在规范化的“多少”)在某些情况下(实时模型更新),这是至关重要的。

  2. 这与我们预测的平均损失密切相关。虽然最初这似乎不如 MSE 之类的概念有用,但如果我们进行正则化,那么它是一个理想的功能。