机器学习笔记: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散度见:NTU 课程 CE7454:信息论概述_UQI-LIUWJ的博客-CSDN博客 ) 

 而因为KL散度是大于等于0的,所以我们可以去掉最后一项,这样可以得到一个下界:

分别是encoder学习的效果和decoder学习的效果 

 5 VAE举例

 

 从 encoder的输出(均值,方差)到decoder的输入的过程,是一个采样的过程;decoder的输出也是一个采样的过程,因此每一次VAE的输出都不一样。这样就可以生成不同的新数据了

 6 VAE的流程

6.1 training

我们一步一步再看一遍:

 

 

 

 

 

 

通过最大化的概率,对encoder和decoder的参数进行优化

 6.2 generating data

 

 

 

 

 

                        

 

 

 

 

 

 

 

以上是关于机器学习笔记:VAE的主要内容,如果未能解决你的问题,请参考以下文章

深度学习-机器视觉学习路线

docker学习笔记

vue+vuex+axios从webpack-server获取模拟数据存入vuex并取回展示到页面

win10系统-javac不是内部或外部命令

关于在eclipse for  javaee中修改servlet新建模板

Java基础(正式上课第二天)