发现模型概览

〖摘要〗 在很多模型假设中存在各种形式的隐变量和隐结构,其目的是使高维数据能够得到足够地解释,以便发现或挖掘隐藏在可观测数据深层的知识或信息。我们将此类模型称为 发现模型 或者 广义隐变量模型。本文是此类模型的一个总揽,大部分内容摘自 Murphy 的《机器学习:高级主题》的第 27 章。

问题提出

发现模型假设我们能够观测到的数据 x\boldsymbol{x} 是由某些底层的潜在因素 z\boldsymbol{z} ( 通常是低维的 )导致,并且通常 z\boldsymbol{z} 代表了世界的某种 “真实” 状态。至关重要的是,这些潜在因素通常被认为对模型的最终用户有意义 ( 也就是说,评估此类模型需要领域专业知识,具有可解释性 )。

我们的目的是通过对可观测数据 x\boldsymbol{x} 的处理,得到潜在因素 z\boldsymbol{z} 的底层作用机理, 进而能够给可观测数据的生成作出一个合理的解释。

这种反向建模方法广泛用于科学和工程中,其中 z\boldsymbol{z} 代表了自然界中待估计的潜在状态,而 x\boldsymbol{x} 只是这种 “真实” 状态的某种含噪声表现或部分表现。

这种反向建模方法可以抽象为:

z^(x)=argmaxzp(zx)=argmaxzlogp(z)+logp(xz)(1)\hat{\boldsymbol{z}}(\boldsymbol{x}) = \underset{\boldsymbol{z}}{\operatorname{argmax}} \quad p(\boldsymbol{z} \mid \boldsymbol{x}) = \underset{\boldsymbol{z}}{\operatorname{argmax}} \, \log p(\boldsymbol{z}) + \log p(\boldsymbol{x}|\boldsymbol{z}) \tag{1}

〖证明〗

p(zx)=p(x,z)p(x)p(z|x) =\frac{p(x,z)}{p(x)}

p(xz)=p(x,z)p(z)p(x|z)=\frac{p(x,z)}{p(z)}

p(zx)=(xz)p(z)p(x)p(z|x)=\frac{(x|z)p(z) }{p(x)}

xx 给定时, 边缘似然 p(x)p(x) 是一常数。所以 公式 (1) 成立。

隐变量模型与其他不含隐变量的模型不同之处在于:整个模型假设中,除了 数据 D={x,y}\mathcal{D} = \{\boldsymbol{x},\boldsymbol{y} \}模型参数 θ\boldsymbol{\theta} 外,还存在同样不可观测的 隐变量 z\boldsymbol{z}。由于模型假设中有可能存在任意可能数量和类型的隐变量,以及任意可能复杂度的隐结构,致使隐变量模型有时候变得非常复杂,因此隐变量模型成为统计模型中的一个庞大家族体系。从这个意义上来说,统计模型可以根据是否含隐变量,分为两个支系:隐变量模型和非隐变量模型。如果同时考虑是否参数模型的因素,则可以大致可以将统计模型分为四类:

参数模型 非参数模型
非隐变量模型 广义线性模型、 前馈神经网络等 KNN、决策树、核方法、高斯过程等
隐变量模型 有限混合模型、隐类别模型、状态空间模型等 隐树模型、狄利克雷过程混合模型、高斯过程混合模型等

应用场景

  • 场景 1:同时知道先验 p(zθ)p(\boldsymbol{z} \mid \boldsymbol{\theta}) 和似然 p(xz,θ)p(\boldsymbol{x} \mid \boldsymbol{z},\boldsymbol{\theta}) (即模型参数 θ\boldsymbol{\theta} 已知),只需解决 z\boldsymbol{z} 的推断问题。
  • 场景 2:但更常见的是,模型参数 θ\boldsymbol{\theta} 也(部分)未知,需要从可观测样本 d={xn:n=1:n}d = \{\boldsymbol{x}_n: \quad n = 1:n\} 中推断出来。
  • 场景 3:模型本身的结构(即似然也未知)甚至也是未知的,需要通过学习得到。

常见模型

  • 在『隐因子模型』板块中,讨论一些简单的隐变量模型,此类模型中的可观测数据大多是固定维数的向量,例如 xRD\boldsymbol{x} \in \mathbb{R}^D
  • 在『状态空间模型』板块中,讨论序列数据的隐变量模型,即 x=x1:t\boldsymbol{x} = \boldsymbol{x}_{1:t},例如语音、视频、基因组数据等。通常这些模型中包含非线性部分。另外,此类模型可以拓展至时空应用场景。
  • 在『概率图学习』板块中,讨论如何从数据中学习概率图的结构。
  • 在『非参数贝叶斯模型』板块中,讨论多种含隐变量的非参数化贝叶斯模型,这使我们能够对模型的更多方面实施不确定性表达,例如隐藏状态数量、模型结构、功能依赖性的形式等。所学表示的复杂性可以动态增长,具体取决于数据的数量和质量(是否是信息性的)。这在执行发现任务时非常重要,并帮助我们在保持可解释性同时,具有一定灵活性。
  • 在『表示学习』板块中,讨论如何使用神经网络来学习表示。这可以用隐变量建模来解决,但也可以使用多种其他估计方法。
  • 在『可解释性』板块中,讨论如何解释所学(预测)模型的行为。

统计推断

隐变量模型的统计推断相对于非隐变量更为复杂。传统非隐变量的模型参数,可以采用的精确推断、随机推断和近似推断等多种成熟方法,但对于隐变量模型来说,除了考虑模型参数之外,还要考虑隐变量自身的推断问题。

对于隐变量模型而言,比较常用的统计推断方法是 变分推断 方法(最早面向隐因子模型的 EM 算法 和目前面向神经网络的变分自编码器等,均可视为变分推断的特例)。

预测与生成