【AIGC系列】1:自编码器(AutoEncoder, AE)
目录
- 1 概述
- 2 结构
- 3 损失函数
- 4 特点
- 5 常见变体
- 6 应用场景
- 7 优缺点
1 概述
自编码器(Autoencoder,AE),是一种利用反向传播算法使得输出值等于输入值的神经网络,它先将输入压缩成潜在空间表征,然后将这种压缩后的空间表征重构为输出。
AE隐藏层的向量具有降维的作用,所以,从本质上来讲,自编码器是一种数据压缩算法,其压缩和解压缩算法都是通过神经网络来实现的。
AE通常有几个方面的应用:
- 是数据去噪,
- 是为进行可视化而降维。
- 进行图像压缩
- 传统自编码器被用于降维或特征学习
自编码器在适当的维度和系数约束下可以学习到比PCA等技术更有意义的数据映射。
2 结构
自动编码器由一个编码器Encoder和一个解码器Decoder组成:
- 编码器将输入压缩为潜在空间表征,编码器会创建一个隐藏层(或多个隐藏层)包含了输入数据含义的低维向量,可以用函数 f ( x ) 来表示。
- 解码器将潜在空间表征重构为输出,即通过隐藏层的低维向量重建输入数据,可以用函数 g ( x ) 来表示。
3 损失函数
AE是一个自动编码器是一个非监督的学习模式,只需要输入数据,不需要label或者输入输出对的数据。
如果它的解码器是线性重建数据,可以用MSE来表示它的损失函数:
如果解码器用Sigmoid的激活函数,那主要用交叉熵损失函数:
优化目标:迫使模型学习数据的关键特征,而非简单记忆输入。
4 特点
自编码器有如下三个特点:
- 数据相关性。就是指自编码器只能压缩与自己此前训练数据类似的数据,比如说我们使用mnist训练出来的自编码器用来压缩人脸图片,效果肯定会很差。
- 数据有损性。自编码器在解压时得到的输出与原始输入相比会有信息损失,所以自编码器是一种数据有损的压缩算法。
- 自动学习性。自动编码器是从数据样本中自动学习的,这意味着很容易对指定类的输入训练出一种特定的编码器,而不需要完成任何新工作。
5 常见变体
-
去噪自编码器(Denoising AutoEncoder)
- 特点:输入加入噪声,训练模型恢复干净数据。
- 应用:数据去噪、鲁棒性特征学习。
-
稀疏自编码器(Sparse AutoEncoder)
- 特点:在损失函数中引入稀疏性约束(如L1正则化),使潜在表示稀疏。
- 应用:特征选择、可解释性提升。
-
变分自编码器(Variational AutoEncoder, VAE)
- 特点:潜在变量服从高斯分布,通过概率编码生成新样本。
- 应用:数据生成、连续潜在空间探索。
-
卷积自编码器(Convolutional AutoEncoder)
- 特点:使用卷积层替代全连接层,保留空间信息。
- 应用:图像重构、语义分割。
6 应用场景
- 数据降维:比PCA更高效的非线性降维。
- 图像去噪:去除噪声或修复损坏数据。
- 异常检测:异常数据重构误差较高。
- 生成模型(如VAE):生成新样本(图像、文本等)。
- 预训练:作为深度网络的初始化特征提取器。
7 优缺点
- 优点:
- 无需标签,适用于无监督场景。
- 灵活性强,可通过不同结构适应多种任务。
- 缺点:
- 可能过拟合(需正则化或降维约束)。
- 普通自编码器生成能力有限(VAE等变体更适合生成)。