Boosted Generative Models
Aditya Grover, Stefano Ermon
Stanford University
https://aaai.org/ocs/index.php/AAAI/AAAI18/paper/viewFile/17403/16645
https://www.padl.ws/papers/Paper%2031.pdf (ICML 2017 Workshop on Principled Approaches to Deep Learning)
https://forum.stanford.edu/events/posterslides/BoostedGenerativeModels.pdf (poster slides)
这篇文章提出一种新的方法,利用无监督学习得到生成模型的集成模型,集成器中的模型以序贯方式训练,这样可以纠正前面模型的错误。
该算法框架可以利用任何依赖似然估计的基准学习器,包括最近的深层表达能力比较强的模型。
此外,本文所提出的方法可以使得集成算法包含判别模型,该判别模型能够区分真实数据和模型生成的数据。在一定理论前提下,集成器中融入一种新的模型能够提升拟合效果。
实验表明,本文的黑箱增强算法在密度估计,分类任务中的有效性,而且在很多生成模型上利用该增强算法之后能够在基准数据集上生成比较合理的样本。
一般的boosting都是基于有监督模型的
本文算法参考了判别式算法的boosting策略,对生成式模型进行boosting,并且融入判别模型,这里的判别模型用于区分真实样本和生成样本。
本文的主要贡献如下,融合了生成式模型和判别式模型,可以用于密度估计,样本生成等。
这篇文章研究的生成式模型问题描述如下
模型过于简单或者过于复杂都有问题,要么欠拟合,要么过拟合,因此这篇文章提出了boosting模型。
加法式boosting在数学上的表示如下
下面是相关的定理及充要条件
乘法boosting数学表示如下
对应的充要条件为
实验表明,乘法式boosting效果优于加法式boosting。
针对生成式boosting模型,boosting的过程如下
参数对计算速度的影响如下
GenBGM算法伪代码如下
针对判别式boosting模型,相关定义如下
下面是几个例子及应用
判别BGM的算法伪代码如下
下面是相关推论
不同的参数对应的情形解释如下
在boosting过程中,如果中间利用不同的模型,可以得到混合模型
关于正则方法,可以利用提前终止,dropout等
用于密度估计任务时,数据生成及算法设置如下
数据生成图示如下
实验结果如下
对应的过程图示如下
几种模型的效果对比如下
不同参数设置在真实数据集上的效果对比如下
关于启发式参数设置,不同的策略设置如下
不同策略对比图示如下
实验结果如下
在几个真实数据集上的实验结果如下,乘法boosting优于加法boosting,并且优于MoB和SPN。
虽然数据集都是无标签的,但是将其中一个特征抽取出来,可以看作标签列,同时将其他特征整体看作特征,即可得到分类任务。用于分类任务时,在六个数据集上,几种模型的效果对比如下
在生成的数据上实验结果如下
在样本生成任务中,作者们基于VAE和CNN以及MCMC等算法来完成样本生成。
不同情况下的结果对比如下
更详细的对比图示如下
不同情况耗时对比如下
跟GAN的区别如下
代码地址
https://github.com/ermongroup/bgm