机器学习笔记:VAE
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习笔记:VAE相关的知识,希望对你有一定的参考价值。
1 VAE 介绍
在机器学习笔记:auto encoder_UQI-LIUWJ的博客-CSDN博客 中,我们知道了auto-encoder。但是auto-encoder有一个不足之处,就是因为auto-encoder不是一个概率模型,所以没法从学习的模型中生成新的数据,或者说我们train了一个模型,得到的输出是固定不变的。
在这种情况下VAE就诞生了:它可以
1)从原始数据中学习特征表示向量z
2)可以从模型中生成新的数据
作用(2)是auto-encoder中所不具备的
2 decoder介绍
训练完成后,decoder可以是这样的:
我们知道z的先验概率,decoder又学习了一个从z到x的条件概率,那么我们就可以求得x的概率,然后进行采样即可
更进一步说,decoder需要学习到x|z的均值和方差,这样才可以预测p(x|z)
2.1 decoder 训练
那么,如何训练这个模型呢?基本想法是最大化数据的概率
其中的计算可以由下获得:
- 是由decoder获得
- 是由z的先验概率求得(我们这里认为z满足高斯分布)
- 至于,我们可以由encoder获得
3 encoder 与 decoder
于是我们有:
4 目标函数推导
(贝叶斯法则)
(分子分母同乘)
(log的规则)
而我们知道,x最终的分布和z是无关的。因此有:
于是:
(取期望)
而因为KL散度是大于等于0的,所以我们可以去掉最后一项,这样可以得到一个下界:
分别是encoder学习的效果和decoder学习的效果
5 VAE举例
从 encoder的输出(均值,方差)到decoder的输入的过程,是一个采样的过程;decoder的输出也是一个采样的过程,因此每一次VAE的输出都不一样。这样就可以生成不同的新数据了
6 VAE的流程
6.1 training
我们一步一步再看一遍:
通过最大化的概率,对encoder和decoder的参数进行优化
6.2 generating data
以上是关于机器学习笔记:VAE的主要内容,如果未能解决你的问题,请参考以下文章
vue+vuex+axios从webpack-server获取模拟数据存入vuex并取回展示到页面