GLANN笔记

Another url:https://bulihanjie.github.io/2019/03/19/GLANN笔记/

摘要

虽然生成对抗网络(GANs)在图像生成的任务中大放异彩,但依然存在着各种各样的问题。论文中参考GLO和IMLE模型,提出非对抗式的图像生成模型GLANN,克服了GANs的缺点,得到了不错的效果。

参考资料

  • Hoshen Y, Malik J. Non-Adversarial Image Synthesis with Generative Latent Nearest Neighbors[J]. arXiv preprint arXiv:1812.08985, 2018.
  • Li, K., & Malik, J. (2018). Implicit Maximum Likelihood Estimation. Retrieved from http://arxiv.org/abs/1809.09087
  • Bojanowski, P., Joulin, A., Lopez-Paz, D., & Szlam, A. (2017). Optimizing the Latent Space of Generative Networks. https://doi.org/10.1021/ja00066a057

介绍

图像生成的定义即是:给定有限的图像训练样本学习得到能生成整个图像分布的函数。
GANs由于其鲁棒的生成能力,能够把无监督学习的任务转化为一个有监督的学习任务,能够适用于各种图像任务中,如不同域之间的无监督图像转换、生成超分辨率图像等。但GANs依然存在以下两个问题:

  1. 难训练:训练过程不稳定、训练突然崩溃和对超参数敏感。通常可以考虑降低判别器的性能或者换更好的损失函数来缓解这方面的问题。
  2. 模式丢失:只能建模目标分布的某些模式而不是全部。实践中容易发现,生成器可能会只生成某几种样式的图片,使得图片的多样性降低。
    因此,有相关的工作被提出来,使用非对抗式的图像生成模型,能够捕捉训练集中所有的模式,并且也能够得到效果不错的图片。

GLO介绍

GLO(Generative Latent Optimization)模型通过学习隐变量到图片的映射函数,最终能够得编码所有模式(每个图片有对应的隐变量编码得到),具有以下的优点:

  1. 无编码丢失地编码整个分布;
  2. 隐含编码之间的欧几里德距离对应于形义方面的含义差异;
  3. 隐含编码的分布未知,如果随机的从一个分布中采样的隐含变量计算得到的图像较差。

GLO算法具体如下图所示, 对于所有的图片都赋予一个隐变量 z i z_i zi,模长限定为1。然后通过一个CNN的网络得到图片,然后采用Lap1 loss来进行优化。其中loss函数是
Lap ⁡ 1 ( x , x ′ ) = ∑ j 2 − 2 j ∣ L j ( x ) − L j ( x ′ ) ∣ 1 \operatorname{Lap}_{1}\left(x, x^{\prime}\right)=\sum_{j} 2^{-2 j}\left|L^{j}(x)-L^{j}\left(x^{\prime}\right)\right|_{1} Lap1(x,x)=j22jLj(x)Lj(x)1

考虑生成图像和真实样本之间不同维度间的差异。并且每个图片 x i x_i xi通过训练有对应的 z i z_i zi生成得到,因此图像的生成分布能够捕捉训练集的所有模式。但由于隐藏空间的分布是未知的, z i z_i zi是通过学习得到,难以选择适合的隐藏变量来生成别的图像。
GLANN笔记_第1张图片

IMLE介绍

IMLE(Implicit Maximum Likelihood Estimation)也是非对抗式的图像生成方法之一。其中,隐变量 z i z_i zi服从某个分布,,然后采用最近邻的训练方式,使得训练样本在隐空间中都有隐变量生成得到与之相近的图像。具体的算法流程如下图所示:
GLANN笔记_第2张图片

对于每个批次的样本,首先从隐变量中采样生成大量的图像,然后训练样本从中找到与之最近的生成样本,计算L2 loss进行优化:

σ ( i ) ← arg ⁡ min ⁡ j ∥ x i − x ~ j θ ∥ 2 2 ∀ i ∈ S \sigma(i) \leftarrow \arg \min _{j}\left\|\mathbf{x}_{i}-\tilde{\mathbf{x}}_{j}^{\theta}\right\|_{2}^{2} \forall i \in S σ(i)argjminxix~jθ22iS

这个步骤是从隐空间中找到最近的隐变量进行优化,具体所用的指标对 IMLE 影响很大,尤其是当训练集大小有限时。当使用 L2 损失直接在图像像素上训练时,IMLE 合成的图像是模糊不清的。

GLANN介绍

GLANN(Generative Latent Nearest Neighbors)模型,本质上就是结合了 IMLE 和 GLO 两者之长,克服了两种方法各自的主要缺点。因此模型具有易采样、能建模整个分布、训练稳定且能合成锐利的图像的特点。其具体模型如下图所示:
GLANN笔记_第3张图片

如图所示,模型主要包含三部分,隐变量的学习、隐变量与分布的对齐和生成图像。

隐变量学习

与GLO模型相似,也是每个训练样本有一个对应的可学习隐变量 z i z_i zi,通过学习隐变量和图像之间的映射函数得到图像生成函数:
arg ⁡ min ⁡ G ~ , { z i } ∑ i ℓ perceptual ( G ~ ( z i ) , x i )  s.t.  ∥ z i ∥ = 1 \arg \min _{\tilde{G},\left\{z_{i}\right\}} \sum_{i} \ell_{\text {perceptual}}\left(\tilde{G}\left(z_{i}\right), x_{i}\right) \quad \text { s.t. } \quad\left\|z_{i}\right\|=1 argG~,{zi}miniperceptual(G~(zi),xi) s.t. zi=1
不同的在于这里的loss函数采用VGG perceptual loss function。

隐空间采样

为了克服隐空间分布未知的缺陷,通过学习 T T T函数,把另一个服从高斯分布的 e e e隐变量映射到 z z z所在的空间。这里借鉴IMLE模型,采用最近邻的方式,每次采样多个 e t e_t et变量,然后找到 z t z_t zt对应最近的 T ( e t ) T(e_t) T(et),然后对 z t − T ( e t ) z_t−T(e_t) ztT(et)优化,具体的公式如下:
z ~ m = T ( e m ) \tilde{z}_{m}=T\left(e_{m}\right) z~m=T(em)

e t = arg ⁡ min ⁡ e m ∥ z t − T ( e m ) ∥ 2 2 e_{t}=\arg \min _{e_{m}}\left\|z_{t}-T\left(e_{m}\right)\right\|_{2}^{2} et=argemminztT(em)22

T = arg ⁡ min ⁡ T ~ ∑ t ∥ z t − T ~ ( e t ) ∥ 2 2 T=\arg \min _{\tilde{T}} \sum_{t}\left\|z_{t}-\tilde{T}\left(e_{t}\right)\right\|_{2}^{2} T=argT~mintztT~(et)22

生成图像

当已经知道 e e e变量和 z z z变量的映射函数 T T T,也知道 z z z变量到图像的生成函数 G G G,那么从高斯分布中采样 e e e然后依次经过 T T T G G G函数可以得到生成的图像。
z e = T ( e ) z_{e}=T(e) ze=T(e)
I e = G ( z e ) I_{e}=G\left(z_{e}\right) Ie=G(ze)

论文结果展示

可以看出用L2 loss的IMLE生成图像效果最差。
GLO生成的图像,只有部分的模糊。
GAN生成的图像还是不错的,但在动物那里容易得到奇奇怪怪的图像。
GLANN生成的图像比较的好。
GLANN笔记_第4张图片

感想

GLANN模型虽然是结合GLO和IMLE两者之间的优势,能够从一个分布中进行隐变量的采样然后生成图像,也能够无模式丢失的得到生成的函数。但感觉就是两者之间的拼接,创新其实并不大。

你可能感兴趣的:(文献阅读,图像,生成)