自编码器(Autoencoder,AE)是一种无监督神经网络,用于学习数据的压缩表示(编码)与重构(解码),常用于降维、特征提取、数据去噪等任务。其基本结构如下:
🧠 自编码器结构图
输入 x ──> [编码器 Encoder] ──> z ──> [解码器 Decoder] ──> 重构 x̂
用自编码器学习低维向量表示,这个 latent Representation / Bottleneck Vector 也可以称作 embedding
希望重构目标与原始输入相同。如果希望生成的图像为新事物的话采用VAE, Variational Autoencoder
🔧 结构组成
模块 | 说明 |
---|---|
编码器 Encoder | 将输入数据 x 压缩为低维潜在表示 z (例如使用 MLP/CNN 等) |
潜在表示 z | 编码后的特征向量,包含输入的关键信息 |
解码器 Decoder | 从 z 尽可能还原出原始输入 x̂ |
损失函数 Loss | 计算重构误差 L(x, x̂) ,常用 MSE 或交叉熵等 |
训练目标:Encode更合理,Decoder更准确
loss:最简单的方法是算均方误差MCS,对比每个像素
🧪 数学表达
设输入为 xx,编码器为 fθf_\theta,解码器为 gϕg_\phi,则:
-
编码: z=fθ(x)z = f_\theta(x)
-
解码: x^=gϕ(z)\hat{x} = g_\phi(z)
-
目标: 最小化重构误差 L=∥x−x^∥2\mathcal{L} = |x - \hat{x}|
🎯 主要应用
应用方向 | 示例 |
---|---|
降维 | 替代 PCA 提取非线性主成分 |
图像去噪 | 学习噪声→干净图像的映射 |
异常检测 | 正常样本能准确重构,异常不能 |
预训练特征提取 | 用于下游任务如分类、聚类等 |
🔍 变体一览
名称 | 特点 |
---|---|
稀疏自编码器 | 加入稀疏约束,提升特征稀疏性 |
去噪自编码器 | 输入添加噪声,输出仍需还原原图 |
卷积自编码器 | 用 CNN 编码/解码图像特征 |
变分自编码器 VAE | 引入概率建模,学习潜在分布 |
如需我举具体代码或图像处理的例子,或者对 VAE 进一步讲解,可以继续说~