自由度和训练数据集的大小有什么关系?

人工智能 机器学习 比较 回归
2021-10-23 18:11:01

我正在阅读 Bishop 的《模式识别》一书。

有一次他说

为了M=9,训练集误差变为零,正如我们预期的那样,因为这个多项式包含 10 个自由度,对应于10系数w0,,w9,因此可以精确地调整到10训练集中的数据点。

在哪里M是假设函数的阶,并且w是假设函数的权重。

我不明白如何拥有10自由度将模型完全调整到10数据点?这是否意味着只要我们在训练集中有多个数据点等于自由度,误差就会为零?

1个回答

当您定义表格的直线时y=mx+c,你需要2分(x1,y1)(x2,y2), 求解 2 个变量mc(您可以轻松地以图形方式对此进行可视化)。同样,形式的抛物线y=ax2+bx+c将需要 3 个这样的点。

现在将其视为 ML 问题,您得到分数,您必须估计参数以使训练误差为 0(回归)。所以就像前一个案例一样,你有一堆(xi,yi)你必须拟合一条曲线,你必须选择它的自由度。这里m,c,a,b全部替换为更通用的w作为参数调用

如果你有10自由度和10您可以解决模型参数的数据点(明确的解决方案,即仅存在一个且一个唯一的解决方案)。然而,如果自由度较低,您将得到一个可能会错过一点的解决方案。例如,如果给你 3 分并要求用一条直线穿过它,你可能会也可能不会(取决于共线性)。在相反的情况下,如果您有更多的自由度,您可以获得单个参数的多个值。假设有一个额外的自由度,您可以将一个参数保持在某个固定值并解决上面提到的方程的其余部分,您可以为其余参数获得一些值。现在将相同的参数保持在不同的固定值并重复相同的过程,您会得到其他参数的一些不同值。

一般来说,这样看更容易:

如果假设你有 3 个自由度y=w2x12+w1x1+w0和 3 个数据点(x1,y1),(x2,y2),(x3,y3),可以得到方程组:

y1=w2x12+w1x1+w0
y2=w2x22+w1x2+w0
y3=w2x32+w1x3+w2

因此你得到一个线性方程组(注意:xi,yi这里是已知的)。这里唯一的未知数是wi有多种方法可以解决。您可以将此扩展为n方程。