OLS 线性回归中的成本函数

机器算法验证 回归 机器学习 损失函数
2022-02-12 01:40:29

我对 Andrew Ng 在 Coursera 上关于机器学习的线性回归讲座感到有些困惑。在那里,他给出了一个最小化平方和的成本函数:

12mi=1m(hθ(X(i))Y(i))2

我明白在哪里12来自。我认为他这样做是为了当他对平方项进行导数时,平方项中的 2 将与一半抵消。但我不明白在哪里1m来自。

为什么我们需要做1m? 在标准线性回归中,我们没有它,我们只是将残差最小化。为什么我们在这里需要它?

2个回答

正如您似乎意识到的那样,我们当然不需要1/m得到线性回归的因子。最小化器当然是完全相同的,有或没有它。标准化的一个典型原因是m这样我们就可以将成本函数视为“泛化误差”的近似值,它是随机选择的新示例(不在训练集中)的预期平方损失:

认为(X,Y),(X(1),Y(1)),,(X(m),Y(m))从某个分布中抽样 iid。那么对于大m我们期望

1mi=1m(hθ(X(i))Y(i))2E(hθ(X)Y)2.

更准确地说,根据强数定律,我们有

limm1mi=1m(hθ(X(i))Y(i))2=E(hθ(X)Y)2
概率为 1。

注意:上面的每个语句都是针对任何特定的的,在不查看训练集的情况下选择。对于机器学习,我们希望这些陈述适用于基于其在训练集上的良好性能而选择的在这种情况下,这些说法仍然成立,尽管我们需要对函数集做出一些假设,并且我们需要比定律更强大的东西大数。 θθ^{hθ|θΘ}

不必无论您包括还是抑制它,损失函数都具有相同的最小值。如果你包含它,你会得到一个很好的解释,即最小化(一半)每个数据点的平均误差。换句话说,您正在最小化错误而不是总错误。1m

考虑比较两个不同大小的数据集的性能。原始误差平方和不能直接比较,因为较大的数据集往往由于其大小而具有更多的总误差。另一方面,每个数据点的平均误差

你能详细说明一下吗?

当然。您的数据集是数据点的集合。一旦有了模型 ,单个数据点上的最小二乘误差为{xi,yi}hh

(h(xi)yi)2

当然,每个数据点都不同。现在,如果我们简单地总结错误(并根据您描述的原因乘以二分之一),我们会得到总错误

12i(h(xi)yi)2

但是如果我们除以和数,我们得到每个数据点的平均误差

12mi(h(xi)yi)2

平均误差的好处是,如果我们有两个不同大小的数据集那么我们可以比较平均误差而不是总误差。因为如果第二个数据集的大小是第一个数据集的 10 倍,那么我们预计相同模型的总误差大约会大 10 倍。另一方面,平均误差除以数据集大小的影响,因此我们希望性能相似的模型在不同数据集上具有相似的平均误差。{xi,yi}{xi,yi}