VAE的原理+直观理解+公式推导+去噪+异常检测

1、VAE原理的直观理解
使用(VAE)生成建模,理解可变自动编码器背后的数学原理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一般设先验分布为标准正态分布,但是也可以是其他分布。

在这里插入图片描述
KL项目的是使得q(z|x)与p(z|x)相似,只是后面ELBO经过推导转换成了q(z|x)和p(z)尽可能靠近的问题。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
基于序列的VAE生成模型
在这里插入图片描述
变分自编码器VAE:原来是这么一回事 | 附开源代码
VAE希望训练一个模型 X=g(Z),这个模型能够将原来的概率分布映射到训练集的概率分布,也就是说,它的目的都是进行分布之间的变换。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于这张图,我感到疑惑。AE是降维,比如一张人脸图片X(一个列向量)的潜在空间Z是几个表示提取的特征的正态分布,X到Z显然是降维了;但是按照这张图的说法,每个x对应一个正态分布Z(两个参数),如果x是个图片,那就是只提取了一个特征用来表示这张图片?
如果X是个窗口为W的序列,那也是只提取一个序列的整体特征来重构它?—所以Unsupervised Anomaly Detection via Variational Auto-Encoder for Seasonal KPIs in Web Applications对于VAE能够异常检测的解释是VAE可以学习到序列整体的正常模式,但是很可能会因为维度的缩减而丢失掉异常点的特征,所以重构出来的xt……xt+w接近于正常的数据,可以用来和输入序列中的异常相比。
还有一些多元时间序列论文中是step-wise,也就是每个xt对应一个zt,但是这个xt并不是一个单值,而是D维度的一个向量,因为有D个传感器,而时间步之间的依赖则利用LSTM或者GRU去学习;另一些是block_wise,即每一个sensor的长度为W的序列对应一个VAE,如果每个VAE中的前向网络是LSTM或GRU的话,那么也能够学习时间依赖,只是无法学习sensors之间的关系了。

首先,我们希望重构 X,也就是最小化 D(X̂k,Xk)^2,但是这个重构过程受到噪声(这个噪声指的是不同于AE中直接把X编码成Z,而是编码成一个高斯分布,从高斯分布中采样就未必可以取到均值)的影响,因为Zk 是通过重新采样过的,不是直接由 encoder 算出来的。采样的过程中运用了重采样技巧,在Z的均值的基础上加了个从标准正态分布中采样的方差,便于反向梯度传播。显然噪声会增加重构的难度,不过好在这个噪声强度(也就是方差)通过一个神经网络算出来的,所以最终模型为了重构得更好,肯定会想尽办法让方差为0(试想一下,类似AE的情况,X被映射到Z分布,均值就是最能代表X的值,重构效果最好)。而方差为 0 的话,也就没有随机性了,所以不管怎么采样其实都只是得到确定的结果(也就是均值)。
说白了,模型会慢慢退化成普通的 AutoEncoder,噪声不再起作用。
这样不就白费力气了吗?说好的生成模型呢?
别急别急,其实 VAE 还让所有的 p(Z|X) 都向标准正态分布看齐,这样就防止了噪声为零,同时保证了模型具有生成能力
怎么理解“保证了生成能力”呢?如果所有的 p(Z|X) 都很接近标准正态分布 N(0,I),那么根据定义:
在这里插入图片描述
**为了使模型具有生成能力ÿ

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值