虽然我从概念上理解这个术语,但我很难从操作上理解它。任何人都可以通过提供一个例子来帮助我吗?
机器学习中的假设空间到底是什么?
假设一个具有四个二进制特征和一个二进制输出变量的示例。以下是一组观察结果:
x1 x2 x3 x4 | y
---------------
0 0 0 1 | 0
0 1 0 1 | 0
1 1 0 0 | 1
0 0 1 0 | 1
机器学习 (ML) 算法可以使用这组观察结果来学习f
能够预测来自输入空间y
的任何输入的值的函数的值的函数。
我们正在寻找以正确方式解释所有可能输入之间的f(x) = y
关系的基本事实。x
y
该函数f
必须从假设空间中选择。
为了更好地理解:输入空间在上面给出的示例中,它的可能输入的数量。假设空间为因为对于输入空间的每组特征,两个结果(0
和1
)是可能的。
ML算法帮助我们从相对较大的假设空间中找到一个函数,有时也称为假设。
参考
假设空间与所谓的最大似然偏差方差权衡的主题非常相关。如果模型中的参数数量(假设函数)太少,模型无法拟合数据(表明欠拟合,假设空间太有限),则偏差高;而如果您选择的模型包含的参数过多,超出了拟合数据所需的参数,则方差会很高(表明过度拟合并且假设空间过于富有表现力)。
如So S的回答中所述,如果参数是离散的,我们可以轻松具体地计算假设空间中有多少可能性(或它有多大),但通常在现实生活中,参数是连续的。因此通常假设空间是不可数的。
这是我从经典机器学习教科书的相关部分借用和修改的一个例子:模式识别和机器学习来适应这个问题:
我们正在为一个隐藏在训练数据中的未知函数选择一个假设函数,该函数由生活在河外行星上的第三个人 CoolGuy 提供。假设CoolGuy知道函数是什么,因为数据案例是他提供的,他只是使用函数生成数据。让我们把它(我们只有有限的数据,CoolGuy 有无限的数据和生成它们的函数)称为基本事实函数,并表示为.
绿色曲线是,而蓝色的小圆圈是我们拥有的案例(它们实际上并不是 CoolGuy 传输的真实数据案例,因为它会被一些传输噪声污染,例如黄斑或其他东西)。
我们认为隐藏函数会非常简单,然后我们尝试使用线性模型(在非常有限的空间内做出假设): 只有两个参数:和,我们使用我们的数据训练模型,我们得到:
我们可以看到,无论我们使用多少数据来拟合假设,它都不起作用,因为它不够表达。
所以我们尝试了一个更具表现力的假设:有十个自适应参数,我们也训练模型,然后我们得到:
我们可以看到它的表现力太强了,适合所有的数据案例。我们看到一个更大的假设空间(因为可以表示为通过设置因为所有的 0 ) 比一个简单的假设更强大。但泛化也很糟糕。也就是说,如果我们从 CoolGuy 接收到更多数据并进行参考,那么经过训练的模型很可能在那些看不见的情况下失败。
那么对于训练数据集来说,假设空间有多大呢?我们可以从上述教科书中找到答案:
有时提倡的一种粗略启发式方法是,数据点的数量应不少于模型中自适应参数数量的某个倍数(例如 5 或 10)。
你会从教科书中看到,如果我们尝试使用 4 个参数,, 训练后的函数对于底层函数来说足够表达. 在这种情况下,找到数字 3(适当的假设空间)是一种魔法。
然后我们可以粗略地说,假设空间是衡量你的模型对训练数据的表达能力的度量。对训练数据足够表达的假设是具有表达假设空间的好假设。为了测试假设是好是坏,我们进行交叉验证以查看它在验证数据集中是否表现良好。如果它既不是欠拟合(太有限)也不是过度拟合(太有表现力),那么空间就足够了(根据奥卡姆剃刀,更简单的更可取,但我离题了)。
假设您有一个未知的目标函数你试图通过学习来捕捉。为了捕获目标函数,您必须提出一些假设,或者您可以将其称为候选模型,用 H 表示在哪里. 这里, 因为所有候选模型的集合称为假设类或假设空间或假设集。
有关更多信息,请浏览 Abu-Mostafa 的演示幻灯片:https ://work.caltech.edu/textbook.html