跳至主要内容

什么是自编码器?

什么是自编码器?

自编码器是一种深度学习算法,可将复杂的现实世界数据转换为简化的数学表示形式,以便人工智能(AI)系统进行后续处理。文本和图像等现实世界的数据通常具有许多定义其特征的属性或维度。例如,句子中的一个单词具有拼写、语法和上下文等属性;需要将这些属性转化为数学符号(或向量表示),然后软件系统才能处理它们。自编码器负责在原始数据与向量表示之间进行相互转换。它们是生成式人工智能系统不可或缺的组成部分,也可独立用于各种数据处理任务。

为什么自编码器很重要?

自编码器使工程师能够克服深度学习和数据处理应用中的多项挑战。

数据去噪

噪声(即不需要的数据)会损害视频、图像或音频文件的完整性。当使用特定数据进行训练时,自编码器能够检测并去除原始数据中的噪声。例如,您可以使用汽车图像来训练自编码器模型。随后,该模型便能极其出色地识别图像中的汽车,同时忽略像素级的模糊、阴影及其他噪声。

降维

自编码器通过将输入数据转换为更紧凑的表示形式,帮助数据科学家简化机器学习开发流程。例如,您可以使用高清图像来训练常规机器学习模型以识别人脸。然而,输入数据的微小变化可能会显著影响模型的性能。利用图像去噪自编码器,您可以在保留关键信息的同时降低图像分辨率。此外,该模型受细微像素变化的影响也较小。

异常检测

自编码器可以通过比较输入数据与其压缩表示形式来检测数据中的异常情况。当一个经过猫咪图像训练的自编码器接收到一张大象图像时,模型会报告显著的重构误差。重构误差表明,尽管自编码器已接受过相关训练,却难以还原原始图像。出现这种情况时,可能意味着模型在输入数据中检测到了离群值。

特征聚类

自编码器设计用于在原始数据流经后续神经元层时去除不必要的信息。它将数据的维度降低到少数几个较低维的表示。工程师可以轻松地将这些子集划分为不同类别,从而将相似特征归为一组。这被称为特征聚类,它有助于机器学习团队训练 AI 模型。

自编码器是如何工作的?

自编码器是一种神经网络,它可以压缩并记住从原始数据中学习到的知识。与其他神经网络不同,自编码器的隐藏层神经元分布并不均匀。相反,自编码器在更深的隐藏层中设计了较少的神经元,以实现足够的知识压缩。您可以把自编码器想象成两个逐渐收窄的漏斗,它们在中间汇合。

组件

自编码器由编码器、代码和解码器组成。

  • 编码器是一个包含多个隐藏层的神经网络,它将原始数据压缩成一个降维表示。
  • 代码是自编码器的压缩瓶颈区域,也是编码器和解码器的交汇点。它是存储输入数据低维编码表示的潜在空间。
  • 解码器是一个不断扩展的神经网络,它将图像数据从压缩版本重建到原始维度。

所有自编码器都需要训练才能压缩图像数据并将其重建为原始形式。训练自编码器时,工程师会向算法输入一个未标记的数据集,并评估重建的输出。

数据在自编码器中传输时,信息损失是不可避免的。工程师会测量重建损失 — 一个表示原始数据和输出数据之间差异的值。然后,他们会不断调整模型,直到它能够以一致方式重建真实世界的训练数据。为此,模型必须对输入变化足够敏感,但又不能过拟合。过拟合是指模型在训练数据中表现良好,但在处理新数据时表现不佳。

示例

自编码器在处理具有相互依赖特征的数据(例如图像)时效果很好。以一个具有人脸训练数据集的功能性自编码器为例。经过充分的训练和调整后,自编码器可以接收任何一张人脸图像(训练数据集之外的),并重建它。它可以用来补全部分缺失、隐藏或模糊的人脸。但是,如果输入的是动物的脸部图像,它就会报错。

自编码器有哪些类型?

我们将介绍几种不同类型的自编码器,这些自编码器支持工程师以不同方式重构压缩后的图像数据。

欠完备自编码器

欠完备自编码器是自编码器模型最简单的形式。它将输入图像压缩到潜在空间,并将编码后的表示重构回原始维度。在不使用额外条件的情况下,该模型仅依靠重构误差来预测出与输入相同的图像。

卷积自编码器

卷积自编码器在编码器和解码器中使用卷积神经网络(CNN)层。CNN 是一种深度学习算法,能够提取并保留空间信息。CNN 层添加至自编码器时,可在处理图像数据时减少空间和时间上的信息损失。该模型通过让数据流经卷积层,平滑地提取图像特征。卷积自编码器在降低数据维度的同时,能够保留像素间的原始关系。它们非常适合图像识别、分类和生成等应用场景。

稀疏自编码器

稀疏自编码器的架构与其他自编码器变体不同,但目标相似。稀疏自编码器并非通过互连神经元数量递减的隐藏层来压缩数据,而是在整个神经网络中保持节点数量不变。为了将输入数据压缩到潜在空间,它会选择性地激活特定神经元,以对流经的数据进行编码或解码。这使得稀疏自编码器能够根据所处理数据的类型,灵活调整其形成的潜在空间。由于其独特的架构,稀疏自编码器能够利用重构损失和稀疏性函数来调节激活神经元的数量。

去噪自编码器

图像去噪自编码器的架构与基础自编码器相似,但其专门针对去除图像数据中的噪声进行了训练。工程师不使用原始图像,而是利用略有损坏的图像来训练模型。自编码器尝试重构出无噪声的图像版本,并将输出结果与原始数据进行比较。由于模型并非直接学习原始图像,因此它无法仅仅依靠潜在空间表示或学习到的流形来重构输出。相反,它会逐步调整学习到的流形,直到输出结果与原始数据相匹配。随后,去噪自编码器便可在实际应用中运用其在陌生数据上学到的重构方法。

收缩式自编码器

收缩式自编码器使编码神经元能够提取关键特征,同时不受输入图像变化的影响。与去噪自编码器不同,收缩式自编码器会降低自身对噪声的敏感度。在训练模型时,工程师会在重构损失中加入惩罚函数,使模型能够忽略原始图像中的微小变化。最终,收缩式自编码器学会了不将输入图像中的微小变化映射到其潜在空间中。

变分自编码器

变分自编码器旨在克服其他自编码器的局限性。通常,自编码器将图像特征映射为潜在空间中的单个代表性数值,解码器则利用该数值重构出既新颖又逼真的数据。例如,在向量空间中,红苹果可能由数值 1 表示,而绿苹果则由数值 2 表示。当根据学习到的向量生成独特图像时,模型可能会随机选择数值 5,并将其解码为蓝苹果。众所周知,现实中并不存在蓝苹果。工程师或许可以通过增加训练图像的数量来提高准确度和逼真度,但这会导致模型过度学习相似模式,进而引发过拟合问题。

上面的示例是对自编码器局限性的简化说明,而变分自编码器正是为了克服这些局限性而设计的。变分编码器不使用数字来表示维度空间,而是使用概率分布。它将钟形曲线分布应用于连续潜在空间中的特征值。根据学习到的表征进行解码时,解码器会根据潜在向量的分布进行采样。这使自编码器能够生成与原始图像相似、准确且逼真的图像。

描绘变分自编码器如何将输入编码为潜在空间中的概率分布,并解码采样值以重建图像的示意图

在生成式人工智能中如何使用自编码器?

生成式 AI 允许用户生成文本、图像、音频和视频等独特内容。自编码器(特别是变分自编码器)也提供类似的功能。变分自编码器的解码器模块是一个生成式模型。它成为了后续深度学习模型(如生成式预训练转换器,即 GPT)的重要组成部分。GPT 架构包含解码器模块,使模型能够从编码表示的概率分布中进行采样,从而生成新颖且逼真的内容。

尽管基于转换器的模型在自然语言处理和文本生成领域引发了革命性进展,但变分自编码器在图像生成模型及相关应用中依然具有重要价值。

AWS 如何满足您的自编码器需求?

AWS 提供专为帮助组织构建、训练、部署和扩展其生成式人工智能应用程序而打造的托管服务。借助企业级安全保障,您可以将应用程序与业界领先的基础模型集成,从而提供个性化的客户体验并加速 AI 战略的实施。

  • Amazon Bedrock 让您能够轻松构建生成式人工智能应用程序,并使用 Stable Diffusion、Llama 和 Amazon Titan 等高性能深度学习模型。
  • 使用 Amazon SageMaker Hyperpod 将基础模型训练分散到数千个机器学习加速器上,从而缩短训练时间。
  • 在 AWS Trainium 和 AWS Inferentia 上部署您的生成式人工智能工作负载,以经济实惠的价格最大限度地提高性能。

立即注册 AWS 账户,开始使用自编码器和生成式人工智能。

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

正在加载
正在加载
正在加载
正在加载
正在加载

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages