pytorch-AutoEncoders

1. 监督学习&无监督学习

1.1 监督学习

分类和回归都属于监督学习,即数据集需要人的参与,比如:数据标定、分类,因此受人的主观影响较大。
在这里插入图片描述

1.2 无监督学习

下图展示了三大机器学习方向的数据量,增强学习最少,其次是监督学习,大部分数据是无标注无监督学习
在这里插入图片描述

1.3 为什么需要无监督学习

  • 降维
  • 预处理
    比如:把224x224的数据降维为64x64
  • 可视化
    降维后,进行数据可视化
    https://projector.tensorflow.org/
  • 从无监督数据中发现数据的分布、形态,方便后续train
  • 压缩、去噪、超分辨率

2. AutoEncoders

auto encoder 就是重建自己,它的输入和输出维度相同,如下图:输入和输出都是784,中间都是隐藏层,过程分三步,encoder、code和decode,decode是encode的反过程。code可以看作数据暂存,可升维也可降维,下图处理手写数字识别图片,code降到了2维
在这里插入图片描述

3. Auto Encoders loss function

如下图:MSE和cross Entropy loss函数也是适合auto encoder的
cross Entropy用于binary 0,1输入。
在这里插入图片描述

4. PCA VS Auto Encoders

大部分数据是非线性的,PCA 属于线性变化,而Auto Encoders得意于神经网络的非线性,因此效果要比PCA更好。
如下图:
在这里插入图片描述

5. Auto Encoders的变种

5.1 Denoising Auto Encoders

为了防止像素级重建时,网络记住像素值,通常会在样本数据中增加一些噪声,这样才能记住更高级别的特征。
如下图:可以看出加了噪声后,重建后的效果还是不错的。
在这里插入图片描述

5.2 Dropout AutoEncoders

drop是在train的时候,删除掉一些网络连接,以防止over fitting,而在测试的时候又恢复全部网络连接。
如下图:
绿色柱状图标识dropout与loss之间的关系,蓝色标识dropout与accuracy之间的关系,可以看出dropout为0时,全连接loss最小,但是accuracy却不是最大的,说明可能出现了over fitting,dropout=0.2时,accuracy最大,说明dropout在一定程度上防止overfitting
在这里插入图片描述

5.3 Adversarial AutoEncoders

AutoEncoders的hidden code数据存在类似下图的一种分布,随着epoch的增加数据越靠近下方,而这种分布并不符合常见的分布形态,所以人为希望均值=0,方差为某个值,使得在生成时,h从[-1,1]属于某种分布,为了解决这个问题,Adversarial 加入一个discriminator网络用来验证真实的z分布是否与z`一致,如果相差不大输出一个real,否则输出一个Fake

在这里插入图片描述

在这里插入图片描述

5.4 Variational Auto Encoder

VAE = Variational Auto Encoder,变分自编码器。是一种常见的生成模型,属于无监督学习的范畴。它能够学习一个函数/模型,使得输出数据的分布尽可能的逼近原始数据分布,其基本思路是:把一堆真实样本通过编码器网络变换成一个理想的数据分布,然后这个数据分布再传递给一个解码器网络,得到一堆生成样本,生成样本与真实样本足够接近的话,就训练出了一个VAE模型.

下图中的公式,前半部分计算的是重建误差,可以理解为MSE或者是Cross Entropy,而后半部分KL是散度的公式,主要是计算q分布与p分布的相似度。
那么公式的目标就是重建误差越小越好,q和p的分布越接近越好。
在这里插入图片描述

下图中1表示pq两种分布,2表示两种分布的重叠程度,重叠度越高,值越低,3表示的KL值,同样是两种分布越接近值越小,反之越大。
在这里插入图片描述
下图是计算重建误差max likelihood 公式的两个常用方法,MSE和cross Entropy
在这里插入图片描述
计算KL的公式
在这里插入图片描述
在这里插入图片描述
下图表示VAE的一个过程,AE过程是输入x->h->x值一一对应;VAE是输入->N分布->x,也就说值不是一一对应的了,所以需要在N分布中sample出一个值,变为x->h->x`一一对应。
那么有一个问题是sample操作不可微,所以有个小技巧就是将N(μ,σ 2 ^2 2)分布表达为
在这里插入图片描述在这里插入图片描述
使得μ和σ即变得可导,又保留了原来的分布特性,因为不关心ε ,从而忽略掉ε
在这里插入图片描述
在这里插入图片描述
VAE网络,隐藏层是一个分布,z值从分布中sample得到
在这里插入图片描述
AE与VAE的对比,发现VAE还是要好一些
在这里插入图片描述

生成模型
VAE学习的是分布,通过从q(h)分布sample不同的h值,就可以做生成模型
在这里插入图片描述
下图是通过VAE和GAN生成的二次元图像
在这里插入图片描述

  • 16
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值