A Gentle Introduction to Autoencoders & Latent Space
TL;DR · AI 摘要
自编码器通过编码-解码结构实现数据压缩,其瓶颈层的潜在表示是关键。文章详解了其工作原理与训练逻辑。
核心要点
- 自编码器由编码器、瓶颈层和解码器组成,用于数据压缩与特征提取
- 训练过程无需标签数据,通过重构输入图像优化潜在表示
- 瓶颈层维度决定压缩程度,需平衡信息保留与表示效率
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 自编码器与潜在空间
- 核心结构
- 编码器
- 瓶颈层
- 解码器
- 训练机制
- 重构损失函数
- 无监督学习
- 应用场景
- 图像压缩
- 特征提取
金句 / Highlights
值得收藏与分享的关键句。
瓶颈层的压缩表示质量直接决定解码器重构效果,形成隐式优化机制
通过重构原始输入的损失函数,自编码器实现无监督特征学习
卷积神经网络常用于图像自编码器的编码解码模块设计
自编码器与潜在空间简介 | Towards Data Science
机器学习
自编码器与潜在空间简介
学习如何将高维输入转换为紧凑表示
2026年7月14日
6分钟阅读
分享
引言
计算量大是当前各种机器学习算法中的一个众所周知的问题,尤其是在将生成式AI应用于文本、图像和其他非结构化数据时。
缓解这一问题的主要方法之一是将输入数据压缩为低维表示,同时保留主要上下文。有许多方法可以实现这一目标,包括我们将在本文中讨论的自编码器。
为简单起见,本文将重点介绍基于图像的自编码器,但请记住,它们也可以应用于其他数据类型。
核心思想
自编码器是一种用于无监督学习的神经网络。其架构由三个主要组件组成:
- 编码器。神经网络的第一部分,接收输入数据并通过其各层逐步降低其维度,最终达到瓶颈层。
- 瓶颈层。维度最小的网络层,包含输入数据的潜在表示。
- 解码器。连接到瓶颈层输出的网络部分,逐步扩展数据的维度。最终,在其最后一层,它会返回与最初传递给编码器的数据大小相同的数据。
自编码器架构
对于图像,编码器和解码器通常表示为卷积神经网络。
在自编码器的训练过程中,我们的最终目标是让网络在瓶颈层将输入数据转换为更紧凑的表示,同时不过度丢失信息。在推理阶段,我们可以将数据传递给编码器,从瓶颈层提取生成的嵌入表示,然后将其用于其他目的。
让我们了解自编码器的训练过程。
训练过程
自编码器的一大优势是它们不需要任何标记数据!让我们看看它们是如何工作的。
如前所述,输入图像被传递到网络中,被压缩到更小的尺寸,然后重建为原始维度。我们需要自问的问题是:我们希望解码器输出什么?
正如你可能猜到的那样,解码器可以尝试从瓶颈层的压缩表示中重建原始图像。为什么要这样做?
背后的思路很简单:
- 如果瓶颈层的压缩表示能够很好地捕捉编码器输入的主要特征,那么解码器使用这些信息重建原始图像应该相对容易。
- 如果瓶颈层未能捕捉到主要特征,解码器将无法可靠地重建原始图像。因此,模型会因为压缩表示不佳而受到惩罚。
通过要求解码器重建原始图像,我们隐式地迫使编码器生成丰富但压缩的潜在表示,从而帮助解码器高效完成任务。
输入数据在瓶颈层被投影到的空间称为潜在空间。
重建损失
给定原始图像和解码器生成的重建图像,比较生成图像质量的最简单方法是什么?显然的答案是使用均方误差(MSE)损失,逐像素比较两幅图像,这在自编码器的上下文中被称为重建损失。
重建损失:MSE 是相对于输入图像和解码器生成的图像进行计算的。
计算得到的损失值随后用于反向传播,以更新模型的权重。
潜在空间维度
潜在空间维度是一个重要的超参数,会直接影响解码器的性能。
一方面,潜在空间维度需要足够大,以有效编码关键输入特征;另一方面,它不应过大,以保持较高的压缩率。
一个著名的例子是 Stable Diffusion。它使用自编码器将包含 786,432 个值的 512 x 512 x 3 输入图像转换为包含 16,384 个值的 64 x 64 x 4 图像,压缩比达到 48 倍。
自编码器的其他应用
训练自编码器的一个技巧是让它们学习从图像中去除噪声。这个想法很简单:由于自编码器擅长重建原始图像,我们可以向输入图像添加轻微噪声,然后要求它们重建原始图像。
这种方法的一个优点是,训练时只需原始图像,然后向其添加噪声即可。
去噪自编码器的核心思想是对输入图像添加随机噪声,将其输入模型,然后要求模型重建原始图像。
自编码器的另一个有趣应用是图像修复(image inpainting),即将带有遮罩区域的图像输入模型,使其能够去除遮罩并填补缺失的部分。
同样,自编码器也可以被训练用于从图像中移除特定对象。这对于去除水印尤其有用。
图像修复和图像对象移除是自编码器的其他应用示例。
模糊性问题
实际上,尽管 MSE 损失简单,但它并不完美,尤其在自编码器中。使用它的一个常见问题是解码器倾向于生成模糊像素的图像。
例如,我们可以想象一幅 512 x 512 的图像,包含两个垂直且不重叠的黑白区域。然后我们取该图像中的一行像素,其值如下:
[… 0 0 255 255 255 …]
模型对图像结构没有先验知识,它只试图最小化 MSE 损失。即使模型对该图像的预测是 [… 0 0 0 255 255 …],这仍然非常不错,因为区域仅偏移了一个像素,但此时的 MSE 损失会比以下情况更高,而模型可能更倾向于后者:
[… 0 0 127 255 255 …]
使用 MSE 损失的劣势示例。虽然生成图像 B 的 MSE 更低,但视觉效果不如图像 A。
在后一种情况下,尽管 MSE 更低,但中间像素代表一个模糊的边缘,视觉效果不佳。
这个问题在更先进的自编码器变体中通过调整损失函数得到解决。
总结
如我们所见,自编码器是一种简单却强大的概念。通过训练解码器从压缩数据中重建原始图像,我们逐步调整编码器以生成更具信息量的特征,这些特征可用于后续任务。
除了数据压缩之外,我们还了解到自编码器有其他应用,例如图像去噪、图像修复以及从图像中移除物体。
除非另有说明,所有图片均由作者创作
作者信息
查看 Vyacheslav Efimov 的所有文章
人工智能
,
自编码器
嵌入
图像压缩
分享本文
- 在 Facebook 上分享
- 在 LinkedIn 上分享
- 在 X 上分享
Towards Data Science 是一份社区出版物。提交您的见解以触达全球受众,并通过 TDS 作者支付计划获得报酬。
将 href 更新为您的实际投稿链接
为 TDS 撰写文章
✦ end CTA ✦