一文读懂自动编码器:类型、原理与应用

近日热文:全网最全的神经网络数学原理(代码和公式)直观解释
欢迎关注知乎和公众号的专栏内容
LLM架构专栏
知乎LLM专栏
知乎【柏企
公众号【柏企科技说】【柏企阅文

目录

  • 自动编码器
  • 稀疏自动编码器
  • K稀疏自动编码器
  • 收缩式自动编码器
  • 卷积自动编码器
  • Sequence to Sequence自动编码器
  • 降噪自动编码器
  • 变分自动编码器
  • 遮罩自动编码器

自动编码器

自动编码器是一种用于无监督学习和降维的神经网络架构。它们主要旨在通过将输入数据压缩到较低维度的潜在空间,然后从此压缩表示中重建原始数据,来学习输入数据的有效表示。简单来说,自动编码器学习对输入数据的本质进行编码,然后将其解码回原始形式。

自动编码器的架构由两个主要组件组成:编码器和解码器。编码器获取输入数据并将其转换为低维表示,这通常称为潜在或瓶颈表示。此过程涉及一系列隐藏层,这些层会逐渐降低输入数据的维度。编码器的最后一个隐藏层负责创建压缩表示。

一旦输入数据被编码到潜在空间中,自动编码器的解码器部分就会接管。解码器旨在从压缩表示中重建原始数据。它由一系列隐藏层组成,这些层逐渐扩展了潜在表示的维度,反映了编码器执行的缩减。解码器的最终输出层生成重构的数据。

在训练期间,自动编码器学习最小化输入数据和重建输出之间的差异。这通常通过使用损失函数(例如均方误差)来测量原始数据和重建数据之间的差异来完成。通过最小化这种损失,自动编码器调整其层的权重和偏差,以提高其准确重建输入数据的能力。

自动编码器的强大之处在于它们能够以无监督的方式学习输入数据的有意义表示。通过将数据压缩到较低维度的潜在空间,它们可以捕获数据中最重要的特征或模式。这对于数据压缩、降噪、异常检测和降维等任务特别有用。

稀疏自动编码器

稀疏自动编码器是一种自动编码器,它在隐藏层的激活上包含稀疏性约束。稀疏性约束鼓励隐藏单元大部分处于非活动状态或“稀疏”状态。这意味着对于给定输入,只有一小部分隐藏单元应处于活动状态或具有非零值。通过提高稀疏性,自动编码器被迫从数据中学习更有意义和更具辨别力的特征。

为了实现稀疏性,稀疏自动编码器通常采用以下两种方法之一:

  • L1正则化:此方法在训练期间向损失函数添加L1惩罚项。L1惩罚鼓励大多数隐藏单位的激活次数为零或非常小。通过最小化L1正则化项,自动编码器学会仅激活一组稀疏的隐藏单元,从而产生更简洁的表示。
  • Kullback-Leibler(KL)散度:KL散度方法不使用L1正则化,而是直接将稀疏性惩罚项合并到损失函数中。KL散度衡量每个隐藏单元的激活概率与预定义的目标稀疏性之间的差异。在训练期间,自动编码器会尝试最小化KL散度,这会鼓励隐藏单元匹配目标稀疏度。

K稀疏自动编码器

k-稀疏自动编码器基于具有线性激活函数和绑定权重的自动编码器。

在前馈阶段,在计算隐藏代码$z = W^{\intercal}x + b$之后,我们不是从所有隐藏单元重建输入,而是确定k个最大的隐藏单元并将其他隐藏单元设置为零。这可以通过对活动进行排序或使用具有自适应调整阈值的ReLU隐藏单元来完成,直到识别出k个最大活动。这将生成一个支持集为$supp_k (W^{\intercal}x + b)$的活动向量。请注意,一旦选择了k个最大的活动,网络计算的函数就是线性的。所以唯一的非线性来自对k个最大活动的选择。此选择步骤充当正则化器,可防止在重建输入时使用过多的隐藏单元。

训练权重后,获得的稀疏表示可用于下游分类任务。但是,已经发现,使用与用于训练的编码略有不同的分类编码会产生更好的结果。例如,使用通过验证数据选择的$\alpha k$最大隐藏单位(其中$\alpha ≥ 1$)可以提高性能,而不是仅使用k个最大的元素。因此,在测试阶段,使用$supp_{\alpha k}(W^{\intercal}x + b)$定义的支座集。

收缩式自动编码器

收缩自动编码器(CAE)是自动编码器的一种变体,它在训练期间为损失函数包含一个额外的正则化项。这个正则化项的目的是鼓励学习到的潜在空间对输入空间中的小扰动具有鲁棒性。换句话说,收缩自动编码器旨在学习数据的压缩表示,该表示不受微小变化或噪声的影响。

收缩式自动编码器中的正则化项通常基于Jacobian矩阵的概念,该矩阵测量编码器的隐藏单元对输入变化的敏感度。通过惩罚雅可比矩阵的范数(例如,Frobenius范数或L2范数),收缩自动编码器鼓励编码器在输入空间方面具有较小的导数。这会产生更稳定和健壮的表示,因为即使输入中的微小变化也会对编码表示产生最小影响。

在训练期间,将正则化项添加到损失函数中,有效地平衡了重建损失(输入和重建输出之间的差异)与正则化项。收缩自动编码器的总体目标是最小化这种组合损失。

通过合并正则化项,收缩自动编码器可以学习更健壮的表示形式,这些表示形式可以捕获数据的底层结构,同时对微小的变化或噪声不太敏感。这在输入数据嘈杂或包含对学习任务很重要的微妙模式的情况下特别有用。

卷积自动编码器

卷积自动编码器是一种自动编码器架构,它利用卷积神经网络(convnets)作为编码器和解码器组件。自动编码器是神经网络,旨在学习输入数据的压缩表示,然后从此压缩表示中重建原始输入。

在卷积自动编码器的情况下,输入数据通常是图像或其他空间数据,卷积网络用于捕获数据中存在的空间结构和模式。编码器中的卷积层通过对输入数据应用一组可学习的滤波器(内核)来执行特征提取,从而在多个空间尺度上捕获不同的视觉特征。

卷积自动编码器的编码器部分逐渐减小了输入的空间维度,同时增加了特征通道的数量,有效地压缩了信息。这种空间维度的减少通常是通过步长大于1的卷积层和/或池化层来实现的。

一旦输入被编码为压缩表示,卷积自动编码器的解码器部分旨在从该压缩表示中重建原始输入。解码器利用卷积层对编码特征进行上采样,逐渐增加空间维度,同时减少特征通道的数量。此过程通常通过转置卷积(也称为反卷积)或上采样层来实现。

Sequence to Sequence自动编码器

Sequence to Sequence自动编码器是自动编码器的一种实现,专门设计用于使用循环架构处理序列数据。

编码器通常使用递归神经网络(RNN)实现,例如长短期记忆(LSTM)或门控循环单元(GRU)网络。编码器逐步处理输入序列,捕获时间依赖关系并将其编码为固定长度的向量或隐藏状态序列。

与编码器类似,解码器也是使用RNN实现的。它采用编码的表示或隐藏状态,并逐步生成输出序列,利用学习到的依赖项生成类似于输入序列的输出。

降噪自动编码器

降噪自动编码器是传统自动编码器的一种变体,专门用于从嘈杂或损坏的输入中学习和重建干净的数据。去噪自动编码器背后的主要思想是训练神经网络,通过学习底层干净数据的潜在表示来消除数据中的噪声或损坏。

为了训练降噪自动编码器,有意将噪声添加到输入数据中。此噪声可以采用多种形式,例如随机像素值、高斯噪声或随机失活(randomly setting some input values to zero,随机将某些输入值设置为零)。然后,噪声数据被馈送到编码器中。

在训练过程中,去噪自动编码器旨在最大限度地减少解码器输出与原始干净数据之间的重建误差。该网络学习去除噪声并捕获重建所需的基本信息。

降噪自动编码器在训练过程中学习干净数据的有意义的潜在表示。潜在空间捕获数据中最重要的特征或模式,使其成为数据压缩、去噪甚至特征提取的有用工具。

变分自动编码器

变分自动编码器(VAE)是结合了自动编码器和概率建模思想的生成模型。VAE能够学习输入数据的潜在表示(一种压缩和抽象的表示),并且可以生成类似于训练数据的新样本。

编码器获取输入数据点并将其映射到潜在空间。编码器不是直接输出潜在向量,而是输出潜在空间中概率分布的参数。通常假定此分布为多元高斯分布。编码器学习捕获此分布中输入数据的重要特征。

为了从学习到的分布中生成潜在向量,使用了重新参数化技巧。样本不是直接从编码器输出的分布中采样,而是通过从标准高斯分布中采样,然后使用编码器输出的平均值和方差对其进行转换来获得样本。

解码器将潜在向量作为输入,并将其映射回原始数据空间。

VAE的目标是最大化证据下限(ELBO),它用作数据对数似然的代理。ELBO由两个术语组成:重建损失,它衡量解码器重建输入数据的程度,以及KL散度,它衡量潜在空间中学习到的分布与先验分布(通常是标准高斯分布)之间的差异。最小化KL散度鼓励学习的潜在空间接近先验分布,从而促进生成能力。

遮罩自动编码器

MAE从输入图像中屏蔽随机补丁,并在像素空间中重建缺失的补丁。它具有非对称编码器 - 解码器设计。编码器仅在补丁的可见子集上运行(没有掩码标记),并且解码器是轻量级的,并且从潜在表示和掩码标记一起重建输入。

在ViT之后,图像被分成规则的非重叠块。然后对补丁的子集进行采样,并屏蔽其余的补丁。

编码器是一个ViT,但仅适用于可见的、未屏蔽的补丁。因此,编码器仅在完整集的一小部分(~25%)上运行。删除被遮罩的补丁,不使用遮罩令牌。这允许仅使用一小部分计算和内存来训练非常大的编码器。整套由轻量级解码器处理。

MAE解码器的输入是完整的令牌集,包括(i)编码的可见补丁和(ii)掩码令牌。每个掩码标记都是一个共享的、学习的向量,指示存在要预测的缺失补丁。位置嵌入将添加到此完整集中的所有标记中;否则,遮罩令牌将没有有关它们在图像中的位置的信息。解码器有另一个系列的Transformer块。MAE解码器仅在预训练期间用于执行图像重建任务。因此,解码器架构可以独立于编码器设计的方式灵活设计。

MAE通过预测每个掩码补丁的像素值来重建输入。解码器输出中的每个元素是一个代表补丁的像素值向量。解码器的最后一层是线性投影,其输出通道数等于补丁中的像素值数量。解码器的输出被重塑以形成重建图像。损失函数计算像素空间中重建图像和原始图像之间的均方误差(MSE)。与BERT类似,损失仅在掩码补丁上计算。

参考文献

  • Reducing the Dimensionality of Data with Neural Networks
  • Sparse Autoencoder
  • k-Sparse Autoencoders
  • Contractive Auto-Encoders: Explicit Invariance During Feature Extraction
  • A Better Autoencoder for Image: Convolutional Autoencoder
  • Sequence To Sequence Autoencoders for Unsupervised Representation Learning from Audio
  • Extracting and Composing Robust Features with Denoising Autoencoders
  • Auto-Encoding Variational Bayes
  • Masked Autoencoders Are Scalable Vision Learners

推荐阅读

1. DeepSeek-R1的顿悟时刻是如何出现的? 背后的数学原理
2. 微调 DeepSeek LLM:使用监督微调(SFT)与 Hugging Face 数据
3. 使用 DeepSeek-R1 等推理模型将 RAG 转换为 RAT
4. DeepSeek R1:了解GRPO和多阶段训练
5. 深度探索:DeepSeek-R1 如何从零开始训练
6. DeepSeek 发布 Janus Pro 7B 多模态模型,免费又强大!

本文由mdnice多平台发布


柏企科技圈
1 声望0 粉丝

时间差不多了,快上车!~