【深度学习】图形模型基础(1):使用潜在变量模型进行数据分析的box循环

1.绪论

探索数据背后的隐藏规律,这不仅是数据分析的艺术,更是概率模型展现其威力的舞台。在这一过程中,潜在变量模型尤为关键,它成为了数据驱动问题解决的核心引擎。潜在变量模型的基本理念在于,那些看似复杂、杂乱无章的数据表象之下,往往隐藏着一种更为简洁、有序的结构和规律,只是这些规律和结构并不直接显露在表面。

我们的目标,便是利用概率模型作为探照灯,深入数据的迷宫,去揭示那些隐藏的规律。潜在变量模型,正是我们手中的强大工具,它能帮助我们挖掘出那些隐藏在数据背后的结构,揭示出数据间的内在联系。这些挖掘出的规律和结构,将成为我们解决问题的关键,引导我们找到更有效的解决策略。

因此,在数据驱动的决策和研究中,潜在变量模型发挥着不可替代的作用。它让我们能够更深入地理解数据,更准确地把握问题,更高效地找到解决方案。这就是潜在变量模型在数据驱动问题中的核心作用,也是概率模型揭示数据背后隐藏规律的艺术所在。

潜在变量模型在几个关键领域的实际应用示例如下:

  1. 消费者行为研究:

    • 潜在变量模型在消费者行为研究中具有广泛的应用。例如,汽车制造商可以通过潜在变量模型来研究消费者对汽车品牌的品牌忠诚度、购买意愿等潜在因素。这些潜在因素可以帮助汽车制造商更准确地理解消费者需求,从而制定更有效的市场策略。
    • 潜在变量模型的应用不仅限于汽车行业,它可以适用于各种消费品和服务的市场研究。通过揭示消费者的潜在动机和偏好,企业可以更加精准地定位目标市场,提升市场竞争力。
  2. 金融风险管理:

    • 在金融领域,潜在变量模型被广泛应用于风险管理。研究者可以利用潜在变量模型来研究金融市场的波动性、相关性等潜在因素,以更好地评估和管理风险。
    • 例如,在投资组合管理中,潜在变量模型可以帮助投资者识别不同资产之间的潜在关联和依赖关系,从而构建更加稳定和高效的投资组合。此外,潜在变量模型还可以用于金融市场的预测和建模,帮助投资者做出更准确的投资决策。
  3. 社会科学研究:

    • 在社会科学领域,潜在变量模型同样具有广泛的应用。例如,在社会网络分析中,潜在变量模型可以揭示出社会网络内部的潜在结构和特征,帮助研究者理解社会网络的动态变化和影响因素。
    • 此外,在教育研究中,潜在变量模型可以用于研究学生的学习能力、心理特质等潜在因素,以评估教育政策的效果和改进教学方法。
  4. 医学与生物学:

    • 在医学和生物学领域,潜在变量模型被用于揭示疾病发生的潜在机制和生物特性的潜在影响因素。例如,在遗传学研究中,潜在变量模型可以帮助研究人员识别出形成遗传疾病的潜在基因和基因组合。
    • 在流行病学研究中,潜在变量模型可以用于研究疾病的传播模式和影响因素,以制定更有效的预防和控制措施。

潜在变量模型在消费者行为研究、金融风险管理、社会科学研究和医学与生物学等多个关键领域都具有广泛的应用。通过揭示数据背后的潜在规律和关联,潜在变量模型为各个领域的研究提供了有力的工具和方法。

1.1 博克斯循环

我们认为,构建和应用潜在变量模型是解决数据分析问题的一个反复迭代的流程。首先,基于你推测数据中可能存在的隐藏结构类型,构建一个基础模型。接着,针对一个数据集,利用推断算法来近似估计后验概率——即在给定数据的情况下,隐藏变量的条件分布——它揭示了数据所展现的具体隐藏模式。最终,利用后验概率来评估模型与数据的契合度,找出模型成功和失败的关键方面。如果结果令人满意,便使用该模型来解决问题;如果不满意,则根据评估结果调整模型,并重新启动这一循环。图1展示了这一流程。
在这里插入图片描述图1: 博克斯循环
我们将上述循环称为“博克斯循环”。博克斯循环,作为对乔治·博克斯及其同事自20世纪60年代提出的科学方法论的现代诠释,强调了一种迭代的科学探索流程。这一流程以实验设计为起点,明确研究目标与所需数据,进而通过精心设计的实验步骤来收集信息。在数据收集阶段,重视数据的准确性与完整性,既包括定量数据也涵盖定性数据。

随着数据的汇聚,下一步是模型构建,这一阶段需要选择合适的模型类型并确定其参数,目的是建立一个能够准确描述数据规律的数学或统计模型。模型构建完成后,进入模型评估阶段,通过拟合优度检验、残差分析等方法来验证模型的有效性。若评估结果不尽人意,博克斯循环允许我们返回到前面的步骤,重新设计实验或调整模型。

迭代与优化是博克斯循环的核心,通过不断调整和完善,模型的拟合效果和解释能力得到提升。优化后的模型被应用于实际问题,如在工程领域构建执行特定任务的系统,或在探索性数据分析中对观测数据进行深入的总结与可视化。

博克斯循环的最终目标是实现持续学习与改进。随着新数据的获取和新知识的积累,模型得以不断更新,以适应新的挑战和需求。这一循环不仅适用于传统科学研究,同样适用于工程实践和现代数据分析领域,提供了一种系统性的方法来推动知识的发现和应用。

1.2 研究内容

本文旨在全面阐述博克斯循环的每个关键组成环节。在随后的章节中,我们将系统地展开论述。首先,在第2节,我们将深入探究概率建模作为一种强大工具,用于明确地表达关于数据的假设。为了更直观地呈现这些假设,我们将引入图模型符号,它作为结构化概率分布的直观视觉表达,有助于我们更清晰地理解数据的内在关系。

紧接着,在第3节,我们将聚焦于潜在变量模型。我们将通过一系列简单的示例,展示这些模型如何捕捉数据背后的隐藏结构和规律。同时,我们也将探讨在解决新问题时,如何灵活组合和扩展这些模型,以构建出更加复杂且适应性强的模型结构。

随后,在第4节,我们将详细介绍均场变分推断。这种方法为近似后验推断提供了有力的工具,它不仅可以轻松应用于广泛的模型类别,还能够有效处理大规模数据集。我们将解释其背后的原理和应用方法,以帮助读者更好地理解这一强大的推断技术。

最后,在第5节,我们将转向模型的评估与批评。我们将讨论如何使用预测似然和后验预测检验(PPCs)来评估模型的拟合度,并识别潜在的问题和改进方向。这些评估方法将帮助读者确保所构建的模型不仅具有理论上的合理性,而且在实际应用中也能表现出良好的性能。

需要强调的是,本文只是从一个特定的视角对博克斯循环及其关键组件进行了阐述。有关潜在变量模型的其他深入讨论和综述,读者可以参阅Skrondal & Rabe-Hesketh (2007)、Ghahramani (2012)和Bishop (2013)等文献。对于更全面的概率建模知识体系,我们建议阅读Bishop (2006)和Murphy (2013)等经典书籍。此外,Krnjajic´ et al. (2008)的工作为迭代模型构建提供了另一种有价值的视角。

我们期望通过本文的介绍,读者能够掌握迭代构建解决现实世界问题复杂方法的基本思路。然而,我们也必须强调,使用概率模型进行数据分析是一项需要不断实践和磨练的技艺。只有通过不断的实践,读者才能真正掌握这些工具,并在实际应用中发挥出它们的最大潜力。

2.潜在变量模型

在构建潜在变量模型时,我们寻求描述数据背后隐藏结构和规律的隐藏量。这些隐藏量被编码在隐藏和观测随机变量的联合概率分布中。一旦我们观察到一个数据集,我们会通过后验推断来揭示那些描述数据的特定隐藏量。后验,即给定观测值的隐藏变量的条件分布,不仅帮助我们理解数据的内在模式,还用于形成预测分布,即新观测值和模型所暗示的未来数据的分布。

混合模型示例

混合模型是潜在变量模型的一个简单而强大的实例。它假设数据点是由多个不同的分布生成的,每个数据点都来自一个特定的分布(或称为“聚类”)。在这个模型中,隐藏变量通常表示每个数据点的聚类分配以及每个聚类的参数(如均值和方差)。通过估计混合模型的后验分布,我们可以推断出数据的可能分组以及每个组的特征。

模型结构

一个完整的潜在变量模型通常包含三种类型的变量:

  1. 观测值:这是我们可以直接观察到的数据点,表示为 x = x 1 : N x = x_1:N x=x1:N
  2. 隐藏变量:这些变量编码了影响观测值分布的隐藏量,如聚类成员资格和聚类参数。我们用 h = h 1 : M h = h_1:M h=h1:M 来表示这些隐藏变量。
  3. 超参数:超参数是模型中的固定参数,通常通过经验或先验知识确定,用 η \eta η 表示。

我们专注于隐藏和观测随机变量的模型,并假设超参数是已知的。模型的核心是其联合概率分布 p ( h , x ∣ η ) = p ( h ∣ η ) p ( x ∣ h ) p(h, x \mid \eta) = p(h \mid \eta)p(x \mid h) p(h,xη)=p(hη)p(xh),它描述了隐藏变量和观测值如何相互作用。在观察到数据后,我们关注隐藏变量的条件分布 p ( h ∣ x , η ) p(h \mid x, \eta) p(hx,η),这通常通过贝叶斯推断得到。这个条件分布进一步用于计算预测分布 p ( x new ∣ x ) = ∫ p ( x new ∣ h ) p ( h ∣ x , η )   d h p(x_{\text{new}} \mid x) = \int p(x_{\text{new}} \mid h)p(h \mid x, \eta) \, dh p(xnewx)=p(xnewh)p(hx,η)dh,它给出了新观测值的概率分布。

高斯混合模型

以高斯混合模型为例,它假设数据是由多个高斯分布混合生成的。模型的隐藏变量包括每个数据点的聚类分配 z 1 : N z_1:N z1:N、每个聚类的均值 μ 1 : K \mu_1:K μ1:K,以及混合比例 θ \theta θ,一个非负的K维向量,其元素之和为1。数据的生成过程是先从混合比例中选择一个聚类,然后从相应的高斯分布中抽取数据点。在这个模型中,超参数 η \eta η 是高斯分布和混合比例的先验分布的参数。

当我们观察到一组数据 x 1 : N x_1:N x1:N 时,我们通过估计高斯混合模型的后验分布 p ( μ 1 : K , θ , z 1 : N ∣ x 1 : N ) p(\mu_1:K, \theta, z_1:N \mid x_1:N) p(μ1:K,θ,z1:Nx1:N) 来分析这些数据。这个后验分布揭示了数据的隐藏结构,将数据点聚类为K个组,并描述了每个组的位置(即均值)。预测分布则提供了对新数据点的预测,展示了模型对未来观测的期望。

模型表示

一个潜在变量模型可以通过多种方式表示:其生成概率过程、联合概率分布以及有向图模型。这些表示方法各有优缺点,但共同之处在于它们都旨在清晰地传达模型的结构和假设。

2.1 生成概率过程

生成概率过程为我们提供了一个框架,用于描述数据如何从潜在变量模型中产生。虽然在实际应用中,我们很少能确定一个模型完全“真实”地反映了数据的生成过程,但这种描述方式有助于我们直观地理解潜在变量之间是如何相互作用的。
在这里插入图片描述图2:
高斯混合模型的数据和推断示例。(a) 包含100个点的数据集。(b) 相同的数据集,现在以我们近似计算四个高斯混合模型的后验所得到的隐藏结构来可视化。每个数据点根据最可能被分配到的聚类进行着色,最可能的聚类均值以灰色标记,而轮廓线给出了下一个数据点的后验预测分布。

高斯混合模型的生成过程可以详细描述如下:

首先,我们抽取混合比例 θ \theta θ,它决定了从各个混合成分中生成数据点的概率,这通常通过狄利克雷分布(Dirichlet distribution)来建模,即 θ ∼ Dirichlet ( α ) \theta \sim \text{Dirichlet}(\alpha) θDirichlet(α)。其中, α \alpha α 是狄利克雷分布的超参数,它控制了混合比例 θ \theta θ 的分布。

接下来,对于每个混合成分 k k k,我们抽取其均值 μ k \mu_k μk,这通常假设服从一个先验分布,如正态分布 μ k ∼ N ( 0 , σ 0 2 ) \mu_k \sim \mathcal{N}(0, \sigma_0^2) μkN(0,σ02)。这里, σ 0 2 \sigma_0^2 σ02 是先验分布的方差,也是一个超参数,它决定了混合成分均值的分散程度。

然后,对于每个数据点 n n n,我们按照以下步骤生成:

a. 根据混合比例 θ \theta θ 抽取混合分配 z n z_n zn,即决定数据点 n n n 来自哪个混合成分。这通常通过离散分布(Discrete distribution)来实现,即 z n ∣ θ ∼ Discrete ( θ ) z_n \mid \theta \sim \text{Discrete}(\theta) znθDiscrete(θ)

b. 根据抽取的混合分配 z n z_n zn 和对应的混合成分均值 μ z n \mu_{z_n} μzn,我们抽取数据点 x n x_n xn。假设每个混合成分的数据点服从正态分布,即 x n ∣ z n , μ ∼ N ( μ z n , 1 ) x_n \mid z_n, \mu \sim \mathcal{N}(\mu_{z_n}, 1) xnzn,μN(μzn,1)。这里,我们假设所有混合成分的方差都是固定的,例如设为1(或者可以是另一个已知或估计的值)。

这个过程明确了模型的超参数:它们是狄利克雷分布的参数 α \alpha α 和混合成分先验分布的方差 σ 0 2 \sigma_0^2 σ02。这些超参数在模型建立时需要指定或估计。

后验分布可以被视为这个生成过程的逆转:给定观测到的数据 x = x 1 : N x = x_1:N x=x1:N,我们感兴趣的是可能的隐藏结构(即混合比例 θ \theta θ,混合成分均值 μ = μ 1 : K \mu = \mu_1:K μ=μ1:K,以及混合分配 z = z 1 : N z = z_1:N z=z1:N)的分布,即 p ( θ , μ , z ∣ x ) p(\theta, \mu, z \mid x) p(θ,μ,zx)。这个后验分布告诉我们在观测到数据后,哪些隐藏变量值更可能是真实的。

在这个模型中,混合比例 θ \theta θ 和混合成分均值 μ \mu μ 是全局隐藏变量,因为它们描述了整个数据集共享的隐藏结构。而混合分配 z z z 是局部变量,因为每个分配 z i z_i zi 仅影响第 i i i 个观测值的分布。这种区分在后续讨论近似后验分布的算法时具有重要意义。

2.2 联合分布与后验推断

高斯混合模型(GMM)的联合分布为模型中的隐藏变量(混合比例 θ \theta θ,混合成分均值 μ \mu μ,以及数据点的分配 z z z)和观测变量(数据点 x x x)提供了概率上的分解表示。这种分解直接反映了数据的生成过程。具体来说,GMM的联合分布可以表示为:

p ( θ , μ , z , x ∣ σ 0 2 , α ) = p ( θ ∣ α ) ∏ k = 1 K p ( μ k ∣ σ 0 2 ) ∏ i = 1 N ( p ( z i ∣ θ ) p ( x i ∣ z i , μ ) ) p(\theta, \mu, z, x \mid \sigma_0^2, \alpha) = p(\theta \mid \alpha) \prod_{k=1}^{K} p(\mu_k \mid \sigma_0^2) \prod_{i=1}^{N} \left( p(z_i \mid \theta) p(x_i \mid z_i, \mu) \right) p(θ,μ,z,xσ02,α)=p(θα)k=1Kp(μkσ02)i=1N(p(ziθ)p(xizi,μ))

其中:

  • p ( θ ∣ α ) p(\theta \mid \alpha) p(θα) 是狄利克雷分布,表示混合比例 θ \theta θ 的先验概率。
  • p ( μ k ∣ σ 0 2 ) p(\mu_k \mid \sigma_0^2) p(μkσ02) 是高斯分布,表示每个混合成分均值 μ k \mu_k μk 的先验概率。
  • p ( z i ∣ θ ) = θ z i p(z_i \mid \theta) = \theta_{z_i} p(ziθ)=θzi 是离散分布,表示数据点 x i x_i xi 分配给哪个混合成分的概率。
  • p ( x i ∣ z i , μ ) p(x_i \mid z_i, \mu) p(xizi,μ) 是高斯分布,表示给定分配 z i z_i zi 和均值 μ \mu μ,数据点 x i x_i xi 的概率。

注意到,全局变量( θ \theta θ, μ \mu μ)在乘积外,而局部变量( z z z)则在数据点 i i i 的乘积内。这种结构反映了全局变量对整个数据集的影响,而局部变量仅影响单个数据点。

为了从观测数据中推断出隐藏变量的后验分布,我们需要计算:

p ( θ , μ , z ∣ x , σ 0 2 , α ) = p ( θ , μ , z , x ∣ σ 0 2 , α ) p ( x ∣ σ 0 2 , α ) p(\theta, \mu, z \mid x, \sigma_0^2, \alpha) = \frac{p(\theta, \mu, z, x \mid \sigma_0^2, \alpha)}{p(x \mid \sigma_0^2, \alpha)} p(θ,μ,zx,σ02,α)=p(xσ02,α)p(θ,μ,z,xσ02,α)

其中,分母 p ( x ∣ σ 0 2 , α ) p(x \mid \sigma_0^2, \alpha) p(xσ02,α) 是数据的边际概率,也被称为证据。对于复杂的模型,如GMM,直接计算证据通常是不可行的,因此需要使用近似方法来估计后验分布。

在后验分布的基础上,我们可以进行各种推断任务,如预测新数据点的分布。对于GMM,预测分布可以表示为:

p ( x new ∣ x , σ 0 2 , α ) = ∫ ∑ z new p ( z new ∣ θ ) p ( x new ∣ z new , μ , σ 0 2 ) p ( θ , μ ∣ x , σ 0 2 , α )   d θ   d μ p(x_{\text{new}} \mid x, \sigma_0^2, \alpha) = \\\int \sum_{z_{\text{new}}} p(z_{\text{new}} \mid \theta) p(x_{\text{new}} \mid z_{\text{new}}, \mu, \sigma_0^2) p(\theta, \mu \mid x, \sigma_0^2, \alpha) \, d\theta \, d\mu p(xnewx,σ02,α)=znewp(znewθ)p(xnewznew,μ,σ02)p(θ,μx,σ02,α)dθdμ

其中,内部求和对新数据点的局部隐藏变量 z new z_{\text{new}} znew 进行边际化,而外部积分则对全局隐藏变量 θ \theta θ μ \mu μ 进行边际化。预测分布提供了对新数据点 x new x_{\text{new}} xnew 可能的分布情况的描述,基于我们从现有数据 x x x 中学习到的模型参数。

在后续的章节中,我们将讨论如何使用变分推断等近似方法来估计后验分布,并讨论预测分布对于模型评估和选择的重要性。

2.3 模型可视化

在探讨潜在变量模型时,另一种直观且有用的表示方法是概率图形模型。这种模型通过图形直观地展示了随机变量之间的依赖关系,这些依赖关系直接源于数据的生成过程。图形模型提供了一种清晰的框架,用于理解、分析和操作概率分布。

在高斯混合模型中,我们可以观察到几类随机变量及其相互依赖关系。混合成分均值 μ k \mu_k μk 和混合比例 θ \theta θ 是超参数决定的,不依赖于其他隐藏变量,它们从由固定超参数参数化的分布中生成。混合分配 z i z_i zi 依赖于混合比例 θ \theta θ,后者定义了它的分布。而观测数据 x i x_i xi 则依赖于混合成分均值 μ \mu μ 和对应的混合分配 z i z_i zi
在这里插入图片描述图3:
(a) 两个高斯混合的图形模型。这里有三个数据点。带阴影的节点是观测变量,不带阴影的节点是隐藏变量,蓝色方框是固定的超参数(如狄利克雷参数)。
(b) 具有N个数据点的K个高斯混合的图形模型。

我们可以通过图形来表示这些依赖关系,其中节点表示随机变量,边则表示它们之间的依赖关系。在图3a中,我们展示了从两个高斯混合成分中抽取的三个数据点的图形模型。这是一个未打包的模型,其中每个数据点都在图中有其独特的子结构。为了简化模型表示,我们可以使用板块(plate)来概括模型的重复组件,板块通常是一个矩形,用于表示重复的子结构。在图3b中,我们展示了使用板块来表示由K个高斯混合成分模拟N个数据点的更简洁图形模型。

图形模型不仅展示了联合分布的结构和生成过程的流程,它还为推理概率分布提供了一种强大的方法。图的拓扑结构与计算图描述的联合分布的各种数量之间有着紧密的联系。此外,图形模型的形式化表示尊重了图中暗示的独立性假设,这些独立性包括基本独立性以及从图论计算中派生出的其他独立性。

尽管我们没有深入探讨图形模型的全部细节,但这里提供的内容已经足够让我们理解其在高斯混合模型等潜在变量模型中的应用。对于想要进一步了解图形模型的读者,推荐阅读以下参考资料:Pearl (1988),Jordan (1999),Bishop (2006),Koller & Friedman (2009),以及Murphy (2013)。

在实践中,我们发现图形模型是一种有用的视觉语言,有助于领域专家(如科学家)与统计学家和计算机科学家之间构建和讨论模型。它们不仅提供了对潜在变量模型结构的直观理解,还为后续的推理和分析奠定了坚实的基础。

3.模型简介

在前面的讨论中,我们介绍了潜在变量模型的基本概念,并以高斯混合模型作为具体示例进行了阐述。现在,我们将进一步探讨潜在变量模型中一些常见的组成部分,包括混合成员、线性因子、矩阵因子和时间序列等,并指出它们在不同领域中的应用场景。

这些模型不仅在不同的研究社区中被广泛研究和应用,而且经常与特定的后验推断算法相结合。虽然它们可能在没有明确概率建模视角的情况下被发展出来,但我们将从概率论的角度重新解读这些模型,将它们视为更一般化的独立解决方案。我们将关注这些模型所做的独立性假设和概率分布假设,而具体的后验计算将在后续章节中讨论。

3.1 线性因子模型

线性因子模型是一类强大的工具,它们通过将高维观测数据映射到低维空间来揭示数据的内在结构。这些模型在统计学领域有着悠久的历史,自上世纪初以来,它们一直是数据分析和特征提取的基石。主成分分析(PCA,Pearson 1901, Hotelling 1933)、因子分析(FA,Thurstone 1931, 1938; Thomson 1939)以及典型相关分析(CCA,Hotelling 1936)都可以被解释为线性因子模型的特例。尽管这些模型的传统解释往往侧重于非概率的方法,但它们的概率视角在现代统计学和机器学习中得到了广泛的关注(Roweis 1998, Tipping & Bishop 1999, Collins et al. 2002)。

在线性因子模型中,数据的生成过程涉及一组隐藏组件(或因子)。每个数据点都与一个隐藏的权重向量相关联,这个权重向量描述了数据点如何由这些隐藏组件的线性组合生成。具体来说,我们假设有K个隐藏组件,每个组件都是一个 p p p维向量,这些组件可以组织成一个 K × p K×p K×p的矩阵μ。对于每个数据点 n n n,我们抽取一个 K K K维的权重向量 w n w_n wn,然后根据这个权重向量和组件矩阵μ的线性组合(即 w n ⊤ μ w_n^⊤μ wnμ)来生成数据点。

图4a展示了这种线性因子模型的图形表示。从图中可以看出,隐藏变量(组件和权重)与观测变量之间的独立性假设与混合模型中的假设相似。在标准的线性因子模型中,数据通常被假设为从高斯分布中抽取的(Tipping & Bishop 1999),但线性因子模型的扩展已经考虑了更广泛的分布族,包括那些以w_n^⊤μ作为自然参数的指数族分布(Collins et al. 2002, Mohamed et al. 2008)。

线性因子模型在多个领域都有广泛的应用,包括但不限于图像处理、信号处理、生物信息学等。它们不仅能够帮助我们降低数据的维度,减少计算复杂度,还能够揭示数据中的关键特征和内在结构。此外,线性因子模型还常常作为更复杂模型(如卡尔曼滤波器)的组成部分,为构建更强大、更灵活的模型提供了基础。

3.2.混合成员模型

混合成员模型是一种用于分析统计上相互关联的多组数据的无监督方法。这类模型允许每个数据组从一组独特的混合比例中抽取,而这些混合比例共享相同的基础成分。例如,在文本分析中,文档集合中的每个文档都由一系列单词组成;在遗传学研究中,人群集合中的每个个体都具有基因组上特定位置的等位基因;在社会调查中,每个受访者提供了一系列答案;在社交网络分析中,每个人拥有与其他人的联系网络。混合成员模型认为,尽管每个组表现出不同的模式和程度,但数据背后存在一组统一的模式。
在这里插入图片描述
在这里插入图片描述图4:第3节中描述的模型组件的图形模型。(a)线性因子模型。(b)混合成员模型。(c)矩阵分解。(d)隐马尔可夫模型。(e)科尔曼滤波器。

这些模型通过设定一组全局共享的成分,并为每个数据组分配一组特定的混合比例来工作。具体来说,每个数据点的生成过程涉及两个步骤:首先确定一组混合比例,然后基于这些比例为每个观察选择一个成分。这样,尽管所有组共享相同的成分集合,但每个组展示这些成分的比例是不同的。混合成员模型的后验分析旨在揭示数据中的重复模式及其在各组中的分布比例。

与简单的混合模型相比,混合成员模型不仅能够提供更准确的预测,还能揭示数据的更深层次结构。例如,图4b中的图形模型展示了具有 M M M个组和 N N N个数据点的混合成员模型,其中 x m n x_{mn} xmn代表第m组的第 n n n个观察值。隐藏变量 μ k μk μk x m n x_{mn} xmn的分布参数,而 p ( ⋅ ∣ η ) p(·| η) p(η)是具有超参数 η η η的先验分布。其他隐藏变量包括每组的混合比例 θ m θ_m θm和每个观察的混合分配 z m n z_{mn} zmn,后者指向其中一个成分。

混合成员模型的一个具体应用是主题模型,它用于分析文档集合。在主题模型中,每个文档被视为词汇表上概率分布的混合。通过后验分析,可以确定文档集合中与特定主题相关的词汇,以及每个文档如何展示这些主题。例如,图5展示了一个主题模型对《纽约时报》180万篇文章进行拟合后得到的主题,这些主题是通过估计后验分布并绘制每个主题中最常见的单词来确定的。

3.3.矩阵分解模型

矩阵分解模型是一种强大的工具,用于分析和预测以矩阵形式组织的数据集。在这些数据集中,每个元素的值由其在矩阵中的行和列位置决定。例如,在Netflix的推荐系统中,矩阵的行代表用户,列代表电影,而每个单元格的值表示用户对电影的评分。目标是基于用户的历史评分预测他们可能喜欢的新电影。

政治投票数据是矩阵分解模型的另一个应用场景。在这个矩阵中,行代表立法者,列代表法案,单元格记录了立法者对法案的投票结果。通过分析这些数据,我们可以探索立法者在政治光谱上的位置,识别保守派和自由派。
在这里插入图片描述图5:
从纽约时报的180万篇文章语料库中发现的主题。改编自Hoffman等人(2013)。

矩阵分解模型通过引入隐藏变量,将矩阵的行和列映射到低维空间中。每个观测到的单元格值可以看作是行和列嵌入的线性组合的结果。这种模型不仅能够预测缺失数据,还能够揭示数据背后的潜在结构。

在电影推荐系统中,矩阵分解帮助我们将用户和电影表示为低维向量。对于一个用户尚未评分的电影,我们可以基于用户和电影的嵌入向量预测其可能的评分。此外,这种方法还可以帮助我们发现具有相似品味的用户群体,以及通常受到相似用户群体喜爱的电影类型。

图4c中的图形模型展示了矩阵分解模型的结构。在这个模型中,每个单元格的分布由其对应的行和列的隐藏变量决定。这种模型与线性因子模型相似,但每个单元格的分布参数是由行和列的嵌入向量决定的。

概率矩阵分解是一种将矩阵分解框架扩展到概率模型的方法,它可以提供更灵活和强大的数据分析能力。在政治科学领域,理想点模型是一种一维矩阵分解方法,用于分析立法者的投票行为。通过这种方法,我们可以在一维空间中表示立法者的政治立场,从而揭示民主党和共和党之间的分歧,以及更细致的政治光谱。

矩阵分解模型在教育测试领域也有应用,其中测试者和测试问题分别作为行和列。此外,Netflix挑战的胜利者采用了矩阵分解模型的扩展,考虑了时间因素和电影的潜在受欢迎程度,从而提高了预测的准确性。

3.4 时间序列模型

时间序列分析是数据科学中的一个重要领域,它专注于处理按时间顺序排列的观测值。这些数据的特点是它们之间存在内在的时序关联,这种关联对于理解数据和做出准确预测至关重要。在时间序列分析中,两种主要的潜在变量模型尤为突出:隐马尔可夫模型(HMM)和卡尔曼滤波器,它们都通过利用序列数据的时间结构来增强模型的预测能力和解释性。

3.4.1 隐马尔可夫模型(HMM)

隐马尔可夫模型是一种强大的工具,用于分析具有时间依赖性的数据。在HMM中,每个时间点的观测都是从一个潜在的混合成分中抽取的,而这个混合成分又依赖于前一个时间点的混合成分。这种模型的核心是假设观测之间的转换遵循马尔可夫性质,即下一个状态的概率只依赖于当前状态,而与之前的状态无关。

HMM在诸如语音识别和生物信息学等领域有着广泛的应用。例如,在语音识别中,HMM的隐藏状态可以代表词汇表中的单词,而观测数据则是实际的音频信号。通过后验推断,HMM能够估计出音频信号中所说的话。图4d的图形模型展示了时间序列如何转化为图中的链式结构,其中全局隐藏变量包括混合成分 μ 1 : K μ_{1:K} μ1:K和转移概率 θ 1 : K θ_{1:K} θ1:K,后者定义了从一个状态转移到另一个状态的条件概率。

3.4.2 卡尔曼滤波器

与HMM不同,卡尔曼滤波器是线性(高斯)因子模型的时间序列版本,它适用于处理连续变量的时间序列数据。在卡尔曼滤波器中,每个时间点的状态(如物体在空间中的位置)是通过一个状态空间模型来更新的,该模型假设状态以高斯分布的方式从前一个状态演变而来。

卡尔曼滤波器在雷达跟踪等领域有着显著的应用。在这些应用中,观测数据可能包含噪声,而卡尔曼滤波器能够通过其算法有效地估计出物体的真实位置,并预测其未来的位置。图4e的图形模型揭示了卡尔曼滤波器的工作原理,尽管其底层分布是连续的,但其图形模型的结构与HMM相似。

这两种模型虽然在不同的领域独立发展,但它们都是基于图形模型的一般算法的实例。这种统一的视角不仅有助于我们理解不同模型之间的联系,而且促进了新模型的开发和应用,这是图形模型形式主义的一个显著优势。

3.5 潜在变量建模

在数据科学领域,潜在变量建模是一门艺术,它涉及构建能够捕捉数据背后隐藏结构的模型。虽然我们介绍了一些基于简单模型构建的潜在变量模型,但我们的目标并不是提供一个详尽的模型清单。实际上,我们有意省略了一些重要的模型类型,比如贝叶斯非参数模型、随机效应模型和层次模型,这些模型类型允许数据本身来定义潜在变量的结构。我们更希望展示如何使用概率建模作为一种表达假设的语言,来为每个具体的数据分析挑战定制合适的潜在变量模型。

在这里插入图片描述图7:
使用动态主题模型对《科学》杂志的大量语料库进行分析后发现的动态主题。该模型捕捉到了技术的概念以及它在整个语料库收集过程中的变化

3.5.1.定制和开发新模型的方法

  1. 修改数据生成分布:每个概率过程的核心都是根据潜在结构生成观测值的步骤。例如,在混合成员模型中,观测值是基于某个成分的分布来抽取的;在因子模型中,则是依据权重和因子的线性组合的分布。根据观测数据的类型,我们可以改变这个分布,从而得到新的潜在变量模型。例如,对于有序数据,我们可以使用有序分布;对于正数据,可以使用伽马分布或截断高斯分布;对于分类数据,则可以使用离散分布。此外,我们还可以使用广义线性模型等条件模型,这些模型利用观测到的协变量来辅助描述数据分布。

  2. 改变潜在变量的分布假设:我们可以通过替换潜在变量的分布来开发新模型。例如,将高斯分布替换为伽马分布可以强制模型输出非负结果,这在计算机视觉中的非负矩阵分解技术中非常有用。我们也可以将简单的分布替换为具有自身潜在结构的复杂分布。例如,刺和板模型通过两阶段过程生成向量:首先生成指示数据点相关因素的二进制变量,然后为这些因素的权重生成适当的分布。

  3. 混合不同模型的组件:我们可以将不同模型的组件结合起来,创造出全新的技术。例如,动态主题模型结合了混合成员模型和时间序列分析,以捕捉随时间变化的主题。另一个例子是结合基于树的模型和HMM来分析按系统发育树组织的物种的遗传数据,这种模型能够预测所有物种共有的蛋白质编码基因的确切位置。

3.5.2.结论

我们所讨论的只是潜在变量建模的冰山一角。模型的构建可以由多种组件组成,如二进制向量、时间序列、层次结构和混合等,这些组件可以以无数种方式进行组合和连接。随着在概率模型方面的实践和经验的积累,数据分析师不仅能够明确表达他们想要揭示的潜在结构类型,还能够设计出能够捕捉这种结构的生成性假设。这种能力是数据分析中一种极其宝贵的技能,它允许我们深入理解数据,并从中提取有价值的洞察。

4. 后验推断

在深入探讨概率建模的复杂性和灵活性时,我们不仅要关注模型的构建,还要聚焦于如何使用这些模型从数据中揭示隐藏的结构和进行预测。这两个关键任务的核心在于计算或近似后验分布——即给定观测数据的隐藏变量的条件分布。在概率建模的实践中,这通常是一个挑战性的算法问题,我们称之为后验推断。

对于基础模型,我们或许能够直接计算出精确的后验分布。然而,在多数复杂且有趣的模型中,我们不得不依赖近似方法。幸运的是,贝叶斯统计和机器学习领域的研究人员已经为我们提供了一系列强大的工具,其中最为广泛使用的方法包括拉普拉斯近似和马尔可夫链蒙特卡洛(MCMC)抽样。

拉普拉斯近似是一种简便的方法,它将后验分布近似为一个高斯分布。这一近似基于泰勒级数展开,从后验分布的峰值(众数)出发进行推导。虽然拉普拉斯近似在某些简单场景中表现良好,但在高维数据和高复杂度模型中,其效果往往不尽如人意。

相比之下,MCMC抽样方法提供了更为强大和灵活的解决方案。这些方法的核心思想是在隐藏变量上构建一个马尔可夫链,使其稳态分布恰好是我们感兴趣的后验分布。通过模拟这个马尔可夫链的转移过程,我们可以从中抽取样本,这些样本的经验分布将逐渐逼近真实的后验分布。MCMC方法,如Metropolis-Hastings算法和Gibbs抽样,已经成为现代贝叶斯统计中不可或缺的工具。

然而,尽管MCMC方法强大且有效,但在处理大规模数据集和高维模型时,其计算成本往往较高。为了克服这一挑战,研究人员提出了一种新的策略——均场变分推断(mean-field variational inference)。均场变分推断是一种确定性的近似方法,它将抽样过程替换为优化过程。通过优化一个目标函数,我们可以找到一个易于计算的分布来近似复杂的后验分布。这种方法在实践中往往比MCMC方法更快,特别是在处理大型和高维数据集时。

为了引入均场变分推断,我们首先需要了解一个特定的模型子类——条件共轭模型。这类模型假设观测数据、全局潜在变量和局部潜在变量之间存在一种特定的依赖关系,这种关系使得我们可以将联合分布分解为一系列易于处理的因子。在条件共轭模型中,每个完整条件分布都属于指数族,这使得我们可以利用指数族分布的性质来简化计算。

最后,我们需要明确的是,后验推断是概率建模中的核心问题之一。通过计算或近似后验分布,我们可以揭示数据中的隐藏结构、理解潜在变量的影响,并基于这些信息进行预测。随着数据规模的不断增长和模型复杂度的提高,开发更加高效和准确的近似推断方法将成为未来的研究重点。

4.1.条件共轭模型

条件共轭模型是一类特殊的概率模型,它允许我们有效地进行后验推断。设 x = x 1 : N x = x_{1:N} x=x1:N 为观测值, β \beta β 为全局潜在变量, z = z 1 : N z = z_{1:N} z=z1:N 为局部潜在变量, η \eta η 为固定参数。在条件共轭模型中,我们假设联合分布可以分解为以下形式:

p ( β , z , x ∣ η ) = p ( β ∣ η ) ∏ n = 1 N p ( z n ∣ β ) p ( x n ∣ z n , β ) p(\beta, z, x | \eta) = p(\beta | \eta) \prod_{n=1}^{N} p(z_n | \beta) p(x_n | z_n, \beta) p(β,z,xη)=p(βη)n=1Np(znβ)p(xnzn,β)

其中,每个局部观测 x n x_n xn 的分布仅依赖于对应的局部变量 z n z_n zn 和全局变量 β \beta β。图8(假设为附图或示意)展示了这一模型结构的图形表示,其中局部变量位于数据板块内部,而全局变量位于数据板块外部。

4.1.1.局部与全局变量的区别

局部和全局变量在数据生成分布中扮演着不同的角色。局部变量 z n z_n zn 直接与观测值 x n x_n xn 相关联,而全局变量 β \beta β 则影响所有观测值。例如,在有限混合模型中,局部变量 z n z_n zn 可以视为数据点 x n x_n xn 所属的混合组件,而全局变量 β \beta β 则包含混合比例和各个组件的参数。

4.1.2.后验推断问题

后验推断的目标是计算给定观测数据下潜在变量的条件分布,即 p ( β , z ∣ x ) p(\beta, z | x) p(β,zx)。这个条件分布可以通过联合分布除以边缘分布得到:

p ( β , z ∣ x ) = p ( β , z , x ) p ( x ) = p ( β ∣ η ) ∏ n = 1 N p ( z n ∣ β ) p ( x n ∣ z n , β ) ∫ p ( β , z , x ) d z d β p(\beta, z | x) = \frac{p(\beta, z, x)}{p(x)} = \frac{p(\beta | \eta) \prod_{n=1}^{N} p(z_n | \beta) p(x_n | z_n, \beta)}{\int p(\beta, z, x) dz d\beta} p(β,zx)=p(x)p(β,z,x)=p(β,z,x)dzdβp(βη)n=1Np(znβ)p(xnzn,β)

后验分布在模型使用中至关重要。它不仅允许我们检查可能生成数据的隐藏结构,还提供了关于新数据预测的入口,即后验预测分布。然而,计算后验分布通常很困难,因为分母 p ( x ) p(x) p(x)(即数据的边缘概率)的计算通常涉及复杂的积分和组合操作(特别是在混合模型中,需要对所有可能的混合组件分配进行边缘化)。因此,对于许多模型,我们不得不采用近似方法来估计后验分布。

4.1.3.指数族分布

在条件共轭模型中,我们假设每个完整条件分布(即给定观测值和其他潜在变量的潜在变量的条件分布)都属于指数族。指数族分布具有如下形式:

p ( x ∣ η ) = h ( x ) exp ⁡ { η ⊤ t ( x ) − a ( η ) } p(x | \eta) = h(x) \exp\{\eta^\top t(x) - a(\eta)\} p(xη)=h(x)exp{ηt(x)a(η)}

其中, t ( x ) t(x) t(x) 是充分统计量, h ( x ) h(x) h(x) 是基测度, η \eta η 是自然参数, a ( η ) a(\eta) a(η) 是对数归一化器,确保分布的积分(或求和)为1。 a ( η ) a(\eta) a(η) 的导数给出了充分统计量的累积量。许多常见的概率分布都属于指数族,如高斯分布、多项式/分类分布、泊松分布、伽马分布、伯努利分布、狄利克雷分布和贝塔分布等。这些分布的特性使得我们可以利用指数族分布的性质来简化后验推断的计算。

4.2.均场变分推断

在之前的讨论中,我们介绍了一类需要近似后验分布的大型概率模型。为了应对这种复杂性,我们现在提出均场变分推断作为一种简洁且有效的近似后验分布的方法。

变分推断由机器学习领域的研究人员在1990年代首次提出,其理论基础源于统计物理中的先前工作。该方法的核心思想是假设一个包含自由参数(称为变分参数)的分布族来近似潜在变量上的后验分布,并通过调整这些参数来找到一个尽可能接近真实后验分布的族成员。接近程度通常通过Kullback-Leibler(KL)散度来衡量。

接下来,我们将针对条件共轭模型介绍坐标上升推断,这是一种通用的变分推断算法,在机器学习研究文献中得到了广泛应用。对于变分推断的详细综述,可以参考Jordan等人(1999)和Wainwright & Jordan(2008)的工作。在这里,我们将遵循Hoffman等人(2013)的框架来介绍这一方法。

4.2.1.变分目标函数

我们用 q ( β , z ∣ ν ) q(\beta, z | \nu) q(β,zν)表示潜在变量上的变分分布族,其中 ν \nu ν是索引这个分布族的自由变分参数。(我们将在后面指定这些参数。)变分推断的目标是通过求解

ν ∗ = arg min ⁡ ν KL ( q ( β , z ∣ ν ) ∣ ∣ p ( β , z ∣ x ) ) \nu^* = \text{arg} \min_\nu \text{KL}(q(\beta, z | \nu) || p(\beta, z | x)) ν=argνminKL(q(β,zν)∣∣p(β,zx))

来找到最优的变分参数 ν ∗ \nu^* ν。这实际上是将变分参数 ν \nu ν与观测数据 x x x联系起来的途径,使得推断问题转化为一个优化问题。

然而,直接计算KL散度需要涉及到 p ( x ) p(x) p(x)的计算,这在实际应用中往往是不可行的(如同在之前的讨论中所指出的)。因此,变分推断优化了一个与KL散度相关的目标函数:

L ( ν ) = E [ log ⁡ p ( β , z , x ∣ η ) ] − E [ log ⁡ q ( β , z ∣ ν ) ] L(\nu) = \mathbb{E}[\log p(\beta, z, x | \eta)] - \mathbb{E}[\log q(\beta, z | \nu)] L(ν)=E[logp(β,z,xη)]E[logq(β,zν)]

其中,所有的期望都是基于变分分布 q ( β , z ∣ ν ) q(\beta, z | \nu) q(β,zν)来计算的。这个目标函数实际上等于负KL散度减去 log ⁡ p ( x ) \log p(x) logp(x)的常数项。因此,最大化 L ( ν ) L(\nu) L(ν)等价于最小化KL散度。直观地说,目标函数的第一项倾向于使变分分布倾向于那些使数据更可能的潜在变量配置;而第二项,即变分分布的熵,则倾向于使变分分布更加分散。

L ( ν ) = E q ( β , z ∣ ν ) [ log ⁡ p ( β , z , x ∣ η ) ] ⏟ 数据拟合项 − E q ( β , z ∣ ν ) [ log ⁡ q ( β , z ∣ ν ) ] ⏟ 变分熵项 L(\nu) = \underbrace{\mathbb{E}_{q(\beta, z | \nu)}[\log p(\beta, z, x | \eta)]}_{\text{数据拟合项}} - \underbrace{\mathbb{E}_{q(\beta, z | \nu)}[\log q(\beta, z | \nu)]}_{\text{变分熵项}} L(ν)=数据拟合项 Eq(β,zν)[logp(β,z,xη)]变分熵项 Eq(β,zν)[logq(β,zν)]

在变分推断的框架中,我们通过优化 L ( ν ) L(\nu) L(ν)来寻找最优的变分参数 ν ∗ \nu^* ν,从而得到一个接近真实后验分布的变分分布 q ( β , z ∣ ν ∗ ) q(\beta, z | \nu^*) q(β,zν)

4.2.2.均场变分族

在介绍优化目标之前,我们需要更具体地定义变分族。我们采用均场变分族,其中每个潜在变量被视为独立的,并由其自己的变分参数控制。设变分参数 ν = { λ , ϕ 1 : N } \nu = \{\lambda, \phi_{1:N}\} ν={λ,ϕ1:N},其中 λ \lambda λ 是全局变量的参数, ϕ 1 : N \phi_{1:N} ϕ1:N 是局部变量的参数。均场族表示为:

q ( β , z ∣ ν ) = q ( β ∣ λ ) ∏ n = 1 N q ( z n ∣ ϕ n ) q(\beta, z | \nu) = q(\beta | \lambda) \prod_{n=1}^{N} q(z_n | \phi_n) q(β,zν)=q(βλ)n=1Nq(znϕn)

请注意,尽管每个变量是独立的,但不同的变量并不一定是同分布的。尽管这种方法无法捕捉变量之间的相关性,但均场族具有高度的灵活性,能够将其质量集中在任何复杂的配置上。我们还注意到,数据并未直接出现在变分族的定义中;数据仅在优化变分目标时与变分参数相关联。

为了完整性,我们将每个变分因子设置为与模型中相应的完整条件分布相同的族。如果 p ( β ∣ x , z ) p(\beta | x, z) p(βx,z) 是高斯分布,那么 λ \lambda λ 就是自由的高斯参数;如果 p ( z n ∣ x n , β ) p(z_n | x_n, \beta) p(znxn,β) K K K 个元素上是离散的,那么 ϕ n \phi_n ϕn 就是 K K K 个元素上的自由分布。值得注意的是,尽管我们假设了这种结构,但Bishop(2006)表明,最优的均场变分分布(即式11)必然属于这个族。

4.2.3.坐标上升变分推断

现在我们开始优化式10中的变分目标。我们将采用最简单的算法:坐标上升变分推断。在坐标推断中,我们迭代地优化每个变分参数,同时保持其他所有变分参数固定。这种算法适用于大量的模型。它可以在许多数据分析环境中轻松执行近似后验推断。

对于条件共轭模型和均场族,每个更新都有封闭形式。回想一下,全局因子 q ( β ∣ λ ) q(\beta | \lambda) q(βλ) 与完整条件分布(式7)相同。全局参数的更新是完整条件期望的参数:

λ ∗ = E q [ η g ( z , x ) ] \lambda^* = \mathbb{E}_q [\eta_g (z, x)] λ=Eq[ηg(z,x)]

这个期望是根据变分分布 q q q 取得的。关于推导,请参阅Hoffman等人(2013)的工作。

这个更新在坐标算法中有效的原因是,它是数据和局部参数 ϕ 1 : N \phi_{1:N} ϕ1:N 的函数。要理解这一点,请注意 η g ( z , x ) \eta_g (z, x) ηg(z,x) 是数据和局部变量的函数,并且从式11中的变分族可以看出,潜在变量是独立的。因此, η g ( z , x ) \eta_g (z, x) ηg(z,x) 的期望仅涉及局部参数,这些参数在全局参数的坐标更新中是固定的。

类似地,局部参数的更新也有封闭形式。局部参数 ϕ n \phi_n ϕn 的更新是:

ϕ n ∗ = E q [ η l ( β , x n ) ] \phi_n^* = \mathbb{E}_q [\eta_l (\beta, x_n)] ϕn=Eq[ηl(β,xn)]

由于均场族的假设,这个期望仅依赖于全局参数 λ \lambda λ,这些参数在更新局部参数 ϕ n \phi_n ϕn 时保持固定。

将这些步骤结合起来,坐标上升推断算法如下:

  1. 随机初始化全局参数 λ \lambda λ
  2. 重复直到目标收敛:
    a. 对于每个数据点 n n n,根据式13更新局部参数 ϕ n \phi_n ϕn
    b. 根据式12更新全局参数 λ \lambda λ

这个算法在变分目标函数中明显上升,导致局部最优。我们通过跟踪式10中的变分目标的相对变化来监控收敛。在实践中,人们使用多次随机重启来找到一个好的局部最优。

注意,坐标上升变分推断与Dempster等人(1977)的期望最大化(EM)算法密切相关。两者都是坐标上升算法,在单个数据点的计算和整个数据集的计算之间交替进行。此外,EM目标与变分目标都是从Jensen不等式中导出的。

作为一个具体的例子,我们简要回顾一下高斯混合模型。在这个模型中,潜在变量是混合分配 z 1 : N z_{1:N} z1:N 和混合组成部分 μ 1 : K \mu_{1:K} μ1:K。均场变分族是:

q ( μ , z ) = ∏ k = 1 K q ( μ k ∣ λ k ) ∏ n = 1 N q ( z n ∣ ϕ n ) q(\mu, z) = \prod_{k=1}^{K} q(\mu_k | \lambda_k) \prod_{n=1}^{N} q(z_n | \phi_n) q(μ,z)=k=1Kq(μkλk)n=1Nq(znϕn)

全局变分参数是高斯变分均值 λ k \lambda_k λk,它们描述了每个混合组件的分布;局部变分参数是 K K K 个元素上的离散分布 ϕ n \phi_n ϕn,它们描述了每个数据点 x n x_n xn 的混合分配。每个混合组件的完整条件是高斯分布。
在均场推断的基础上,我们可以构建更加复杂和精确的变分推断算法以适应不同类型的模型和需求。下面我们将讨论一些扩展的变分推断方法,这些方法在放宽均场假设或放宽完整条件在指数族中的假设方面进行了探索。

4.2.4.结构变分推断

结构变分推断(Structured Variational Inference)放宽了均场推断中的独立性假设,允许变分分布中的变量之间存在某些依赖关系。这种方法能够捕获变量之间的相关性,从而提供更准确的近似后验推断。

在结构变分推断中,变分分布不再简单地是独立因子的乘积,而是可以具有更复杂的依赖结构。这通常通过在变分分布中引入额外的依赖因子或使用更复杂的概率图模型来实现。例如,可以使用因子图或马尔可夫随机场来描述变量之间的依赖关系。

通过放宽独立性假设,结构变分推断能够更准确地近似后验分布,尤其是在变量之间存在强依赖性的情况下。然而,这种方法也带来了更高的计算复杂性和优化难度。

4.2.5.非共轭变分推断

非共轭变分推断(Non-Conjugate Variational Inference)放宽了完整条件在指数族中的假设,使得变分推断可以应用于更广泛的非共轭模型。在传统的共轭变分推断中,通常假设模型的完整条件分布属于指数族,以便利用指数族的性质进行高效的推断。然而,在实际应用中,许多模型并不满足这一假设。

非共轭变分推断通过使用更灵活的变分分布族或引入额外的近似技术来放宽这一假设。例如,可以使用混合分布或神经网络来近似非共轭模型的后验分布。此外,还可以使用随机梯度变分推断(Stochastic Gradient Variational Inference)等技术来加速非共轭模型的优化过程。

非共轭变分推断能够应用于更广泛的模型,包括许多现代机器学习模型,如深度神经网络和复杂的概率图模型。然而,由于模型的复杂性,非共轭变分推断通常比共轭变分推断更具挑战性,需要更多的计算资源和优化技巧。

变分推断是复杂模型近似后验推断的强大工具,而均场推断是其中最简单和最常用的方法。然而,随着机器学习和统计研究的深入,我们已经开发出更加复杂和精确的变分推断方法,如结构变分推断和非共轭变分推断。这些方法能够捕获变量之间的相关性,并应用于更广泛的模型,从而提供更准确的近似后验推断。随着计算能力的不断提高和优化技术的不断发展,变分推断将在未来的机器学习和统计应用中发挥越来越重要的作用。
在第2、3和4节中,我们介绍了构建复杂模型和使用均场变分推断来近似后验分布的工具。这些构成了模型构建和评估流程中的关键步骤。在本节中,我们将深入探讨模型批评,作为这一流程中的最后一个重要组成部分。

5.模型评估

模型评估是评估模型适用性和理解其性能的关键环节。通常,我们使用模型执行两种类型的任务:探索和预测。

在探索性任务中,我们利用对隐藏变量的推断——通常是通过近似后验期望——来总结数据、可视化数据或根据推断将数据划分为特定的组和结构。例如,在文档分析中使用主题模型,或在微阵列数据上使用聚类模型来识别相关基因组。

在预测性任务中,我们关注于预测未来的数据点。这通常涉及计算后验预测分布:

p ( x new ∣ x ) = ∫ p ( β ∣ x ) ∫ p ( z new ∣ β ) p ( x new ∣ z new , β )   d z new   d β p(x_{\text{new}} \mid x) = \int p(\beta \mid x) \int p(z_{\text{new}} \mid \beta) p(x_{\text{new}} \mid z_{\text{new}}, \beta) \, dz_{\text{new}} \, d\beta p(xnewx)=p(βx)p(znewβ)p(xnewznew,β)dznewdβ

(对于混合模型,预测分布的具体形式如方程3所示。)由于后验分布 p ( β ∣ x ) p(\beta \mid x) p(βx) 通常不可直接计算,我们使用近似值 q ( β ) q(\beta) q(β) 代替,这是通过MCMC或变分推断等近似推断算法得到的。预测任务的例子包括使用矩阵分解预测用户可能购买的商品,或使用时间序列模型预测未来的股价。

模型评估主要有以下任务需要完成:
1. 评估模型适用性

探索性和预测性任务都需要我们评估模型的适用性。模型批评的两种常用技术是样本重用的预测似然(Geisser 1975)和后验预测检查(Box 1980, Rubin 1984, Meng 1994, Gelman 等人 1996)。这些技术通过将模型的后验预测分布与观测数据对比,以检查模型是否准确地捕捉了数据的特征。

2. 模型批评与模型选择

模型批评与模型选择(Claeskens & Hjort 2008)在本质上是不同的。模型选择是从一组替代模型中选择最佳模型,而模型批评可以在不考虑替代方案的情况下进行。此外,模型批评关注的是评估当前模型(及其推断算法)在特定任务上的表现,而不仅仅是模型本身。
3. 模型批评与贝叶斯思维

模型批评并不完全遵循正统的贝叶斯思维,因为它强调模型制定的迭代性和批评性。在模型批评中,我们寻求展示模型的不足之处,并指出改进的方向。这与科学哲学中的证伪思想(Popper 1959, Gelman & Shalizi 2012)相呼应,即观测数据如果与模型预测不符,则是对模型有效性的挑战。

最后,值得注意的是,模型批评在某些理论框架下可能引发哲学争议,因为它可能被视为对贝叶斯理论框架的扩展或偏离。然而,在实用主义的角度来看,模型批评为迭代和改进模型构建过程提供了有价值的工具。

5.1 预测样本重用

评估模型(及其相应的推断算法)的一种有效方法是评估其泛化性能,即它分配给未观测数据的概率。Geisser(1975)提出的预测样本重用(PSR)方法,类似于使用交叉验证来估计这个概率。

x [ − n ] \mathbf{x}_{[-n]} x[n] 是去掉第 n n n个数据点的数据集。假设我们的模型是 p ( β , z , x ) p(\beta, \mathbf{z}, \mathbf{x}) p(β,z,x),我们使用变分推断来近似后验 p ( β , z ∣ x [ − n ] ) p(\beta, \mathbf{z} \mid \mathbf{x}_{[-n]}) p(β,zx[n]) q [ − n ] ( β , z ) q_{[-n]}(\beta, \mathbf{z}) q[n](β,z)。第 n n n个数据点的对数预测似然是:

log ⁡ p ( x n ∣ x [ − n ] ) = log ⁡ ∫ ∫ p ( x n ∣ z n ) q ( z n )   d z n   q [ − n ] ( β )   d β \log p(x_n \mid \mathbf{x}_{[-n]}) = \log \int \int p(x_n \mid z_n) q(z_n) \, dz_n \, q_{[-n]}(\beta) \, d\beta logp(xnx[n])=log∫∫p(xnzn)q(zn)dznq[n](β)dβ

这是使用不包含它的数据的第 n n n个数据点的(近似)后验预测概率。完整的预测似然是 ∑ n = 1 N log ⁡ p ( x n ∣ x [ − n ] ) \sum_{n=1}^{N} \log p(x_n \mid \mathbf{x}_{[-n]}) n=1Nlogp(xnx[n]),它使用留一法交叉验证估计新数据的保留对数概率。注意 q ( z n ) q(z_n) q(zn) 是第 n n n个数据点的局部变分参数;它是在固定 q [ − n ] q_{[-n]} q[n](没有考虑 x n x_n xn)并估计 x n x_n xn 的后验局部上下文时计算的。

这个过程可能很昂贵,因为它需要拟合 N N N个近似后验,每个数据点一个。在实践中,我们可以使用 K K K折交叉验证来估计分数。我们将数据分成 K K K组;我们迭代地保留每组并使用其余数据近似全局变量 β \beta β 的后验;最后,我们计算每个数据点的 log ⁡ p ( x n ∣ x [ − n ] ) \log p(x_n \mid \mathbf{x}_{[-n]}) logp(xnx[n]),对不包含第 n n n个点的数据估计的近似后验进行积分。

PSR的一个优点是,它不仅帮助评估建模假设,而且还让所有近似推断算法处于同一起跑线。将模型和推断算法视为数据和新数据预测分布之间的通道;方程中的对数预测概率评估了预测分布,无论它是如何近似的。相比之下,基于观测边际概率的近似模型选择(Kass & Raftery 1995,MacKay 2003)可能受到未知偏差的影响。例如,基于变分推断和基于MCMC的边际近似很难进行比较。PSR让我们能够轻松地比较同一预测分布的两种不同近似。

PSR的另一个优点是,它可以适应于模型最相关的预测问题。例如,在分组数据中,我们可能希望考虑每组部分被观测,并评估剩余观测的预测似然。这是评估概率主题模型(Blei & Lafferty 2007,Asuncion等人 2009)的好方法。此外,方程中的个别分数可以像检查残差一样进行检查:从业者可以寻找预测不佳的模式,以确定模型成功和失败的地方。

5.2 后验预测检验(PPCs)

后验预测检验(PPCs)是一种评估模型是否在重要方面足够好的关键工具。通过PPCs,我们将观测数据置于其后验预测分布中进行考量。如果观测数据在后验预测分布下呈现为非典型——即其概率较低——那么模型可能存在问题。

PPCs清晰地划分了我们关心建模的内容和可以轻松建模的内容。建模过程中,为了计算上的方便,我们可能会做出一些妥协——例如,在不适当的地方使用高斯分布或引入我们已知不正确的独立性假设——但一个好的模型应能在这些妥协下仍能捕捉到我们关心的核心内容。PPCs就是用来诊断我们为计算方便而构建的简化模型是否足够好的工具。

假设我们重复了产生观测数据的数据收集过程。这些新数据来自与观测数据相同的过程,因此我们预计这两组数据应该相似。现在考虑我们提出的模型。如果模型是合适的,那么它的后验预测分布应该能够很好地近似数据收集分布;也就是说,我们的观测数据应该能由模型的预测机制很好地捕捉。因此,我们考虑如果数据集是从模型的后验预测分布中抽取出来的,那么它应该是什么样子。如果它看起来与观测数据差异显著——即,不像我们希望通过模型捕捉的分布中抽取的数据——那么模型可能存在问题。

更正式地,我们定义一个差异度量 T ( X ) T(X) T(X) 作为我们关心的数据的函数;这是我们希望模型在其预测分布中能够捕捉的数据属性(函数 T ( X ) T(X) T(X) 也被称为检验统计量)。设 x rep x_{\text{rep}} xrep 是一组新的假设性未来观测数据,它是从后验预测分布中抽取的数据集。那么,

PPC = P ( T ( X rep ) > T ( x ) ∣ x ) \text{PPC} = P(T(X_{\text{rep}}) > T(x) \mid x) PPC=P(T(Xrep)>T(x)x)

注意,在这个表达式中,唯一的随机变量是 x rep x_{\text{rep}} xrep。这个PPC计算的是复制数据在 T T T 定义的度量上超过观测数据的概率。

Meng(1994)的一个重要发展是将差异定义为数据和潜在变量的函数 T ( x , β ) T(x, \beta) T(x,β)(为了符号的清晰性,我们省略了局部变量)。PPC变为:

PPC = P ( T ( X rep , β ) > T ( x , β ) ∣ x ) \text{PPC} = P(T(X_{\text{rep}}, \beta) > T(x, \beta) \mid x) PPC=P(T(Xrep,β)>T(x,β)x)

在这里,隐藏变量 β \beta β 和复制数据 x rep x_{\text{rep}} xrep 都是随机的。它们的联合分布是后验分布和数据生成分布的乘积:

p ( β , x rep ∣ x ) = p ( β ∣ x ) p ( x rep ∣ β ) p(\beta, x_{\text{rep}} \mid x) = p(\beta \mid x)p(x_{\text{rep}} \mid \beta) p(β,xrepx)=p(βx)p(xrepβ)

因此,PPC可以分解为一个指示器的期望:

PPC = ∫ p ( β ∣ x ) ∫ p ( x rep ∣ β ) 1 { T ( x rep , β ) > T ( x , β ) }   d x rep   d β \text{PPC} = \int p(\beta \mid x) \int p(x_{\text{rep}} \mid \beta) \mathbb{1}\{T(x_{\text{rep}}, \beta) > T(x, \beta)\} \, dx_{\text{rep}} \, d\beta PPC=p(βx)p(xrepβ)1{T(xrep,β)>T(x,β)}dxrepdβ

其中 1 \mathbb{1} 1 是指示函数,当括号内的条件为真时取值为1,否则为0。

由于PPC的计算通常涉及复杂的积分,因此常常使用蒙特卡洛方法来进行近似。以下是使用蒙特卡洛方法估计PPC的步骤,假设我们进行T次复制:

  1. 从后验分布中抽样:从后验分布 p ( β ∣ x ) p(\beta \mid x) p(βx)或近似后验中抽取 β ( t ) \beta^{(t)} β(t),其中 t = 1 , … , T t = 1, \ldots, T t=1,,T

  2. 从抽取的参数中生成复制数据:对于每个抽取的 β ( t ) \beta^{(t)} β(t),从条件分布 p ( x rep ∣ β ( t ) ) p(x_{\text{rep}} \mid \beta^{(t)}) p(xrepβ(t))中抽取复制数据集 x rep ( t ) x^{(t)}_{\text{rep}} xrep(t)

  3. 计算差异度量:对于每个复制数据集 x rep ( t ) x^{(t)}_{\text{rep}} xrep(t)和原始观测数据 x x x,计算差异度量 T ( x rep ( t ) , β ( t ) ) T(x^{(t)}_{\text{rep}}, \beta^{(t)}) T(xrep(t),β(t)) T ( x , β ( t ) ) T(x, \beta^{(t)}) T(x,β(t))

  4. 计算后验预测p值:后验预测p值是 T ( x rep ( t ) , β ( t ) ) > T ( x , β ( t ) ) T(x^{(t)}_{\text{rep}}, \beta^{(t)}) > T(x, \beta^{(t)}) T(xrep(t),β(t))>T(x,β(t))的情况的比例。

用数学公式和Markdown表示,PPC的蒙特卡洛估计可以写作:

PPC ≈ 1 T ∑ t = 1 T 1 { T ( x rep ( t ) , β ( t ) ) > T ( x , β ( t ) ) } \text{PPC} \approx \frac{1}{T} \sum_{t=1}^{T} \mathbb{1}\{T(x^{(t)}_{\text{rep}}, \beta^{(t)}) > T(x, \beta^{(t)})\} PPCT1t=1T1{T(xrep(t),β(t))>T(x,β(t))}

其中$\mathbb{1}$是指示函数,当括号内的条件为真时取值为1,否则为0。

例子:平均对数概率作为差异度量

考虑差异度量为数据的平均对数概率:

T ( x , β ) = 1 N ∑ n = 1 N log ⁡ p ( x n ∣ β ) T(x, \beta) = \frac{1}{N} \sum_{n=1}^{N} \log p(x_n \mid \beta) T(x,β)=N1n=1Nlogp(xnβ)

在这个例子中,我们从后验中采样,从样本中复制一个数据集,并计算观测数据和复制数据的平均对数概率。如果观测数据的对数概率一致地小于模型的后验生成的对数概率,则模型拟合较差。
在这里插入图片描述图9:
对Belin和Rubin(1995)开发的四个模型进行的后验预测检验,展示了这些模型如何捕捉和解释数据的特征。每个面板对应一个模型,每个检验均通过直方图展示了在复制数据集上应用的某种差异性度量。在每个面板中,三个差异性度量分别反映了精神分裂症患者观察到的最大方差(顶部)、精神分裂症患者观察到的最小方差(中部)以及跨所有受试者之间的个体内方差(底部)。图中的虚线标明了观测数据的差异性水平,它提供了与模型预测进行比较的基准。(请注意,此差异性度量是独立于当前研究的模型的。)

Gelman等人(1996)强调了散点图(样本值 β \beta β与差异度量)的附加价值,以进一步批评和评估模型。这种可视化可以帮助我们了解模型在不同参数设置下的表现,并可能揭示模型中的潜在问题或假设的不合理性。

PPC方法的一个关键优势是它可以适应实践者的特定需求。例如,差异度量可以针对特定应用定制,以捕捉模型在关键方面的表现。此外,我们可以查看多个差异度量,以了解各种模型之间的权衡。

PPC在数据分析中的应用并不广泛,但它们为模型评估和诊断提供了一个有力的工具。通过示例和可视化,PPC可以帮助我们更好地理解模型的性能,并指导我们如何改进模型以更好地适应数据。

6. 总结

在回顾了构建和修订概率模型的迭代过程——Box循环后,我们意识到这一循环在科学研究中具有核心地位。通过图形模型提出初始模型,运用先进的近似推断方法进行计算,进而评估模型与观测数据的拟合度,并据此进行迭代修改,这一过程构成了解决现实世界数据分析问题的基石。

当前,这一循环在科研界中得到了广泛的实践。研究人员根据实际问题构建模型,开发相应的推断方法,并利用模型解决特定问题。随后,其他研究人员或同一研究人员在后续项目中会指出模型的不足之处,提出改进方案,并展示改进后的效果。

然而,当前面临几个挑战。首先,我们需要开发更加高效和通用的近似推断算法,这些算法能够应对大量模型和大规模数据集的计算需求。在这方面,概率编程是一个有希望的研究方向。概率编程研究团队正在开发能够方便用户定义模型并计算近似后验的软件系统(参见Gilks & Spiegelhalter 1992, Bishop等人2003, McCallum等人2009, Stan开发团队2013;也见Infer.NET)。然而,这些系统仍需进一步提高其灵活性和效率,以支持迭代模型构建成为标准实践。

其次,我们需要继续发展和完善探索性数据分析的理论和方法。随着科学家和其他数据消费者日益重视在观测数据流中发现、理解和利用模式,探索性分析变得越来越重要。我们应该进一步发展诸如后验预测检查(PPCs)这样的方法,以支持我们在大型数据集中使用复杂模型进行导航。我们还应沿着Tukey(1962)、Good(1983)和Diaconis(1985)的思路,进一步发展有原则的数据探索方法。

然而,最大的挑战或许是我们目前尚未意识到的问题。我们的方法局限性只有在应对新的数据集和新问题时才会显现出来。因此,从某种意义上说,这正是Box循环本身的体现。

参考文献

以下是按照IEEE参考文献格式整理的文献列表:

  • Airoldi, E. M., D. M. Blei, S. E. Fienberg, and E. P. Xing. “Mixed membership stochastic blockmodels.” Journal of Machine Learning Research, vol. 9, 2008, pp. 1981–2014.

  • Antoniak, C. E. “Mixtures of Dirichlet processes with applications to Bayesian nonparametric problems.” Annals of Statistics, vol. 2, 1974, pp. 1152–1174.

  • Asuncion, A., M. Welling, P. Smyth, and Y. W. Teh. “On smoothing and inference for topic models.” In Proceedings of the Conference on Uncertainty in Artificial Intelligence (UAI), 2009, pp. 27–34.

  • Attias, H. “Inferring parameters and structure of latent variable models by variational Bayes.” In Proceedings of the Conference on Uncertainty in Artificial Intelligence (UAI), 1999, pp. 21–30.

  • Attias, H. “A variational Bayesian framework for graphical models.” In Advances in Neural Information Processing Systems (NIPS), 2000, pp. 209–216.

  • Baker, F. B. Item Response Theory. New York: Marcel Dekker, 1992.

  • Bar-Shalom, Y., X. R. Li, and T. Kirubarajan. Estimation with Applications to Tracking and Navigation: Theory Algorithms and Software. New York: Wiley, 2004.

  • Bartholomew, D. J., M. Knott, and I. Moustaki. Latent Variable Models and Factor Analysis, Vol. 899: A Unified Approach. New York: Wiley, 2011.

  • Belin, T. R., and D. B. Rubin. “The analysis of repeated-measures data on schizophrenic reaction times using mixture models.” Statistical Medicine, vol. 14, 1995, pp. 747–768.

  • Bell, R. M., and Y. Koren. “Lessons from the Netflix prize challenge.” ACM SIGKDD Explorations Newsletter, vol. 9, 2007, pp. 75–79.

  • Bernardo, J. M., and A. F. M. Smith. Bayesian Theory. Chichester, UK: Wiley, 1994.

  • Bishop, C. M. Pattern Recognition and Machine Learning. New York: Springer, 2006.

  • Bishop, C. M. “Model-based machine learning.” Philosophical Transactions of the Royal Society A, vol. 371, 2013, 20120222.

  • Bishop, C. M., D. Spiegelhalter, and J. Winn. “VIBES: a variational inference engine for Bayesian networks.” In Advances in Neural Information Processing Systems (NIPS), 2003, pp. 793–800.
    继续按照IEEE参考文献格式整理剩余的文献列表:

  • Blei, D. M. “Probabilistic topic models.” Communications of the ACM, vol. 55, no. 4, 2012, pp. 77–84.

  • Blei, D. M., and J. D. Lafferty. “Dynamic topic models.” In Proceedings of the 23rd International Conference on Machine Learning (ICML), 2006, pp. 113–120.

  • Blei, D. M., and J. D. Lafferty. “A correlated topic model of science.” Annals of Applied Statistics, vol. 1, no. 1, 2007, pp. 17–35.

  • Blei, D. M., A. Y. Ng, and M. I. Jordan. “Latent Dirichlet allocation.” Journal of Machine Learning Research, vol. 3, 2003, pp. 993–1022.

  • Box, G. E. P. “Science and statistics.” Journal of the American Statistical Association, vol. 71, no. 353, 1976, pp. 791–799.

  • Box, G. E. P. “Sampling and Bayes’ inference in scientific modelling and robustness.” Journal of the Royal Statistical Society: Series A (Statistics in Society), vol. 143, no. 2, 1980, pp. 383–430.

  • Box, G. E. P., and N. R. Draper. Empirical Model-Building and Response Surfaces. New York: Wiley, 1987.

  • Box, G. E. P., and W. J. Hill. “Discrimination among mechanistic models.” Technometrics, vol. 9, no. 1, 1967, pp. 57–71.

  • Box, G. E. P., and W. G. Hunter. “A useful method for model-building.” Technometrics, vol. 4, no. 4, 1962, pp. 301–317.

  • Box, G. E. P., and W. G. Hunter. “The experimental study of physical mechanisms.” Technometrics, vol. 7, no. 1, 1965, pp. 23–42.

  • Box, G. E. P., and G. C. Tiao. Bayesian Inference in Statistical Analysis. New York: Wiley, 1973.

  • Brown, L. D. Fundamentals of Statistical Exponential Families with Applications in Statistical Decision Theory. Hayward, CA: Institute of Mathematical Statistics, 1986.

  • Claeskens, G., and N. L. Hjort. Model Selection and Model Averaging. New York: Cambridge University Press, 2008.

  • Clinton, J., S. Jackman, and D. Rivers. “The statistical analysis of roll call data.” American Political Science Review, vol. 98, no. 2, 2004, pp. 355–370.
    继续按照IEEE参考文献格式整理剩余的文献列表:

  • Collins, M., S. Dasgupta, and R. Schapire. “A generalization of principal component analysis to the exponential family.” In Advances in Neural Information Processing Systems (NIPS), 2002, pp. 617–624.

  • Cook, R. D., and S. Weisberg. Residuals and Influence in Regression. London: Chapman & Hall, 1982.

  • Dawid, A. P., and S. L. Lauritzen. “Hyper Markov laws in the statistical analysis of decomposable graphical models.” Annals of Statistics, vol. 21, no. 3, 1993, pp. 1272–1317.

  • Dempster, A. P., N. M. Laird, and D. B. Rubin. “Maximum likelihood from incomplete data via the EM algorithm.” Journal of the Royal Statistical Society: Series B (Statistical Methodology), vol. 39, no. 1, 1977, pp. 1–38.

  • Diaconis, P. “Theories of data analysis: from magical thinking through classical statistics.” In Exploring Data: Tables, Trends, and Shapes, edited by D. C. Hoaglin, F. Mosteller, and J. W. Tukey, New York: Wiley, 1985, pp. 1–36.

  • Durbin, R., S. R. Eddy, A. Krogh, and G. Mitchison. Biological Sequence Analysis: Probabilistic Models of Proteins and Nucleic Acids. New York: Cambridge University Press, 1998.

  • Efron, B. “Empirical Bayes modeling, computation, and accuracy.” Technical Report 263, Division of Biostatistics, Stanford University, Stanford, CA, 2013. [Online]. Available: http://statweb.stanford.edu/~ckirby/brad/papers/2013EBModeling.pdf

  • Efron, B., and C. Morris. “Combining possibly related estimation problems.” Journal of the Royal Statistical Society: Series B (Methodological), vol. 35, no. 2, 1973, pp. 379–421.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/752903.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp加载打点点效果

uniapp加载打点点效果 背景实现思路代码实现尾巴 背景 为了增加系统的交互性,我们在加载数据时通常会增加一些loading动效,但是在某些场景下只需要一些简单文字提醒。比如说使用【加载中】或者【loading】等字段,但是写静态的字符又显得交互…

新手必备!短视频剪辑常用的18个技巧——剪映篇

导入素材:这里我们可以选择自己拍摄好的素材(图片、视频或录制好的音频),按照顺序导入剪辑区剪辑。这一步是剪辑的基础,确定剪辑的大体思路与成片框架!别忽略了,剪映官方素材库提供的素材&#…

Windows宝塔面板部署ThinkPHP8.0创建Vue项目案例

安装ThinkPHP8.0 登录宝塔面板,创建一个站点。 输入composer代码,执行完成后自动创建TP目录 composer create-project topthink/think tp 网站目录设置为tp,运行目录设置为public 设置PHP版本为8.0以上,不然会出现下面的报错代…

中科驭数第三代DPU芯片K2-Pro,专为数据中心打造的“六边形战士”

近日,中科驭数重磅发布第三代DPU芯片K2-Pro,是国内首颗面向量产的全功能芯片! K2-Pro采用自主研发的Kernel Processing Unit架构,集网络、存储、安全及计算等多业务卸载功能于一体,包处理速率翻倍至80Mpps&#xff0c…

vue3+ts+vite项目报错:找不到名称“GC”。ts-plugin(2304)

GC变量通过script标签引入的第三方引入&#xff0c;但是ts-plugin并不知道&#xff0c;需要明确声明这个变量的类型 /// <reference types"vite/client" />declare module "*.vue" {import type { DefineComponent } from "vue";// eslint…

代表与民众的联系如何通过数字人大平台加强?正宇软件有方法

在数字时代的大潮中&#xff0c;数字中国建设已成为国家战略&#xff0c;数字人大平台作为战略中的组成部分&#xff0c;正逐步展现出其独特价值和重要作用。随着国家政策的引导与推动&#xff0c;数字人大平台不仅为人大代表履职提供了新工具&#xff0c;更为加强人大代表与民…

ctfshow web入门 sqli-labs web517--web524

web517 注入点id ?id-1’union select 1,2,3– 确认是否能够注入 ?id-1union select 1,database(),3-- 爆出库名 security爆出表名 ?id-1union select 1,(select group_concat(table_name) from information_schema.tables where table_schemasecurity),3-- emails,refer…

墨刀原型-单选按钮场景交互

画原型过程中&#xff0c;会遇到单选或多选的交互场景 这时就可以直接在基础组件部分&#xff0c;拉取单选按钮直接使用&#xff0c;只需要完成对应的交互事件就可实现交互 首先先说单选按钮实现交互 拉取一个单选组件&#xff0c;右侧可调整样式尺寸&#xff0c;在选项部分&…

生命在于学习——Python人工智能原理(2.5.1)

五、Python的类与继承 5.1 Python面向对象编程 在现实世界中存在各种不同形态的事物&#xff0c;这些事物之间存在各种各样的联系。在程序中使用对象来映射现实中的事物&#xff0c;使用对象之间的关系描述事物之间的联系&#xff0c;这种思想用在编程中就是面向对象编程。 …

【数据结构】线性表之《队列》超详细实现

队列 一.队列的概念及结构二.顺序队列与链队列1.顺序队列2.链队列 三.链队列的实现1.创建队列2.初始化队列3.入队4.出队5.获取队头元素6.获取队尾元素7.队列的大小8.队列的判空9.清空队列10.销毁队列 四.队列的盲区五.模块化源代码1.Queue.h2.Queue.c3.test.c 六.栈和队列必做O…

解题思路:LeetCode 第 209 题 “Minimum Size Subarray Sum“

解题思路&#xff1a;LeetCode 第 209 题 “Minimum Size Subarray Sum” 在这篇博文中&#xff0c;我们将探讨如何使用 Swift 解决 LeetCode 第 209 题 “Minimum Size Subarray Sum”。我们会讨论两种方法&#xff1a;暴力法和滑动窗口法&#xff0c;并对这两种方法的时间复…

confluence集成LDAP

一、confluence的权限管理 在集成前&#xff0c;我们必须得知道confluence自身的权限管理是如何做的。 用户组对应空间权限&#xff0c;用户组可以是一个项目&#xff0c;也可以是一个部门或组。 一个用户组里的用户&#xff0c;可以读写本空间的页面&#xff0c;而把其他组隔离…

“文本比对基础:最短编辑距离算法的原理与实现“

最短编辑距离 给定两个字符串 &#x1d434; 和 &#x1d435;&#xff0c;现在要将 &#x1d434; 经过若干操作变为 &#x1d435;&#xff0c;可进行的操作有&#xff1a; 删除–将字符串 &#x1d434; 中的某个字符删除。插入–在字符串 &#x1d434; 的某个位置插入某…

有没有将音频转文字的app?盘点5款高效的音频转文字工具

在职场的快节奏生活中&#xff0c;时间就是金钱&#xff0c;效率就是生命。 我们常常在会议中奋笔疾书&#xff0c;却错过了关键的讨论&#xff1b;在电话会议中努力记忆要点&#xff0c;却难以捕捉每一个细节。 但别担心&#xff0c;有一种工具能让我们摆脱这些困扰——音频…

靶机渗透之DC-8

一、信息收集 扫一下子网段&#xff0c;发现靶机ip为192.168.145.130。 nmap -sP 192.168.145.* 进一步进行端口、系统等信息扫描&#xff0c;开放的端口为80、22&#xff0c;中间件为apache。 nmap -sT -T4 -sV -O -sC -p1-65535 192.168.145.130 再扫一下网站目录&#xf…

【方法分享】如何使用WinRAR将文件夹里的每个文件压缩

不知道大家是否会遇到这种情况&#xff0c;将文件夹内的多个文件或文件夹压缩成一个个压缩包文件&#xff0c;这种情况除了将文件夹中的文件一个个压缩&#xff0c;还有什么批量操作的方法呢&#xff1f;今天分享使用WinRAR批量压缩文件到每个单独的文件夹的方法。 方法如下&a…

一键vmp加固apk aar aab

简介 最近工作需要基于vpm加固封装了一套一键加固的方案,可以给apk aar aab文件实现一键加固&#xff0c;把所有的dex内容都封装到so库里面&#xff0c;加大了反编译破解的难度。 环境配置: 需要配置环境变量: ANDROID_NDK_HOME ANDROID_SDK_HOME CMAKE_PATH JAVA_HOME使用方…

高考填报志愿,是选就业前景?还是选自己的兴趣爱好?

一、 当前的就业形式 受yi情影响&#xff0c;全国的就业处于下滑趋势&#xff0c;互联网和实体企业呈现疲软势态&#xff0c;很多企业不得不裁员。大学毕业生人数几乎每年都会上涨&#xff0c;带来的是僧多粥少的就业状态。 考得好不如报得好 就业环境如此严峻的形势下&#…

如何实现数字人系统私有化部署?数字人源码部署教程简易版来了!

当前&#xff0c;数字人行业的市场前景和应用潜力不断显现&#xff0c;不少创业者都想要通过学习数字人源码部署教程来搭建属于自己的数字人系统&#xff0c;以此获得进军数字人行业的入场券。而事实上&#xff0c;该想法本身当然是固然值得鼓励的&#xff0c;但就目前的实践情…

深度学习Week18——学习残差网络和ResNet-50算法

文章目录 深度学习Week18——学习残差网络和ResNet-50算法 一、前言 二、我的环境 三、前期工作 1、配置环境 2、导入数据 2.1 加载数据 2.2 配置数据集 2.3 数据可视化 2.4 再次检查数据 四、构建ResNet-50网络模型 五、编译模型 六、训练模型 七、模型评估 八、指定图片预测 …