初始PyTorch(八):自编码器Auto-Encoders

1.Auto-Encoder自编码器

用途:无监督数据降维,比起PCA,AE更保持位置相关性。输出输出维度是一样的,目标就是生成自己,先降维再升维。

初始PyTorch(八):自编码器Auto-Encoders_第1张图片

AE VS. PCA

初始PyTorch(八):自编码器Auto-Encoders_第2张图片

如何训练?

初始PyTorch(八):自编码器Auto-Encoders_第3张图片初始PyTorch(八):自编码器Auto-Encoders_第4张图片

对于二分类问题,当x=0,loss(fx)=-(log(1-)),为了最小化loss,越小越好接近0也就是真实x=0。
同理,当x=1,loss(fx)=-(log()),为了最小化loss,越大越好接近1也就是真实x=1。这就是minmize算法。

变种一:Denoising AutoEncoder

加入了噪声,对比AE在一定程度上防止过拟合。

初始PyTorch(八):自编码器Auto-Encoders_第5张图片

变种二:Denoising AutoEncoder

按一定概率Dropout,迫使模型更加鲁棒,可以提升精度。可以理解为训练增加难度,测试时用全连接减少难度。对比AE在一定程度上防止过拟合,下图Dropout=0.2时精度最高。

初始PyTorch(八):自编码器Auto-Encoders_第6张图片

变种三:Adversarial AutoEncoder 让随机种子变真实

增加了鉴别器,判断新生成的数据z'是否符合真实数据z的分布。迫使隐藏层向量完成图片重建外,还符合真实图片的分布。

初始PyTorch(八):自编码器Auto-Encoders_第7张图片初始PyTorch(八):自编码器Auto-Encoders_第8张图片  其中,KL计算:

初始PyTorch(八):自编码器Auto-Encoders_第9张图片

前面是AE的loss,后面KL是指pq的分布,重合为0。训练的话就是让Loss变小,pq更加的重合。

x=>N(μ,σ²).sample=>

变种四:Variational Autoencoder 变分自动编码器

VAE解决了之前N(μ,σ²)在反向传播时不可导的问题。

初始PyTorch(八):自编码器Auto-Encoders_第10张图片初始PyTorch(八):自编码器Auto-Encoders_第11张图片

其中推导:

 

AE VS. VAE

初始PyTorch(八):自编码器Auto-Encoders_第12张图片

GAN VS. VAE

初始PyTorch(八):自编码器Auto-Encoders_第13张图片

你可能感兴趣的:(深度学习,#,初始PyTorch)