什么是潜在空间?

机器算法验证 机器学习 神经网络 定义
2022-01-25 21:44:49

在机器学习的上下文中,我经常听到术语潜在空间,有时用“高维”或“低维”潜在空间这个词来修饰。

我对这个术语有点困惑(因为它几乎从未被严格定义过)。

有人可以为潜在空间的概念提供定义或动机吗?

3个回答

潜在空间是指包含我们无法直接解释的特征值的抽象多维空间,但它编码了外部观察到的事件的有意义的内部表示。

正如我们人类对广泛的主题和属于这些主题的事件有理解一样,潜在空间旨在通过定量空间表示/建模为计算机提供类似的理解。

在观察到的数据(事件集)上学习潜在空间(一组隐藏的主题/内部表示)的动机是,观察到的空间/事件的巨大差异可能是由于潜在空间的微小变化(对于同一主题)。因此,学习潜在空间将有助于模型比观察数据本身更好地理解观察到的数据,这是一个非常大的学习空间。

潜在空间的一些例子是:

1) Word Embedding Space - 由词向量组成,其中含义相似的词在空间中具有彼此靠近的向量(通过余弦相似度或欧几里德距离测量)和不相关的词相距很远(Tensorflow 的嵌入投影仪提供词嵌入空间的良好可视化)。

2) 图像特征空间——最后一层的 CNN 对输入图像中的高级特征进行编码,使其能够有效地检测,例如,在不同的光照条件下,输入图像中是否存在猫,这是一项艰巨的任务。原始像素空间。

3)主题建模方法,如LDAPLSA使用统计方法从观察到的一组文档和单词分布中获得一组潜在的主题。PyLDAvis提供了很好的主题模型可视化)

4) VAEs & GANs旨在获得一个潜在空间/分布,该潜在空间/分布与观察到的数据的真实潜在空间/分布非常接近。

在上述所有示例中,我们用一个(相对简单的)多维潜在空间来定量表示复杂的观察空间,该潜在空间近似于观察到的数据的真实潜在空间。

术语“高维”和“低维”帮助我们定义我们希望我们的潜在空间学习和表示的特征种类的具体普遍程度。高维潜在空间对输入数据的更具体的特征很敏感,并且在没有足够的训练数据时有时会导致过度拟合。低维潜在空间旨在捕获学习和表示输入数据所需的最重要的特征/方面(一个很好的例子是 VAE 中的低维瓶颈层)。

如果这个答案有帮助,请不要忘记投票:)

潜在空间是由潜在变量跨越的向量空间潜在变量是不能直接观察到的变量,但噪声水平上描述数据。即,可观察变量可以从潜在变量中导出(计算) 。

让我使用这张改编自GeeksforGeeks的图片来形象化这个想法:

3D 中的潜在变量和可观察变量

每个可观察数据点都有四个可见特征:坐标以及颜色。然而,每个点都由单个潜在变量在 Python 代码中)唯一确定。x,y,zφphi

phi = np.linspace(0, 1, 100)       # the latent variable
x = phi * np.sin(25 * phi)         # 1st observable: x-coordinate
y = np.exp(phi) * np.cos(25 * phi) # 2nd observable: y-coordinate
z = np.sqrt(phi)                   # 3rd observable: z-coordinate
c = x + y                          # 4th observable: colour

当然,这只是一个玩具示例。在实践中,您通常有许多甚至数百万个可观察变量(想想图像中的像素值),但它们可以从一组更小的潜在变量中很好地计算出来。在这种情况下,执行某种降维可能很有用。

作为一个真实世界的例子,考虑发光物体的光谱,比如恒星。光谱是一个长向量值,即许多不同波长的光强度。现代光谱仪测量数千个波长的强度。然而,每个光谱都可以通过恒星的温度(通过黑体辐射定律)和不同元素的浓度(对于吸收线)很好地描述。这些可能远少于数千,也许只有十几个或两个。那将是一个低维潜在空间

但是请注意,潜在空间不必小于可观察空间。完全可以想象,许多潜在变量影响少数可观察变量。例如,特定股票在某个时间点在股票市场上的价值是一个单一的价值,但它很可能是由于许多几乎不为人知的影响。

在机器学习中,我看到人们使用高维潜在空间来表示由一些非线性数据转换引起的特征空间,这会增加数据的维度。这个想法(或希望)是实现转换数据的线性可分性(用于分类)或线性(用于回归)。例如,支持向量机使用核技巧来变换数据,但变换只是隐式的,由核函数给出。这些数据是“潜在的”,因为您(或算法)永远不知道它们的值;你只知道点对的点积。

这篇文章会让你对潜在空间有一个很好的了解,作为一个简短的回顾:

潜在空间只是压缩数据的表示,其中相似的数据点在空间中更靠近。

在此处输入图像描述

潜在空间对于学习数据特征和寻找更简单的数据表示以进行分析很有用。

在此处输入图像描述

我们可以通过分析潜在空间中的数据(通过流形、聚类等)来了解数据点之间的模式或结构相似性。

在此处输入图像描述
在此处输入图像描述

我们可以在潜在空间中插入数据,并使用我们模型的解码器来“生成”数据样本。

在此处输入图像描述

We can visualize the latent

使用诸如 t-SNE 和 LLE 等算法的空间,它采用我们的潜在空间表示并将其转换为 2D 或 3D。

你也可以在这里这里看到一个很好的描述