发现模型概览
发现模型概览
〖摘要〗 在很多模型假设中存在各种形式的隐变量和隐结构,其目的是使高维数据能够得到足够地解释,以便发现或挖掘隐藏在可观测数据深层的知识或信息。我们将此类模型称为 发现模型 或者 广义隐变量模型。本文是此类模型的一个总揽,大部分内容摘自 Murphy 的《机器学习:高级主题》的第 27 章。
问题提出
发现模型假设我们能够观测到的数据 是由某些底层的潜在因素 ( 通常是低维的 )导致,并且通常 代表了世界的某种 “真实” 状态。至关重要的是,这些潜在因素通常被认为对模型的最终用户有意义 ( 也就是说,评估此类模型需要领域专业知识,具有可解释性 )。
我们的目的是通过对可观测数据 的处理,得到潜在因素 的底层作用机理, 进而能够给可观测数据的生成作出一个合理的解释。
这种反向建模方法广泛用于科学和工程中,其中 代表了自然界中待估计的潜在状态,而 只是这种 “真实” 状态的某种含噪声表现或部分表现。
这种反向建模方法可以抽象为:
隐变量模型与其他不含隐变量的模型不同之处在于:整个模型假设中,除了 数据 和 模型参数 外,还存在同样不可观测的 隐变量 。由于模型假设中有可能存在任意可能数量和类型的隐变量,以及任意可能复杂度的隐结构,致使隐变量模型有时候变得非常复杂,因此隐变量模型成为统计模型中的一个庞大家族体系。从这个意义上来说,统计模型可以根据是否含隐变量,分为两个支系:隐变量模型和非隐变量模型。如果同时考虑是否参数模型的因素,则可以大致可以将统计模型分为四类:
… | 参数模型 | 非参数模型 |
---|---|---|
非隐变量模型 | 广义线性模型、 前馈神经网络等 | KNN、决策树、核方法、高斯过程等 |
隐变量模型 | 有限混合模型、隐类别模型、状态空间模型等 | 隐树模型、狄利克雷过程混合模型、高斯过程混合模型等 |
应用场景
- 场景 1:同时知道先验 和似然 (即模型参数 已知),只需解决 的推断问题。
- 场景 2:但更常见的是,模型参数 也(部分)未知,需要从可观测样本 中推断出来。
- 场景 3:模型本身的结构(即似然也未知)甚至也是未知的,需要通过学习得到。
常见模型
- 在『隐因子模型』板块中,讨论一些简单的隐变量模型,此类模型中的可观测数据大多是固定维数的向量,例如 。
- 在『状态空间模型』板块中,讨论序列数据的隐变量模型,即 ,例如语音、视频、基因组数据等。通常这些模型中包含非线性部分。另外,此类模型可以拓展至时空应用场景。
- 在『概率图学习』板块中,讨论如何从数据中学习概率图的结构。
- 在『非参数贝叶斯模型』板块中,讨论多种含隐变量的非参数化贝叶斯模型,这使我们能够对模型的更多方面实施不确定性表达,例如隐藏状态数量、模型结构、功能依赖性的形式等。所学表示的复杂性可以动态增长,具体取决于数据的数量和质量(是否是信息性的)。这在执行发现任务时非常重要,并帮助我们在保持可解释性同时,具有一定灵活性。
- 在『表示学习』板块中,讨论如何使用神经网络来学习表示。这可以用隐变量建模来解决,但也可以使用多种其他估计方法。
- 在『可解释性』板块中,讨论如何解释所学(预测)模型的行为。
统计推断
隐变量模型的统计推断相对于非隐变量更为复杂。传统非隐变量的模型参数,可以采用的精确推断、随机推断和近似推断等多种成熟方法,但对于隐变量模型来说,除了考虑模型参数之外,还要考虑隐变量自身的推断问题。
对于隐变量模型而言,比较常用的统计推断方法是 变分推断
方法(最早面向隐因子模型的 EM 算法
和目前面向神经网络的变分自编码器等,均可视为变分推断的特例)。