在看了FoldingNe之后补一下自动编码器的知识

AE(AutoEncoder) 学习笔记

目录

  • AE(AutoEncoder) 学习笔记
  • Auto-Encoder, AE
  • Denosing Auto-Encoders, DAE
  • Stacked Denoising Auto-Encoders, SAE
  • Convolution Auto-Encoders, CAE
  • Variational Auto-Encoders, VAE
  • Reference

Auto-Encoder, AE

传统的自动编码器是一种数据的压缩算法
其算法包括编码阶段解码阶段,且拥有对称的结构。

AE的应用:

  • 第一是数据去噪
  • 第二是为进行可视化而降维

AE深度学习 pytorch ae算法_AE深度学习 pytorch

公式描述为:

AE深度学习 pytorch ae算法_知乎_02

AE深度学习 pytorch ae算法_AE深度学习 pytorch_03

损失函数:

AE深度学习 pytorch ae算法_编码器_04

我们真正关心的是隐层表达,而不是实际输出。因此,针对自编码器的很多改进方法都是对隐层表达增加一定的约束,迫使隐层表达与输入不同。

Denosing Auto-Encoders, DAE

一个好的表达能够捕获输入信号的稳定结构,以该目的为出发出现了降噪自动编码器(DAE)。

首先对干净的输入信号加入噪声产生一个受损的信号(主动)。然后将受损信号送入传统的自动编码器中,使其重建回原来的无损信号。

AE深度学习 pytorch ae算法_知乎_05

过程可用公式描述:

AE深度学习 pytorch ae算法_知乎_06

AE深度学习 pytorch ae算法_AE深度学习 pytorch_07是噪声的分布,\(\hat{x}\)

DAE的目标是最小化损失函数:

AE深度学习 pytorch ae算法_卷积_08

DAE与传统的AE的主要区别在于:

  1. 降噪自编码器通过人为的增加噪声使模型获得鲁棒性的特征表达
  2. 避免使隐层单元学习一个传统自编码器中没有意义的恒等函数

最大的缺陷在于每次进行网络训练之前,都需要对干净输入信号人为地添加噪声,以获得它的损坏信号,这无形中就增加了该模型的处理时间

Stacked Denoising Auto-Encoders, SAE

AE深度学习 pytorch ae算法_卷积_09

SAE和DAE区别主要在于:SAE是有监督学习,DAE是无监督学习。所以SAE是DAE的一种应用方法。

Convolution Auto-Encoders, CAE

🌟实战链接🔗卷机自编码器图像去噪 PyTorch练习(五)卷积自编码器图像去噪 - 锦恢的文章 - 知乎

STL-10 数据集下载链接:

CAE其实就是用常规的CNN的处理流程,卷积+池化,然后上采样(反卷积)这样可以恢复到一个和输入图像相同的维度,这样可以用于图像去噪

上采样的两种方法: