Auto-Encoder --李宏毅呆板学习条记
个人学习条记,如有错误接待指正,也接待交流,其他条记见个人空间Auto-Encoder 是什么?
Auto-Encoder(自编码器)是一种典型的 Self-Supervised Learning(自监视学习) 方法,具有以下结构和目标:
[*] 结构:
[*] 包罗两个网络:Encoder 和 Decoder
[*] Encoder 将输入数据压缩为低维表示
[*] Decoder 从低维表示重修原始数据
[*] 训练目标:
[*] 最小化输入与输出之间的重修误差
[*] 本质是“重修(Reconstruction)”,即让输出尽可能还原原始输入
https://i-blog.csdnimg.cn/direct/12f09c078dcc4e2fabd399552e91401f.png
[*] 无需标签:
[*] Auto-Encoder 只依赖无标签数据,典型的 Unsupervised Learning,属于 Pre-Training 方法的一种
与其他模子的比较与联系
[*] 与 BERT、GPT 相比:BERT 做填空题、GPT 做文本续写,而 Auto-Encoder 做输入重修。尽管方式不同,但目标一致:从无标签数据中学习有效表示。
[*] 与 CycleGAN 的“Cycle Consistency”头脑类似:期望“原始 → 中间 → 重修”的结果与原始尽可能一致
Auto-Encoder的原理
[*] 特性提取与降维(Dimension Reduction):
[*] 将高维图像压缩成低维向量(如将 100x100 的图像 → 10维或100维向量)
例如下面这个图,对于影像来说,并不是所有 3×3 的矩阵都是图片,图片的变化其实是有限的,例如图片或许只是左对角线和左下方块构成。
https://i-blog.csdnimg.cn/direct/e7534d0491844b96b70ec72d3779a4fc.png
[*]中间的低维表示即“瓶颈层(Bottleneck)”,是一种压缩/编码的过程
[*] 用途:
[*] 将低维向量用于分类、回归等卑鄙任务
[*] 训练少量数据时更高效,由于特性已被抽象化表达
De-noising Auto-Encoder
[*] 给原始输入加噪声,再训练 Auto-Encoder 恢复原始未扰动数据
[*] 增强模子鲁棒性,强迫 Encoder 学会提取关键特性并忽略无关扰动
[*] 与 BERT 的做法非常类似,BERT 可看作文本的 De-noising Auto-Encoder
[*] 如 BERT 的 Mask 操作就相当于对输入加噪声
其他作用
Feature Disentanglement(特性解胶葛)
核心概念:
[*] Auto-Encoder 输出的向量(Code / Embedding)往往混淆了多个因素,如内容、风格、身份等。
[*] Feature Disentangle 旨在将不同类型的信息分开编码(如前50维表示“内容”,后50维表示“语者”)。
https://i-blog.csdnimg.cn/direct/81195e93a0fd478aac74af60f84b21e8.png
应用实例:Voice Conversion(语者转换)
[*] 用于将一个人语言的“内容”用另一个人的“声音特性”说出来,这就是变声器。
上风:
[*] 不再需要配对的训练数据(不同人说相同句子)。
[*] 适用于语音、图像、文本的风格迁移、身份更换等任务。
Discrete Latent Representation(离散隐变量表示)
传统方式:Auto-Encoder 中的 Code 通常是连续的向量(如浮点数)。
新思路:尝试利用离散编码(如Binary或One-hot 向量),让模子的表示更具可表明性或可控性。
https://i-blog.csdnimg.cn/direct/8db9823c5b6847db9ea5e5feb1aadbd4.png
典型技术:VQ-VAE(Vector Quantized Variational Autoencoder)
[*] 用离散 Codebook 替代连续向量。
[*] Encoder 输出 → 与 Codebook 中的向量匹配 → Decoder 重修。
[*] 类似 Self-Attention 中 Query 与 Key 匹配。
[*] 可自动学出类似“音标单位”或图像“外形组件”等离散特性。
https://i-blog.csdnimg.cn/direct/6775ae12b7a1478aa63f0fe961d954fa.png
Text as Representation(用笔墨作为中间表达)
问题:向量不易解读,能否把中间表示酿成“笔墨”?
方案:
[*] 构建一个“Seq2seq Auto-Encoder”:将长文本编码为一句摘要,再还原为原文。
[*] Encoder 输入长文,输出一段笔墨(摘要),Decoder 从这段笔墨还原原文。
https://i-blog.csdnimg.cn/direct/579745e05d5f4006affd619fa811a5e8.png
挑战:
[*] 模子可能发明“乱码密码”作为摘要,人类无法读懂。
解决方法:引入 Discriminator(鉴别器)
[*] 鉴别器负责区分“人类写的句子”与“模子生成的句子”。
[*] Encoder 需输出“人类可读的笔墨”,以欺骗鉴别器。
[*] 利用强化学习(RL)优化训练过程。
https://i-blog.csdnimg.cn/direct/e72330bd20d949dfa02742c286965d3b.png
Generator
[*] 将 Decoder 独立出来利用,即变为一个生成器(类似 GAN 或 VAE)。
[*] 从高斯分布中采样 latent 向量,丢入 Decoder,生成图像/语音。
https://i-blog.csdnimg.cn/direct/b464777575514207adf028b6ecf77e2e.png
https://i-blog.csdnimg.cn/direct/79f9e78b7e664d2f85072b3e1f261380.png
Compression(压缩编码)
[*] Encoder → 将图像压缩为低维表示。
[*] Decoder → 解压重修原图。
[*] 属于 lossy 压缩(如 JPEG),可用于数据压缩场景。
https://i-blog.csdnimg.cn/direct/d93e6acf462c4eb4b4d7e8687c71ff13.png
Anomaly Detection(异常检测)
[*] 应用场景:欺诈侦测、网络入侵检测、医学图像分析等。来了一笔新的资料,它到底跟我们之前在训练资料裡面看过的资料,相不相似?看起来不像是训练资料裡面的 Data,就说它是异常的。
[*] 流程:
[*] 利用大量正常数据训练 Auto-Encoder。
[*] 测试时比较输入与重修图像之间的误差(Reconstruction Loss)。
[*] 大误差 → 异常,小误差 → 正常。
https://i-blog.csdnimg.cn/direct/39b64169966e4cf394a098e5801c65ae.png
https://i-blog.csdnimg.cn/direct/f7160a1519da45219b49a5323529b22e.png
[*] 适用于 One-Class Learning 问题:仅有正常样本,缺少异常样本。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]