理解机器学习中的潜在空间(Understanding Latent Space in Machine Learning)

在这里插入图片描述

1、什么是潜在空间?

If I have to describe latent space in one sentence, it simply means a representation of compressed data.

如果我必须用一句话来描述潜在空间,它只是意味着压缩数据的表示。

想象一个像上面所示的手写数字(0-9)的大型数据库。相同数字的手写图像(即3的图像)与其他不同数字的图像(即3s vs. 7s)相比,彼此之间最相似。但我们能训练一个算法来识别这些相似性吗?如何训练?

如果你训练了一个模型来对数字进行分类,那么你也训练了这个模型来学习图像之间的“结构相似性”。事实上,这就是模型如何首先能够对数字进行分类——通过学习每个数字的特征。

如果这个过程看起来对你来说是“隐藏”的,那是因为它是。Latent,顾名思义就是“隐藏的”。

“潜在空间”的概念很重要,因为它的用途是“深度学习”的核心——学习数据的特征并简化数据表示以寻找模式。

感兴趣吗?让我们一点一点地分解潜在空间:

① 为什么我们在机器学习(ML)中压缩数据?

数据压缩(Data compression)被定义为使用比原始表示更少的比特对信息进行编码的过程。这就像获取一个19D数据点(需要19个值来定义唯一的点)并将所有信息压缩到一个9D数据点中。

在这里插入图片描述

通常情况下,数据在机器学习中被压缩,以学习有关数据点的重要信息。让我举个例子来解释。

假设我们想训练一个模型来使用全卷积神经网络(FCN)对图像进行分类(即输出给定数字图像的数字)。当模型“学习”时,它只是学习每一层的特征(边、角度等),并将特征组合归因于特定的输出。

但每次模型通过一个数据点进行学习时,图像的维数首先会降低,然后才会最终增加(见下面的编码器和瓶颈)。当维数降低时,我们认为这是一种有损压缩。

在这里插入图片描述

因为模型需要重建压缩数据(参见解码器),它必须学会存储所有相关信息并忽略噪声。这就是压缩的价值——它允许我们去掉任何无关的信息,只关注最重要的特性。

这种“压缩状态”是我们数据的潜在空间表示。

② 空间(space)是什么意思?

你可能想知道为什么我们称它为潜在空间。毕竟,压缩的数据,乍一看,可能不会引起任何形式的“空间”。

但这里有个相似之处。

在这个相当简单的例子中,假设我们的原始数据集是尺寸为5×5×1的图像。我们将我们的潜在空间维度设置为3×1,这意味着我们压缩的数据点是一个具有3维的向量。

在这里插入图片描述

现在,每个压缩数据点仅由3个数字唯一定义。这意味着我们可以在三维平面上绘制这些数据(一个数字是x,另一个是y,另一个是z)。

在这里插入图片描述

这就是我们所指的“空间”。

Whenever we graph points or think of points in latent space, we can imagine them as coordinates in space in which points that are “similar” are closer together on the graph.

每当我们绘制点或考虑潜在空间中的点时,我们可以将它们想象为空间中的坐标,其中“相似”的点在图上靠的更近。

一个自然出现的问题是,我们如何想象4D点或n维点的空间,甚至是非向量的空间(因为潜在空间表示不需要2或3维向量,而且通常不需要,因为太多的信息回丢失)。

令人不满意的答案是,我们不能。我们是三维生物,无法理解n维空间(例如n>3)。然而,有一些工具,如t-SNE,可以将我们的高维潜在空间表征转化为我们可以可视化的表征(2D或3D)。(参见下面可视化潜在空间部分。)

但是你可能会想,什么是“相似”的图像,为什么降低数据的维数会使相似的图像在空间上“更接近”?

③ 相似(similar)是什么意思?

如果我们看三张图片,两张椅子和一张桌子,我们会很容易地说出这两张椅子的图像是最相似的,而桌子和椅子的图像是最不同的。

在这里插入图片描述

但是,是什么让这两张椅子的图像“更相似”呢?椅子具有可区分的特征(即靠背,没有抽屉,腿之间的连接)。这些都可以被我们的模型通过学习边、角度等模式来“理解”。

如前所述,这些特征被封装在数据的潜在空间表示中。

因此,随着维数的降低,与每张图像不同的“无关”信息(例如椅子的颜色)从我们的潜在空间表示中“删除”,因为每张图像只有最重要的特征存储在潜在空间表示中。

因此,当我们降低维度时,两把椅子的表现变得不那么明显,而更相似。如果我们想象它们在太空中,它们会“更接近”。

请注意,我在整篇文章中提到的“接近度”(“closeness”)度量是一个模棱两可的术语,而不是确定的欧几里得距离,因为空间中的距离有多种定义。

2、为什么潜在空间很重要?

潜在空间的概念绝对是有趣的。但它是如何使用的呢?我们什么时候用它?最重要的是,为什么?

我们会发现,潜在空间“隐藏”在许多我们最喜欢的图像处理网络、生成模型等中。

虽然潜在空间对大多数人来说是隐藏的,但在某些任务中,了解潜在空间不仅是有帮助的,而且是必要的。

① 表示学习(Representation Learning)

数据的潜在空间表示包含了表示原始数据点所需的所有重要信息。

这种表示(representation)必须表示原始数据的特征(features)。

换句话说,模型学习数据特征并简化其表示以使其更易于分析

这是表示学习概念的核心,它被定义为一组技术,允许系统从原始数据中发现特征检测或分类所需的表征(representations)。

在这个用例中,我们的潜在空间表示用于将更复杂形式的原始数据(如图像、视频)转换为更简单的表示,从而“更便于处理”和分析。

下面列出了表示学习的具体实例——Manifolds

潜在空间是流形学习(manifold learning)中的一个重要概念,是表示学习的一个分支。

数据科学中的流形(manifolds)可以理解为在某种程度上“相似”的数据组或子集。

这些在高维空间中通常难以察觉或模糊的相似性,一旦我们的数据在潜在空间中被表示出来,就可以被发现。

以下面的“swiss roll”为例。

在这里插入图片描述

在3D中,我们知道存在相似数据点的组,但是用高维数据来描绘这样的组要困难得多。

通过将数据的维度降低到2D,在这种情况下可以被认为是“潜在空间”表示,我们能够更容易地区分数据集中的流形(相似数据组)。

要了解更多关于流形和流形学习的知识,我推荐以下文章:

  • Manifolds in Data Science — A Brief Overview:https://towardsdatascience.com/manifolds-in-data-science-a-brief-overview-2e9dde9437e5
  • 2.2. Manifold learning:https://scikit-learn.org/stable/modules/manifold.html?source=post_page-----de5a7c687d8d--------------------------------
② 自动编码器和生成模型(Autoencoders and Generative Models)

一种常见的深度学习模型是自动编码器,它可以操纵潜在空间中数据的“接近度”(“closeness”)——一种作为恒等函数(identity function)的神经网络。换句话说,自动编码器学会输出输入的任何内容。

在这里插入图片描述

现在,如果你是这个领域的新手,你可能会想,为什么我们需要一个这样的模型呢?如果它输出的只是它自己,那么它似乎毫无用处……

虽然这个推理是有效的,但我们不太关心模型的输出。我们更关心模型在这个过程中学到了什么。

当我们强迫一个模型成为恒等函数时,我们是在强迫它将所有数据的相关特征存储在压缩表示中,以便在压缩形式中有足够的信息,这样模型就可以“准确”地重建它。听起来是不是很熟悉?应该是这样,因为这个压缩表示是我们的潜在空间表示(上图中的红色块)。

我们已经看到了如何在潜在空间中更容易发现模式,因为相似的数据点往往会聚集在一起,但我们还没有看到如何从这个潜在空间中采样点来生成“新”数据。

在这里插入图片描述

在上面的例子中,我们可以通过对潜在空间进行插值来生成不同的面部结构,并使用我们的模型解码器将潜在空间表示重建为与原始输入具有相同尺寸的2D图像。

什么是潜在空间插值?

假设我已经将前一节的椅子图像压缩为以下2D向量,[0.4, 0.5]和[0.45, 0.45]。假设桌子被压缩到[0.6,0.75]。如果我要对潜在空间进行插值,我会对“椅子”簇和“桌子”簇之间的潜在空间中的点进行采样。

我们可以将这些采样的2D向量输入到模型的解码器中。瞧!我们得到的“新”图像看起来像是椅子和桌子之间的变形。“新”加了引号,因为这些生成的图像在技术上并不独立于原始数据样本。

下面是潜在空间中两种椅子之间线性插值的例子。

在这里插入图片描述

图像生成仍然是一个活跃的研究领域,而潜在空间是一个必须理解的基本概念。请参阅以下文章,了解生成模型的更多用例,以及使用GAN(生成对抗网络)的潜在空间差值的实际示例,GAN是另一个使用潜在空间表示的生成模型。

  • 18 Impressive Applications of Generative Adversarial Networks(GANs):https://machinelearningmastery.com/impressive-applications-of-generative-adversarial-networks/?source=post_page-----de5a7c687d8d--------------------------------
  • How to Explore the GAN Latent Space When Generating Faces:https://machinelearningmastery.com/how-to-interpolate-and-perform-vector-arithmetic-with-faces-using-a-generative-adversarial-network/?source=post_page-----de5a7c687d8d--------------------------------

3、潜在空间可视化

有关潜在空间可视化的更多信息,我推荐Hackernoon的文章,该文章提供了一个使用t-SNE算法在2D空间中可视化数字图像之间相似性的实际示例。

  • Latent space visualization — Deep Learning bits #2:https://hackernoon.com/latent-space-visualization-deep-learning-bits-2-bd09a46920df?source=post_page-----de5a7c687d8d--------------------------------

4、主要收获

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

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

我们可以通过分析潜在空间中的数据来理解数据点之间的模式或结构相似性,无论是通过流形还是聚类等。

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

我们可以使用t-SNE和LLE等算法来可视化潜在空间,这些算法将潜在空间转换为2D或3D。

在了解潜在空间的过程中,我被这个“隐藏”但又必不可少的概念所吸引。我希望这篇文章能够揭开潜在空间表示的神秘面纱,并提供我作为一个新手所渴望的对深度学习的“更深层次的理解”。

5、参考资料
  • Understanding Latent Space in Machine Learning:https://towardsdatascience.com/understanding-latent-space-in-machine-learning-de5a7c687d8d
  • 理解机器学习中的潜在空间:https://zhuanlan.zhihu.com/p/369946876
  • Manifolds in Data Science — A Brief Overview:https://towardsdatascience.com/manifolds-in-data-science-a-brief-overview-2e9dde9437e5
  • 2.2. Manifold learning:https://scikit-learn.org/stable/modules/manifold.html?source=post_page-----de5a7c687d8d--------------------------------
  • 18 Impressive Applications of Generative Adversarial Networks(GANs):https://machinelearningmastery.com/impressive-applications-of-generative-adversarial-networks/?source=post_page-----de5a7c687d8d--------------------------------
  • How to Explore the GAN Latent Space When Generating Faces:https://machinelearningmastery.com/how-to-interpolate-and-perform-vector-arithmetic-with-faces-using-a-generative-adversarial-network/?source=post_page-----de5a7c687d8d--------------------------------
  • Latent space visualization — Deep Learning bits #2:https://hackernoon.com/latent-space-visualization-deep-learning-bits-2-bd09a46920df?source=post_page-----de5a7c687d8d--------------------------------

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue学习day01-vue的概念、创建Vue实例、插值表达式、响应式、安装Vue开发者工具

1、vue的概念 Vue是一个用于构建用户界面的渐进式 框架 (1)构建用户界面:基于数据动态渲染页面 (2)渐进式:循序渐进的学习 (3)框架:一条完整的项目解决方案&#xff…

GenAl如何改变 DevOps 中的软件测试?

TestComplete 是一款自动化UI测试工具,这款工具目前在全球范围内被广泛应用于进行桌面、移动和Web应用的自动化测试。 TestComplete 集成了一种精心设计的自动化引擎,可以自动记录和回放用户的操作,方便用户进行UI(用户界面&…

RTK_ROS_导航(2):卫星图查看

目录 1. 基于MapViz的卫星图查看 1. 基于MapViz的卫星图查看 安装 # 源码安装 mkdir -p RTK_VISION/src cd RTK_VISION/src git clone https://github.com/swri-robotics/mapviz.git --branchmelodic-eol sudo apt-get install ros-$ROS_DISTRO-mapviz ros-$ROS_DISTRO-mapviz-…

IP-GUARD如何禁止电脑自带摄像头

IP-GUARD可以通过设备管理模块禁止USB接口,所以USB外置摄像头很容易就可以禁止了。 但是笔记本自带摄像头无法禁止,配置客户端策略如下: device_control_unknown_mode1 device_control_unphysical_mode3

记一次 Qt installer framework安装程序过程中 安装驱动依赖

在installscript.qs 文件中该函数添加exe 依赖程序放置位置

Python28-11 CatBoost梯度提升算法

CatBoost(Categorical Boosting)是由Yandex(一家俄罗斯互联网企业,旗下的搜索引擎曾在俄国内拥有逾60%的市场占有率,同时也提供其他互联网产品和服务)开发的一种基于梯度提升的机器学习算法。CatBoost特别擅长处理类别特征&#x…

什么是ThingsKit物联网平台?

在信息化时代的浪潮中,物联网(IoT)作为新一代信息技术的核心,已经逐渐渗透到我们生活的方方面面。而在这个大背景下,Thingskit物联网平台以其独特的技术优势和应用场景,成为了物联网领域的一颗璀璨明星。本…

3.flink架构

目录 概述 概述 Flink是一个分布式的带有状态管理的计算框架,为了执行流应用程序,可以和 Hadoop YARN 、K8s 进行整合,当然也可以是一个 standalone 。 官方地址:速递 k8s 是未来的一种趋势,对资源管控能力强。

Windows 控制中心在哪里打开,七种方法教会你

在 Windows 操作系统中,控制中心的概念可能稍有些混淆,因为 Windows 通常使用“控制面板”这一术语来指代用于配置系统设置和更改硬件及软件设置的中心区域。 不过,随着 Windows 的更新,微软也在逐步将一些设置迁移到“设置”应用…

关于Linux的操作作业!24道题

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

MySQL数据库基本操作-DDL和DML

1. DDL解释 DDL(Data Definition Language),数据定义语言,该语言部分包括以下内容: 对数据库的常用操作对表结构的常用操作修改表结构 2. 对数据库的常用操作 功能SQL查看所有的数据库show databases;查看有印象的数据库show d…

16 - Python语言进阶

Python语言进阶 数据结构和算法 算法:解决问题的方法和步骤 评价算法的好坏:渐近时间复杂度和渐近空间复杂度。 渐近时间复杂度的大O标记: - 常量时间复杂度 - 布隆过滤器 / 哈希存储 - 对数时间复杂度 - 折半查找(二分查找&am…

使用耳机壳UV树脂制作私模定制耳塞的价格如何呢?

使用耳机壳UV树脂制作私模定制耳塞的价格如何呢? 耳机壳UV树脂制作私模定制耳塞的价格因多个因素而异,如材料、工艺、设计、定制复杂度等。 根据我目前所了解到的信息,使用UV树脂制作私模定制耳塞的价格可能在数百元至数千元不等。具体价格…

LVS+Nginx高可用集群---Nginx进阶与实战

1.Nginx中解决跨域问题 两个站点的域名不一样,就会有一个跨域问题。 跨域问题:了解同源策略:协议,域名,端口号都相同,只要有一个不相同那么就是非同源。 CORS全称Cross-Origin Resource Sharing&#xff…

挑战杯 opencv python 深度学习垃圾图像分类系统

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 opencv python 深度学习垃圾分类系统 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 这是一个较为新颖的竞…

昇思25天学习打卡营第13天|应用实践之ResNet50迁移学习

基本介绍 今日的应用实践的模型是计算机实践领域中十分出名的模型----ResNet模型。ResNet是一种残差网络结构,它通过引入“残差学习”的概念来解决随着网络深度增加时训练困难的问题,从而能够训练更深的网络结构。现很多网络极深的模型或多或少都受此影响…

数据链路层(超详细)

引言 数据链路层是计算机网络协议栈中的第二层,位于物理层之上,负责在相邻节点之间的可靠数据传输。数据链路层使用的信道主要有两种类型:点对点信道和广播信道。点对点信道是指一对一的通信方式,而广播信道则是一对多的通信方式…

风险评估:Tomcat的安全配置,Tomcat安全基线检查加固

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们需…

grafana数据展示

目录 一、安装步骤 二、如何添加喜欢的界面 三、自动添加注册客户端主机 一、安装步骤 启动成功后 可以查看端口3000是否启动 如果启动了就在浏览器输入IP地址:3000 账号密码默认是admin 然后点击 log in 第一次会让你修改密码 根据自定义密码然后就能登录到界面…