如何定义有效先验(模型)的可能性空间?

数据挖掘 机器学习模型 数据科学模型
2021-10-10 18:33:39

当一个人在任何复杂的数据上训练一个模型时,不可避免地会在大量可能的模型中得到一个特定的模型,这些模型会做出类似(甚至是相同)的预测。

例如,我们都可以在 mnist 上训练一个中性网络,并且我生成的模型将具有与您的模型不同的权重和偏差,即使它们做出相同的预测。

但是是否有任何算法不产生一个模型,而是产生对所有可能描述数据的模型空间的描述?

这甚至有意义吗?在某种程度上,据我所知,模型代表了一组先验(偏差和权重)。这种事情不做是因为太贵了吗?

以下面的谜语为例,“一个男人和他的儿子发生了一场可怕的事故,被紧急送往医院接受重症监护。医生看着男孩,惊呼道:“我不能给这个男孩做手术,他是我的儿子!” 这怎么可能?'''

您可能有一个先验说“大多数外科医生是男性”,而另一个先验说“大多数父母都是异性恋”。你有两个模型可以解释数据,当然它们是相互排斥的:要么男孩有两个父亲,要么外科医生是他的母亲。

关键是,这两个模型都可以解释数据,在你获得更多数据之前你不知道哪个模型是正确的。此外,同样重要的是,您可以将每个模型的关系映射到您的先验信念,因此当您了解哪个是有效的时,您可以相应地更新您的先验。

产生所有可能模型的概率空间的技术或算法似乎是一种潜在的强大工具。然而我在任何地方都找不到这种东西。

是否有任何算法或机器学习技术可以做到这一点?此外,根据您的先验,您甚至如何根据所有可能的有效模型的可能性在数学上描述它们的可能性空间?

谢谢你的帮助!

3个回答

从理论的角度来看,我认为这个问题是“给定一个问题,有没有办法确定它的绝对最佳学习算法?”的变体。为什么?因为正如 OP 正确建议的那样,如果有一种方法可以表示所有可能的模型/先验,那么假设提供了无限的数据流,我们将能够最终确定绝对最佳的学习算法。不幸的是,没有免费午餐定理是一个理论结果,它表明不可能有这种“绝对最佳”的学习方法。(老实说,我个人对这种事情不了解,但维基百科对机器学习定理的含义给出了一个很好的简短解释。)

从实际的角度来看,这是一个设计问题,即一个人如何选择表示问题。当一个人代表一个问题时,很容易忽略多少简化。在 OP 提出的例子中,可以想象一个无限的“另类世界”:也许“父亲”这个词没有它通常的含义;也许它发生在人们可以有任意数量的父母的未来;等等。我的观点是:每当正式陈述一个问题时,无论如何都会做出大量假设,其中大部分是无意识的。这不仅仅是成本问题(当然很重要),而是“针对”确切问题的问题:如果我们试图让可能性空间完全开放,那么我们甚至无法开始解决问题,就像人们必须就共同语言达成一致才能相互理解一样。因此,为特定问题选择特定的先验/模型空间类似于修复问题的语言,并且在这样做时,重要的是要考虑与之相关的限制/假设。

是的,理论上讲会很贵,但是

以你为例

以下面的谜语为例,“一个男人和他的儿子发生了一场可怕的事故,被紧急送往医院接受重症监护。医生看着男孩,惊呼道:“我不能给这个男孩做手术,他是我的儿子!” 这怎么可能?''' 你可能有一个先验说“大多数外科医生是男性”,另一个说“大多数父母都是异性恋”。你有两个模型可以解释数据,当然它们是相互排斥的:要么男孩有两个父亲,要么外科医生是他的母亲。

这些事实可以建模为特征,“先验”是历史训练数据,预测概率是“不同的模型”

对我来说,您似乎在谈论声明式编程这是一种不同的编程风格,不是编写解决问题的过程(即计算模型的权重),而是描述程序应该解决的问题

一种示例语言是Prolog

此类程序的输出是对解决您描述的问题所需的关系和术语的描述。如果有一个解决方案,它会给你,但解决方案甚至可能是:surgeon(parent, boy) AND parent(X, boy) AND [X(dad) or X(mom)].