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

Autoencoder(李宏毅)机器学习 2023 Spring HW8 (Boss Baseline)

1. Autoencoder 简介

Autoencoder是一种用于学习数据高效压缩表示的人工神经网络。它由两个主要部分组成:

Encoder

  • 编码器将输入数据映射到一个更小的、低维空间中的压缩表示,这个空间通常称为latent space或bottleneck。

  • 这一过程可以看作是数据压缩,去除冗余信息,仅保留最重要的特征。

Decoder

  • 解码器从潜在表示中重构原始输入数据。

  • 理想情况下,解码器的输出应尽可能接近原始输入。

Schema of a autoencoder (source: https://en.wikipedia.org/wiki/Autoencoder)

2. Autoencoder的种类

2.1 Vanilla Autoencoder

Vanilla Autoencoder (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/auto_v8.pdf)

vanilla autoencoder是最简单形式的自动编码器,旨在通过瓶颈层尽可能准确地重构输入数据。它是更高级自动编码器变体的基础。

Vanilla autoencoder的训练目标是最小化输入 x 和输出 x^\prime之间的重构损失. 常见的损失函数包括:

均方误差(MSE):适用于连续数据。

\text{MSE Loss}= \frac{1}{n} \sum_{i=1}^{n} (x_i - x_i')^2 \\

二元交叉熵损失(Binary Cross-Entropy Loss): 适用于二元数据。

\text{BCE Loss} = - \frac{1}{n} \sum_{i=1}^{n} \left[ x_i \log(x_i') + (1 - x_i) \log(1 - x_i') \right] \\

2.2 Denoising Autoencoder

Denoising Autoencoder (source: https://speech.ee.ntu.edu.tw/~hylee/ml/ml2021-course-data/auto_v8.pdf)

Denoising autoencoder (DAE) 是一种自动编码器变体,它专门训练从受损(有噪声)的输入中重构干净的输入数据。这使其成为学习有意义特征和执行数据去噪任务的强大工具。

原始输入数据通过添加噪声或引入干扰被人为破坏,生成带噪输入。常见的破坏类型包括:

  • 高斯噪声:在输入数据中添加随机噪声。

  • 椒盐噪声:随机翻转图像中的像素值。

  • 遮掩噪声:将输入的随机部分设为零。

  • 随机失活噪声:随机丢弃部分特征。

与基础型自动编码器类似,常用的损失函数包括均方误差(MSE)和二元交叉熵损失(Binary Cross-Entropy Loss)。

2.3 变分自动编码器 Variational Autoencoder (VAE)

Variationaler Autoencoder (source: https://www.geeksforgeeks.org/variational-autoencoders/)

变分自动编码器(VAE)是一种用于学习数据概率表示的自动编码器。与标准自动编码器将数据编码为固定的潜在表示不同,VAE 将数据编码为潜在空间中的一个分布(通常是高斯分布)。这使得 VAE 在生成任务中尤其有用。

VAE 的三个主要组成部分:

编码器(Encoder)

  • 编码器将输入数据 x 映射到潜在分布 q(z|x) .。

  • 对于每个潜在变量,编码器输出两个参数:

    • 均值(\mu

    • 标准差(\sigma

潜在空间(Latent Space)

  • 表示输入数据的压缩概率分布。

  • 潜在空间中的变量 z 通过以下公式采样:\\ z = \mu + \sigma \cdot \epsilon \\ 其中 \epsilon \sim \mathcal{N}(0, I)。这种操作称为重参数化技巧(reparameterization trick),它允许通过随机采样过程进行反向传播。

解码器(Decoder)

  • 解码器将潜在变量 z 映射回原始数据空间 p(x|z)

  • 它尝试从潜在表示中重构输入数据 x^\prime

2.3.1 损失函数

VAE 的损失函数由两部分组成:

重构损失 \mathcal{L}_{\text{recon}}

  • 它衡量重构数据与原始数据的匹配程度。

  • 我们通常使用二元交叉熵或均方误差。

KL 散度 \mathcal{L}_{\text{KL}}

  • 它使潜在空间分布 q(z|x) 接近先验分布 p(z) , 通常是标准高斯分布 \mathcal{N}(0, I) .

  • 定义为: \mathcal{L}_{\text{KL}} = D_{\text{KL}}(q(z|x) \| p(z)) \\ 该项正则化潜在空间,确保插值平滑且具有意义。

总损失公式为:

\mathcal{L} = \mathcal{L}_{\text{recon}} + \mathcal{L}_{\text{KL}}\\

2.3.2 证据下界 Evidence Lower Bound (ELBO)

在变分自动编码器(VAE)中,核心目标是最大化输入数据的边际似然 p(x) ,即尽可能解释数据。为此,一个重要的数学工具是证据下界(ELBO)。

2.3.2.1 什么是 ELBO?

ELBO 是通过变分推断近似数据边际似然

http://www.lryc.cn/news/519519.html

相关文章:

  • 深入探索 ScottPlot.WPF:在 Windows 桌面应用中绘制精美图表的利器
  • React中的useMemo 和 useEffect 哪个先执行?
  • 错误修改系列---基于RNN模型的心脏病预测(pytorch实现)
  • Table-Augmented Generation(TAG):Text2SQL与RAG的升级与超越
  • Stable Diffusion本地部署教程(附安装包)
  • 【物联网原理与运用】知识点总结(上)
  • JuiceFS 2024:开源与商业并进,迈向 AI 原生时代
  • C#,动态规划问题中基于单词搜索树(Trie Tree)的单词断句分词( Word Breaker)算法与源代码
  • 计算机网络(六)应用层
  • 上海亚商投顾:沪指探底回升微涨 机器人概念股午后爆发
  • conda相关操作
  • 使用TCP协议实现智能聊天机器人
  • PHP二维数组去除重复值
  • 2025年01月11日Github流行趋势
  • 备战蓝桥杯 队列和queue详解
  • IT面试求职系列主题-Jenkins
  • Vue篇-06
  • mysql binlog 日志分析查找
  • ubuntu 配置OpenOCD与RT-RT-thread环境的记录
  • 双系统解决开机提示security Policy Violation的方法
  • 附加共享数据库( ATTACH DATABASE)的使用场景
  • matlab的绘图的标题中(title)添加标量以及格式化输出
  • 2、第一个GO 程序
  • 【Linux-多线程】-线程安全单例模式+可重入vs线程安全+死锁等
  • 00000007_C语言设计模式
  • 探索数据存储的奥秘:深入理解B树与B+树
  • Web渗透测试之XSS跨站脚本之JS输出 以及 什么是闭合标签 一篇文章给你说明白
  • EasyExcel的应用
  • VS Code的设置功能以及多层级的设置方式与解密
  • UI自动化测试框架playwright--初级入门