隐藏向量在 RBM 中的作用是什么?

数据挖掘 机器学习
2021-10-02 07:28:45

我正在学习受限玻尔兹曼机,但我无法确定 RBM 的隐藏向量是否无用。

以下是我对隐藏向量所起的作用的两个理解。我误解了什么吗?如果不是,那么这些向量所扮演的角色怎么会如此不同呢?

  1. 这是第一个理解:

    我从这个视频RBM中了解到隐藏单元只是结构支持,我们并不关心这些隐藏向量到底是什么。我们将隐藏单元引入 RBM 只是为了获得更多的概率分布表达能力。

    假设我只有一个图像,我将这个图像转换为一个二进制向量,并将这个向量输入一个带有随机变量的 RBM(所有的权重和偏差都是随机选择的)。然后,通过打开机器,将构建第一个隐藏向量。但是这个隐藏向量并没有告诉我们任何东西,它只会用来重建一个可见向量。

    (我对这个重构的可见向量的理解是这个向量首先是在定义的 RBM 中编码的向量,我们并没有真正构建新的东西,但我们只是碰巧从定义的 RBM 中采样了这个向量)

    我们只是无限次地运行这个构造和重建循环。最后,我们将得到的只是用随机变量编码在这个 RBM 中的概率分布。

  2. 我的第二个理解是这样的:

    RBM 可用于执行降维,这些隐藏向量是原始输入的一些抽象表示

    给定一个 RBM,RBM ​​的每个隐藏单元都是一个分类器,它的作用是检查输入向量位于该隐藏单元定义的超平面的哪一侧(通过权重和偏差)。因此,如果我们将图像输入到这个 RBM 中,RBM ​​所做的就是将这个输入向量投影到由所有隐藏单元定义的超平面上。因此对于一个输入向量,对应的隐藏向量是非常重要的,它是一些抽象的表示。我们可以进一步将此表示形式输入到其他模型中进行分类。

所以,这些是我的理解,如果你能通过解释 RBM 如何用于 MNIST 来回答这个问题,这对我非常有帮助。

1个回答

从我的角度来看,这两个答案都是正确的——这取决于你想要达到的目标。

使用 RBM 的一种方法是作为生成模型如果您想这样做,您将训练网络以获得生成分布的权重,该分布尽可能接近输入数据的真实分布(不完全正确,因为已知 CD 不会收敛到样本分布,但这只是作为旁白)。例如,您可以从部分图像重建图像或对全新图像进行采样。在这种情况下,隐藏单元的主要目的是增加网络的能力——没有隐藏单元的玻尔兹曼机无法区分具有相同二阶矩的目标分布。但是,隐藏单元在期间和之后的实际值不太重要,因为您的主要目标是生成样本。

如果你想使用模型来检测特征,隐藏单元还有一个额外的作用。为了解释这一点,假设您使用对比散度作为学习算法。在每次迭代中,您将从可见单元中采样隐藏单元,并从隐藏单元的新值中采样可见单元。如果结果接近可见单位的原始值,即如果您的重建错误很小,那么很明显,隐藏单元和权重已经对训练数据有足够的了解,可以从隐藏单元的值重建可见单元的值。正如您所说,这实际上类似于降维或自动编码器。然后,您可以在隐藏单元之上构建第二个 RBM,即您可以开始堆叠 RBM 以构建深度网络,其中每个新的隐藏单元层从训练数据中学习越来越多的抽象特征。