当前位置: 首页 > article >正文

【AIGC系列】1:自编码器(AutoEncoder, AE)

目录

  • 1 概述
  • 2 结构
  • 3 损失函数
  • 4 特点
  • 5 常见变体
  • 6 应用场景
  • 7 优缺点

1 概述

自编码器(Autoencoder,AE),是一种利用反向传播算法使得输出值等于输入值的神经网络,它先将输入压缩成潜在空间表征,然后将这种压缩后的空间表征重构为输出。

AE隐藏层的向量具有降维的作用,所以,从本质上来讲,自编码器是一种数据压缩算法,其压缩和解压缩算法都是通过神经网络来实现的。

AE通常有几个方面的应用:

  • 是数据去噪,
  • 是为进行可视化而降维。
  • 进行图像压缩
  • 传统自编码器被用于降维或特征学习

自编码器在适当的维度和系数约束下可以学习到比PCA等技术更有意义的数据映射。

2 结构

自动编码器由一个编码器Encoder和一个解码器Decoder组成:

  • 编码器将输入压缩为潜在空间表征,编码器会创建一个隐藏层(或多个隐藏层)包含了输入数据含义的低维向量,可以用函数 f ( x ) 来表示。
  • 解码器将潜在空间表征重构为输出,即通过隐藏层的低维向量重建输入数据,可以用函数 g ( x ) 来表示。

AE

3 损失函数

AE是一个自动编码器是一个非监督的学习模式,只需要输入数据,不需要label或者输入输出对的数据。

如果它的解码器是线性重建数据,可以用MSE来表示它的损失函数:
mse

如果解码器用Sigmoid的激活函数,那主要用交叉熵损失函数:
CE

优化目标:迫使模型学习数据的关键特征,而非简单记忆输入。

4 特点

自编码器有如下三个特点:

  • 数据相关性。就是指自编码器只能压缩与自己此前训练数据类似的数据,比如说我们使用mnist训练出来的自编码器用来压缩人脸图片,效果肯定会很差。
  • 数据有损性。自编码器在解压时得到的输出与原始输入相比会有信息损失,所以自编码器是一种数据有损的压缩算法。
  • 自动学习性。自动编码器是从数据样本中自动学习的,这意味着很容易对指定类的输入训练出一种特定的编码器,而不需要完成任何新工作。

5 常见变体

  1. 去噪自编码器(Denoising AutoEncoder)

    • 特点:输入加入噪声,训练模型恢复干净数据。
    • 应用:数据去噪、鲁棒性特征学习。
  2. 稀疏自编码器(Sparse AutoEncoder)

    • 特点:在损失函数中引入稀疏性约束(如L1正则化),使潜在表示稀疏。
    • 应用:特征选择、可解释性提升。
  3. 变分自编码器(Variational AutoEncoder, VAE)

    • 特点:潜在变量服从高斯分布,通过概率编码生成新样本。
    • 应用:数据生成、连续潜在空间探索。
  4. 卷积自编码器(Convolutional AutoEncoder)

    • 特点:使用卷积层替代全连接层,保留空间信息。
    • 应用:图像重构、语义分割。

6 应用场景

  • 数据降维:比PCA更高效的非线性降维。
  • 图像去噪:去除噪声或修复损坏数据。
  • 异常检测:异常数据重构误差较高。
  • 生成模型(如VAE):生成新样本(图像、文本等)。
  • 预训练:作为深度网络的初始化特征提取器。

7 优缺点

  • 优点
    • 无需标签,适用于无监督场景。
    • 灵活性强,可通过不同结构适应多种任务。
  • 缺点
    • 可能过拟合(需正则化或降维约束)。
    • 普通自编码器生成能力有限(VAE等变体更适合生成)。

http://www.kler.cn/a/560228.html

相关文章:

  • 使用自制工具类实现安全的密码加密与校验
  • Linux操作系统:基于Linux的入侵检测系统(IDS)研究与实践
  • Mysql 主从集群同步延迟问题怎么解决
  • 23种设计模式之《外观模式(Facade)》在c#中的应用及理解
  • 基于SpringBoot和Leaflet的邻省GDP可视化实战
  • WordPress TForce_Edition sql注入漏洞复现(CVE-2024-13478)(附脚本)
  • 游戏引擎学习第118天
  • maven模块化管理
  • PVE虚拟机解除locked(锁定状态)
  • Linux操作系统面试知识点总结
  • bat命令在b站下载单个音视频
  • 数字IC后端培训教程| 芯片后端实战项目中base layer drc violation解析
  • 电脑经常绿屏(蓝屏)怎么办(解决方法)?
  • 气象干旱触发水文(农业)干旱的概率及其触发阈值的动态变化-贝叶斯copula模型
  • Windows配置添加右键菜单——在VSCode中打开
  • 初级渗透测试工程师需要学什么?网络安全零基础入门到精通教程建议收藏!
  • 【MySQL】表的增删查改(CRUD)(上)
  • 从测试的角度评审需求时需要注意哪些事项?
  • IP属地与电话卡:是如何定位的
  • 什么是将应用放在边缘服务器上创建?应用不是在用户手机上吗?边缘计算究竟如何优化?通过两个问题来辨析