This paper studies the cooperative learning of two generative flow models, in which the two models are iteratively updated based on the jointly synthesized examples. The first flow model is a normalizing flow that transforms an initial simple density to a target density by applying a sequence of invertible transformations. The second flow model is a Langevin flow that runs finite steps of gradient-based MCMC toward an energy-based model. We start from proposing a generative framework that trains an energy-based model with a normalizing flow as an amortized sampler to initialize the MCMC chains of the energy-based model. In each learning iteration, we generate synthesized examples by using a normalizing flow initialization followed by a short-run Langevin flow revision toward the current energy-based model. Then we treat the synthesized examples as fair samples from the energy-based model and update the model parameters with the maximum likelihood learning gradient, while the normalizing flow directly learns from the synthesized examples by maximizing the tractable likelihood. Under the short-run non-mixing MCMC scenario, the estimation of the energy-based model is shown to follow the perturbation of maximum likelihood, and the short-run Langevin flow and the normalizing flow form a two-flow generator that we call CoopFlow. We provide an understating of the CoopFlow algorithm by information geometry and show that it is a valid generator as it converges to a moment matching estimator. We demonstrate that the trained CoopFlow is capable of synthesizing realistic images, reconstructing images, and interpolating between images.
翻译:本文研究对两种基因化流模型的合作学习, 在这两种模型中, 两种模型基于联合合成的模型进行迭代更新。 第一个流模式是一种正常化流, 通过应用一系列不可逆的变换, 将初始简单密度转换成目标密度。 第二个流模式是兰格文流, 运行基于梯度的 MMC 的有限步骤, 向基于能源的模型过渡。 我们从提议一个基因化框架, 将一个基于能源的模型训练成正常流, 作为正常流的样板, 作为正常流的采样器, 以启动基于能源的模型的 MMC 链。 在每次学习的循环中, 我们通过使用一个正常流的流流, 来生成综合的图像, 通过对流进行正常流的流, 显示基于能源的快速流, 并显示基于正常流的 C- F 模型的快速流, 显示一个基于我们运行的C- F 流, 并显示一个基于正常流的 C- 流, 通过我们运行的 C- Rang 的流, 显示一个基于正常流, 运行的流, 通过我们运行的 C- 的 C- 运行的流, 显示一个我们运行的流, 运行的流, 以 运行的流 向的流 以 以 运行 以 运行 向 运行的 运行的 显示一个基于 运行的流 运行 以 以 以 运行 向 运行 运行 向 向 向 向 运行 运行 运行 运行 运行 运行 向 运行 运行 运行 运行 运行 向为 运行 运行 运行 运行 的 运行 运行 的 的 运行 运行 的 。 以 以 以 以 以 运行 运行 运行 运行 的 的 运行 。 。 。 向 向 向 向 以 以 以 以 以 以 运行 运行 运行 运行 运行 运行 运行 以 向 以 以 以 以 以 以 以 以 以 以 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行 运行