NVAE: A Deep Hierarchical Variational Autoencoder

Arash Vahdat, Jan Kautz

Introduction

The majority of the research efforts on improving VAEs is dedicated to the statistical challenges, such as reducing the gap between approximate and true posterior distributions , formulating tighter bounds , reducing the gradient noise , extending VAEs to discrete variables , or tackling posterior collapse . The role of neural network architectures for VAEs is somewhat overlooked, as most previous work borrows the architectures from classification tasks.

However, VAEs can benefit from designing special network architectures as they have fundamentally different requirements. First, VAEs maximize the mutual information between the input and latent variables , requiring the networks to retain the information content of the input data as much as possible. This is in contrast with classification networks that discard information regarding the input . Second, VAEs often respond differently to the over-parameterization in neural networks. Since the marginal log-likelihood only depends on the generative model, overparameterizing the decoder network may hurt the test log-likelihood, whereas powerful encoders can yield better models because of reducing the amortization gap . Wu et al. observe that the marginal log-likelihood, estimated by non-encoder-based methods, is not sensitive to the encoder overfitting (see also Fig. 9 in ). Moreover, the neural networks for VAEs should model long-range correlations in data , requiring the networks to have large receptive fields. Finally, due to the unbounded Kullback–Leibler (KL) divergence in the variational lower bound, training very deep hierarchical VAEs is often unstable. The current state-of-the-art VAEs omit batch normalization (BN) to combat the sources of randomness that could potentially amplify their instability.

In this paper, we aim to make VAEs great again by architecture design. We propose Nouveau VAE (NVAE), a deep hierarchical VAE with a carefully designed network architecture that produces high-quality images. NVAE obtains the state-of-the-art results among non-autoregressive likelihood-based generative models, reducing the gap with autoregressive models. The main building block of our network is depthwise convolutions that rapidly increase the receptive field of the network without dramatically increasing the number of parameters.

In contrast to the previous work, we find that BN is an important component of the success of deep VAEs. We also observe that instability of training remains a major roadblock when the number of hierarchical groups is increased, independent of the presence of BN. To combat this, we propose a residual parameterization of the approximate posterior parameters to improve minimizing the KL term, and we show that spectral regularization is key to stabilizing VAE training.

In summary, we make the following contributions: i) We propose a novel deep hierarchical VAE, called NVAE, with depthwise convolutions in its generative model. ii) We propose a new residual parameterization of the approximate posteriors. iii) We stabilize training deep VAEs with spectral regularization. iv) We provide practical solutions to reduce the memory burden of VAEs. v) We show that deep hierarchical VAEs can obtain state-of-the-art results on several image datasets, and can produce high-quality samples even when trained with the original VAE objective. To the best of our knowledge, NVAE is the first successful application of VAEs to images as large as 256×\times256 pixels.

Related Work: Recently, VQ-VAE-2 demonstrated high-quality generative performance for large images. Although VQ-VAE’s formulation is motivated by VAEs, its objective does not correspond to a lower bound on data log-likelihood. In contrast, NVAE is trained directly with the VAE objective. Moreover, VQ-VAE-2 uses PixelCNN in its prior for latent variables up to 128×\times128 dims that is very slow to sample from, while NVAE uses an unconditional decoder in the data space.

Our work is related to VAEs with inverse autoregressive flows (IAF-VAEs) . NVAE borrows the statistical models (i.e., hierarchical prior and approximate posterior, etc.etc) from IAF-VAEs. But, it differs from IAF-VAEs in terms of i) neural networks implementing these models, ii) the parameterization of approximate posteriors, and iii) scaling up the training to large images. Nevertheless, we provide ablation experiments on these aspects, and we show that NVAE outperform the original IAF-VAEs by a large gap. Recently, BIVA showed state-of-the-art VAE results by extending bidirectional inference to latent variables. However, BIVA uses neural networks similar to IAF-VAE, and it is trained on images as large as 64×\times64 px. To keep matters simple, we use the hierarchical structure from IAF-VAEs, and we focus on carefully designing the neural networks. We expect improvements in performance if more complex hierarchical models from BIVA are used. Early works DRAW and Conv DRAW use recurrent neural networks to model hierarchical dependencies.

Background

Here, we review VAEs, their hierarchical extension, and bidirectional encoder networks .

The goal of VAEs is to train a generative model in the form of p(x,z)=p(z)p(x∣z)p({\boldsymbol{x}},{\boldsymbol{z}})=p({\boldsymbol{z}})p({\boldsymbol{x}}|{\boldsymbol{z}}) where p(z)p({\boldsymbol{z}}) is a prior distribution over latent variables z{\boldsymbol{z}} and p(x∣z)p({\boldsymbol{x}}|{\boldsymbol{z}}) is the likelihood function or decoder that generates data x{\boldsymbol{x}} given latent variables z{\boldsymbol{z}}. Since the true posterior p(z∣x)p({\boldsymbol{z}}|{\boldsymbol{x}}) is in general intractable, the generative model is trained with the aid of an approximate posterior distribution or encoder q(z∣x)q({\boldsymbol{z}}|{\boldsymbol{x}}).

In deep hierarchical VAEs , to increase the expressiveness of both the approximate posterior and prior, the latent variables are partitioned into disjoint groups, z={z1,z1,…,zL}{\boldsymbol{z}}=\{{\boldsymbol{z}}_{1},{\boldsymbol{z}}_{1},\dots,{\boldsymbol{z}}_{L}\}, where LL is the number of groups. Then, the prior is represented by p(z)=∏lp(zl∣z<l)p({\boldsymbol{z}})=\prod_{l}p({\boldsymbol{z}}_{l}|{\boldsymbol{z}}_{<l}) and the approximate posterior by q(z∣x)=∏lq(zl∣z<l,x)q({\boldsymbol{z}}|{\boldsymbol{x}})=\prod_{l}q({\boldsymbol{z}}_{l}|{\boldsymbol{z}}_{<l},{\boldsymbol{x}}) where each conditional in the prior (p(zl∣z<lp({\boldsymbol{z}}_{l}|{\boldsymbol{z}}_{<l}) and the approximate posterior (q(zl∣z<l,x)q({\boldsymbol{z}}_{l}|{\boldsymbol{z}}_{<l},{\boldsymbol{x}})) are represented by factorial Normal distributions. We can write the variational lower bound LVAE(x){\mathcal{L}}_{\text{VAE}}({\boldsymbol{x}}) on log⁡p(x)\log p({\boldsymbol{x}}) as:

r denotes residual neural networks, + denotes feature combination (e.g., concatenation), and h is a trainable parameter. where q(z<l∣x):=∏i=1l−1q(zi∣x,z<i)q({\boldsymbol{z}}_{<l}|{\boldsymbol{x}}):=\prod_{i=1}^{l-1}q({\boldsymbol{z}}_{i}|{\boldsymbol{x}},{\boldsymbol{z}}_{<i}) is the approximate posterior up to the (l−1)th(l-1)^{th} group. The objective is trained using the reparameterization trick .

The main question here is how to implement the conditionals in p(x,z)p({\boldsymbol{x}},{\boldsymbol{z}}) and q(z∣x)q({\boldsymbol{z}}|{\boldsymbol{x}}) using neural networks. For modeling the generative model, a top-down network generates the parameters of each conditional. After sampling from each group, the samples are combined with deterministic feature maps and passed to the next group (Fig. 2(b)). For inferring the latent variables in q(z∣x)q({\boldsymbol{z}}|{\boldsymbol{x}}), we require a bottom-up deterministic network to extract representation from input x{\boldsymbol{x}}. Since the order of latent variable groups are shared between q(z∣x)q({\boldsymbol{z}}|{\boldsymbol{x}}) and p(z)p({\boldsymbol{z}}), we also require an additional top-down network to infer latent variables group-by-group. To avoid the computation cost of an additional top-down model, in bidirectional inference , the representation extracted in the top-down model in the generative model is reused for inferring latent variables (Fig. 2(a)). IAF-VAEs relies on regular residual networks for both top-down and bottom-up models without any batch normalization, and it has been examined on small images only.

Method

In this paper, we propose a deep hierarchical VAE called NVAE that generates large high-quality images. NVAE’s design focuses on tackling two main challenges: (i) designing expressive neural networks specifically for VAEs, and (ii) scaling up the training to a large number of hierarchical groups and image sizes while maintaining training stability. NVAE uses the conditional dependencies from Fig. 2, however, to address the above-mentioned challenges, it is equipped with novel network architecture modules and parameterization of approximate posteriors. Sec. 3.1 introduces NVAE’s residual cells. Sec. 3.2 presents our parameterization of posteriors and our solution for stable training.

One of the key challenges in deep generative learning is to model the long-range correlations in data. For example, these correlations in the images of faces are manifested by a uniform skin tone and the general left-right symmetry. In the case of VAEs with unconditional decoder, such long-range correlations are encoded in the latent space and are projected back to the pixel space by the decoder.

A common solution to the long-range correlations is to build a VAE using a hierarchical multi-scale model. Our generative model starts from a small spatially arranged latent variables as z1{\boldsymbol{z}}_{1} and samples from the hierarchy group-by-group while gradually doubling the spatial dimensions. This multi-scale approach enables NVAE to capture global long-range correlations at the top of the hierarchy and local fine-grained dependencies at the lower groups.

In addition to hierarchical modeling, we can improve modeling the long-range correlations by increasing the receptive field of the networks. Since the encoder and decoder in NVAE are implemented by deep residual networks , this can be done by increasing the kernel sizes in the convolutional path. However, large filter sizes come with the cost of large parameter sizes and computational complexity. In our early experiments, we empirically observed that depthwise convolutions outperform regular convolutions while keeping the number of parameters and the computational complexity orders of magnitudes smallerA k×kk\times k regular convolution, mapping a CC-channel tensor to the same size, has k2C2k^{2}C^{2} parameters and computational complexity of O(k2C2)O(k^{2}C^{2}) per spatial location, whereas a depthwise convolution operating in the same regime has k2Ck^{2}C parameters and O(k2C)O(k^{2}C) complexity per location.. However, depthwise convolutions have limited expressivity as they operate in each channel separately. To tackle this issue, following MobileNetV2 , we apply these convolutions after expanding the number of channels by a 1×11\times 1 regular convolution and we map their output back to original channel size using another 1×11\times 1 regular convolution.

Batch Normalization: The state-of-the-art VAE models have omitted BN as they observed that “the noise introduced by batch normalization hurts performance” and have relied on weight normalization (WN) instead. In our early experiments, we observed that the negative impact of BN is during evaluation, not training. Because of using running statistics in BN, the output of each BN layer can be slightly shifted during evaluation, causing a dramatic change in the network output. To fix this, we adjust the momentum hyperparameter of BN, and we apply a regularization on the norm of scaling parameters in BN layers to ensure that a small mismatch in statistics is not amplified by BN. This follows our network smoothness regularization that is discussed in Sec. 3.2.

Swish Activation: The Swish activation , f(u)=u1+e−uf(u)=\frac{u}{1+e^{-u}}, has been recently shown promising results in many applications . We also observe that the combination of BN and Swish outperforms WN and ELU activation used by the previous works .

Squeeze and Excitation (SE): SE is a simple channel-wise gating layer that has been used widely in classification problems . We show that SE can also improve VAEs.

Final cell: Our residual cells with depthwise convolutions are visualized in Fig. 3(a). Our cell is similar to MobileNetV2 , with three crucial differences; It has two additional BN layers at the beginning and the end of the cell and it uses Swish activation function and SE.

1.2 Residual Cells for the Encoder Model

We empirically observe that depthwise convolutions are effective in the generative model and do not improve the performance of NVAE when they are applied to the bottom-up model in encoder. Since regular convolutions require less memory, we build the bottom-up model in encoder by residual cells visualized in Fig. 3(b). We empirically observe that BN-Activation-Conv performs better than the original Conv-BN-Activation in regular residual cells. A similar observation was made in .

1.3 Reducing the Memory Requirements

The main challenge in using depthwise convolutions is the high memory requirement imposed by the expanded features. To tackle this issue, we use two tricks: (i) We define our model in mixed-precision using the NVIDIA APEX library . This library has a list of operations (including convolutions) that can safely be cast to half-precision floats. This enables us to reduce the GPU memory by 40%. (ii) A careful examination of the residual cells in Fig. 3 reveals that one copy of feature maps for each operation is stored for the backward passSwish cannot be done in place and it requires additional memory for the backward pass.. To reduce the memory, we fuse BN and Swish and we store only one feature map for the backward pass, instead of two. This trick is known as gradient check-pointing and it requires recomputing BN in the backward pass. The additional BN computation does not change the training time significantly, but it results in another 18% reduction in memory usage for our model on CIFAR-10. These two tricks together help us roughly double the training throughput using a larger batch size (from 34 images/sec to 64 images/sec).

2 Taming the Unbounded KL Term

In practice, training deep hierarchical VAE poses a great optimization challenge due to unbounded KL from q(zl∣x,z<l)q({\boldsymbol{z}}_{l}|{\boldsymbol{x}},{\boldsymbol{z}}_{<l}) to p(zl∣z<l)p({\boldsymbol{z}}_{l}|{\boldsymbol{z}}_{<l}) in the objective. It is common to use two separate neural networks to generate the parameters of these distributions. However, in the case of a large number of latent variable groups, keeping these distributions in harmony is very challenging. If the encoder and decoder produce distributions far from each other during training, the sharp gradient update, resulting from KL, will push the model parameters to an unstable region, from which it is difficult to recover. Here, we propose two approaches for improving KL optimization and stabilizing the training.

Residual Normal Distributions: We propose a residual distribution that parameterizes q(z∣x)q({\boldsymbol{z}}|{\boldsymbol{x}}) relative to p(z)p({\boldsymbol{z}}). Let p(zli∣z<l):=N(μi(z<l),σi(z<l))p(z^{i}_{l}|{\boldsymbol{z}}_{<l}):={\mathcal{N}}\left(\mu_{i}({\boldsymbol{z}}_{<l}),\sigma_{i}({\boldsymbol{z}}_{<l})\right) be a Normal distribution for the ithi^{\textrm{th}} variable in zl{\boldsymbol{z}}_{l} in prior. We define q(zli∣z<l,x):=N(μi(z<l)+Δμi(z<l,x),σi(z<l)⋅Δσi(z<l,x))q(z^{i}_{l}|{\boldsymbol{z}}_{<l},{\boldsymbol{x}}):={\mathcal{N}}\left(\mu_{i}({\boldsymbol{z}}_{<l})+\Delta\mu_{i}({\boldsymbol{z}}_{<l},{\boldsymbol{x}}),\sigma_{i}({\boldsymbol{z}}_{<l})\cdot\Delta\sigma_{i}({\boldsymbol{z}}_{<l},{\boldsymbol{x}})\right), where Δμi(z<l,x)\Delta\mu_{i}({\boldsymbol{z}}_{<l},{\boldsymbol{x}}) and Δσi(z<l,x)\Delta\sigma_{i}({\boldsymbol{z}}_{<l},{\boldsymbol{x}}) are the relative location and scale of the approximate posterior with respect to the prior. With this parameterization, when the prior moves, the approximate posterior moves accordingly, if not changed. The benefit of this formulation can be also seen when we examine the KL term in LVAE{\mathcal{L}}_{\text{VAE}}:

Spectral Regularization (SR): The residual Normal distributions do not suffice for stabilizing VAE training as KL in Eq. 2 is still unbounded. To bound KL, we need to ensure that the encoder output does not change dramatically as its input changes. This notion of smoothness is characterized by the Lipschitz constant. We hypothesize that by regularizing the Lipschitz constant, we can ensure that the latent codes predicted by the encoder remain bounded, resulting in a stable KL minimization.

Since estimating the Lipschitz constant of a network is intractable, we use the SR that minimizes the Lipschitz constant for each layer. Formally, we add the term LSR=λ∑is(i){\mathcal{L}}_{SR}=\lambda\sum_{i}s^{(i)} to LVAE{\mathcal{L}}_{\text{VAE}}, where s(i)s^{(i)} is the largest singular value of the ithi^{\textrm{th}} conventional layer, estimated using a single power iteration update . Here, λ\lambda controls to the level of smoothness imposed by LSR{\mathcal{L}}_{SR}.

More Expressive Approximate Posteriors with Normalizing Flows: In NVAE, p(z)p({\boldsymbol{z}}) and q(z∣x)q({\boldsymbol{z}}|{\boldsymbol{x}}) are modeled by autoregressive distributions among groups and independent distributions in each group. This enables us to sample from each group in parallel efficiently. But, it also comes with the cost of less expressive distributions. A simple solution to this problem is to apply a few additional normalizing flows to the samples generated at each group in q(z∣x)q({\boldsymbol{z}}|{\boldsymbol{x}}). Since they are applied only in the encoder network, i) we can rely on the inverse autoregressive flows (IAF) , as we do not require the explicit inversion of the flows, and ii) the sampling time is not increased because of the flows.

Experiments

In this section, we examine NVAE on several image datasets. We present the main quantitative results in Sec. 4.1, qualitative results in Sec. 4.2 and ablation experiments in Sec. 4.3.

We examine NVAE on the dynamically binarized MNIST , CIFAR-10 , ImageNet 32×3232\times 32 , CelebA 64×6464\times 64 , CelebA HQ 256×\times256 , and FFHQ 256×\times256 datasets. All the datasets except FFHQ are commonly used for evaluating likelihood-based generative models. FFHQ is a challenging dataset, consisting of facial images. We reduce the resolution of the images in FFHQ to 256×\times256. To the best of our knowledge, NVAE is the first VAE model trained on FFHQ.

We build NVAE using the hierarchical structure shown in Fig. 2 and residual cells shown in Fig. 3. For large image datasets such as CelebA HQ and FFHQ, NVAE consists of 36 groups of latent variables starting from 8×88\times 8 dims, scaled up to 128×128128\times 128 dims with two residual cells per latent variable groups. The implementation details are provided in Sec. A in Appendix.

The results are reported in Table 1. NVAE outperforms the state-of-the-art non-autoregressive flow and VAE models including IAF-VAE and BIVA on all the datasets, but ImageNet, in which NVAE comes second after Flow++. On CIFAR-10, NVAE improves the state-of-the-art from 2.98 to 2.91 bpd. It also achieves very competitive performance compared to the autoregressive models. Moreover, we can see that NVAE’s performance is only slightly improved by applying flows in the encoder, and the model without flows outperforms many existing generative models by itself. This indicates that the network architecture is an important component in VAEs and a carefully designed network with Normal distributions in encoder can compensate for some of the statistical challenges.

2 Qualitative Results

For visualizing generated samples on challenging datasets such as CelebA HQ, it is common to lower the temperature of the prior to samples from the potentially high probability region in the model . This is done by scaling down the standard deviation of the Normal distributions in each conditional in the prior, and it often improves the quality of the samples, but it also reduces their diversity.

In NVAE, we observe that if we use the single batch statistics during sampling for the BN layers, instead of the default running averages, we obtain much more diverse and higher quality samples even with small temperaturesFor the evaluation in Sec. 4.1, we do use the default setting to ensure that our reported results are valid.. A similar observation was made in BigGAN and DCGAN . However, in this case, samples will depend on other data points in the batch. To avoid this, similar to BigGAN, we readjust running mean and standard deviation in the BN layers by sampling from the generative model 500 times for the given temperature, and then we use the readjusted statistics for the final samplingThis intriguing effect of BN on VAEs and GANs requires further study in future work. We could not obtain the same quantitative and qualitative results with instance norm which is a batch-independent extension to BN.. We visualize samples with the default BN behavior in Sec. B.2 in the appendix.

Fig. 4 visualizes the samples generated by NVAE along with the samples from MaCow and Glow on CelebA HQ for comparison. As we can see, NVAE produces high quality and diverse samples even with small temperatures.

3 Ablation Studies

In this section, we perform ablation experiments to provide a better insight into different components in NVAE. All the experiments in this section are performed on CIFAR-10 using a small NVAE, constructed by halving the number of channels in residual cells and removing the normalizing flows.

Normalization and Activation Functions: We examine the effect of normalization and activation functions on a VAE with cells visualized in Fig. 3(b) for different numbers of groups (LL). ELU with WN and data-dependent initialization were used in IAF-VAE and BIVA . As we can see in Table 2, replacing WN with BN improves ELU’s training, especially for L=40L=40, but BN achieves better results with Swish.

Residual Cells: In Table 3, we examine the cells in Fig 3 for the bottom-up encoder and top-down generative models. Here, “Separable” and “Regular” refer to the cells in Fig. 3(a) and Fig. 3(b) respectively. We observe that the residual cell with depthwise convolution in the generative model outperforms the regular cells, but it does not change the performance when it is in the bottom-up model. Given the lower memory and faster training with regular cells, we use these cells for the bottom-up model and depthwise cells for the top-down model.

Residual Normal Distributions: A natural question is whether the residual distributions improve the optimization of the KL term in the VAE objective or whether they only further contribute to the approximate posterior collapse. In Table 4, we train the 40-group model from Table 2 with and without the residual distributions, and we report the number of active channels in the latent variablesTo measure the number of the active channels, the average of KL across training batch and spatial dimensions is computed for each channel in latent variables. A channel is considered active if the average is above 0.1., the average training KL, reconstruction loss, and variational bound in bpd. Here, the baseline without residual distribution corresponds to the parameterization used in IAF-VAE . As we can see, the residual distribution does virtually not change the number of active latent variables or reconstruction loss. However, it does improve the KL term by 0.04 bpd in training, and the final test log-likelihood by 0.03 bpd (see Sec. B.4 in Appendix for additional details).

The Effect of SR and SE: In Table 5, we train the same 40-group model from Table 2 without spectral regularization (SR) or squeeze-and-excitation (SE). We can see that removing any of these components hurts performance. Although we introduce SR for stabilizing training, we find that it also slightly improves the generative performance (see Sec. B.5 in the appendix for an experiment, stabilized by SR).

Sampling Speed: Due to the unconditional decoder, NVAE’s sampling is fast. On a 12-GB Titan V GPU, we can sample a batch of 36 images of the size 256×\times256 px in 2.03 seconds (56 ms/image). MaCow reports 434.2 ms/image in a similar batched-sampling experiment (∼ ⁣8×\sim\!8\times slower).

Reconstruction: Fig. 5(a) visualizes the reconstruction results on CelebA HQ datasets. As we can see, the reconstructed images in NVAE are indistinguishable from the training images.

Posterior Collapse: Since we are using more latent variables than the data dimensionality, it is natural for the model to turn off many latent variables. However, our KL balancing mechanism (Sec. A) stops a hierarchical group from turning off entirely. In Fig. 5(b), we visualize KL per group in CIFAR-10 (for 30 groups). Note how most groups obtain a similar KL on average, and only one group is turned off. We apply KL balancing mechanism only during KL warm-up (the first ∼\sim 25000 iterations). In the remaining iterations, we are using the original VAE objective without any KL balancing (Eq. 1).

Conclusions

In this paper, we proposed Nouveau VAE, a deep hierarchical VAE with a carefully designed architecture. NVAE uses depthwise separable convolutions for the generative model and regular convolutions for the encoder model. We introduced residual parameterization of Normal distributions in the encoder and spectral regularization for stabilizing the training of very deep models. We also presented practical remedies for reducing the memory usage of deep VAEs, enabling us to speed up training by ∼ ⁣2×\sim\!2\times. NVAE achieves state-of-the-art results on MNIST, CIFAR-10, CelebA 64, and CelebA HQ-256, and it provides a strong baseline on FFHQ-256. To the best of our knowledge, NVAE is the first VAE that can produce large high-quality images and it is trained without changing the objective function of VAEs. Our results show that we can achieve state-of-the-art generative performance by carefully designing neural network architectures for VAEs. The future work includes scaling up the training for larger images, experimenting with more complex normalizing flows, automating the architecture design by neural architecture search, and studying the role of batch normalization in VAEs. We have released our source-code to facilitate research in these directions.

Impact Statement

This paper’s contributions are mostly centered around the fundamental challenges in designing expressive neural architectures for image VAEs, and the ideas, here, are examined on commonly used public datasets. This work has applications in content generation, computer graphics, data augmentation, semi-supervised learning, and representation learning.

VAEs are known to represent the data distribution more faithfully than commonly used generative adversarial networks (GANs), as VAEs do not suffer from the mode collapse problem. Thus, in the long run, enabling VAEs to generate high-quality images will help us reduce bias in the generated content, produce diverse output, and represent minorities better.

One should also take into consideration that VAEs are trained to mimic the training data distribution, and, any bias introduced in data collection will make VAEs generate samples with a similar bias. Additional bias could be introduced during model design, training, or when VAEs are sampled using small temperatures. Bias correction in generative learning is an active area of research, and we recommend the interested readers to check this area before building applications using this work.

Acknowledgements

The authors would like to thank Karsten Kreis and Margaret Albrecht for providing feedback on the early version of this work. They also would like to extend their sincere gratitude to Sangkug Lym for providing suggestions for accelerating NVAE. Last but not least, they are grateful to Sabu Nadarajan, Nithya Natesan, Sivakumar Arayandi Thottakara, and Jung Seok Jin for providing compute support.

References

Appendix A Additional Implementation Details

Warming-up the KL Term: Similar to the previous work, we warm-up the KL term at the beginning of training . Formally, we optimize the following objective:

where β\beta is annealed from 0 to 1 at the first 30% of training.

Balancing the KL Terms: In hierarchical VAEs, the KL term is defined by:

where each KL ⁣(q(zl∣x,z<l)∣∣p(zl∣z<l))\text{KL}\!\left(q({\boldsymbol{z}}_{l}|{\boldsymbol{x}},{\boldsymbol{z}}_{<l})||p({\boldsymbol{z}}_{l}|{\boldsymbol{z}}_{<l})\right) can be thought as the amount of information encoded in the lthl^{th} group. In deep hierarchical VAEs, during training, some groups of latent variables can easily become deactivated by matching the approximate posterior with the prior (i.e., posterior collapse). One simple solution is to use KL balancing coefficients to ensure that an equal amount of information is encoded in each group using:

Annealing λ\boldsymbol{\lambda}: The coefficient of the smoothness loss λ\lambda is set to a fixed value in {10−2,10−1}\{10^{-2},10^{-1}\} for almost all the experiments. We used 10−110^{-1} only when training was unstable at 10−210^{-2}. However, on Celeb-A HQ and FFHQ, we observe that training is initially unstable unless for λ∈{1,10}\lambda\in\{1,10\} which applies a very strong smoothness. For these datasets, we anneal λ\lambda with exponential decay from 1010 to a small value shown in Table. 6 in the same number of iterations that the KL coefficient is annealed. Note that the smoothness loss is applied to both encoder and decoder. We hypothesize that a sharp decoder may require a sharp encoder, causing more instability in training.

Weight Normalization (WN): WN cannot be used with BN as BN removes any scaling of weights introduced by WN. However, previous works have seen improvements in using WN for VAEs. In NVAE, we apply WN to any convolutional layer that is not followed by BN, e.g., convolutional layers that produce the parameters of Normal distributions in encoder or decoder.

Inverse Autoregressive Flows (IAFs): We apply simple volume-preserving normalizing flows of the form z′=z+b(z){\boldsymbol{z}}^{\prime}={\boldsymbol{z}}+{\boldsymbol{b}}({\boldsymbol{z}}) to the samples generated by the encoder at each level, where b(z){\boldsymbol{b}}({\boldsymbol{z}}) is produced by an autoregressive network. In each flow operation, the autoregressive network is created using a cell similar to Fig. 3 (a) with the masking mechanism introduced in PixelCNN . In the autoregressive cell, BN is replaced with WN, and SE is omitted, as these operations break the autoregressive dependency. We initially examined non-volume-preserving affine transformations in the form of z′=a(z)⊙z+b(z){\boldsymbol{z}}^{\prime}={\boldsymbol{a}}({\boldsymbol{z}})\odot{\boldsymbol{z}}+{\boldsymbol{b}}({\boldsymbol{z}}), but we did not observe any improvements. Similar results are reported by Kingma et al. (See Table 3).

Optimization: For all the experiments, we use the AdaMax optimizer for training with the initial learning rate of 0.010.01 and with cosine learning rate decay. For FFHQ experiments, we reduce the learning rate to 0.0080.008 to further stabilize the training.

Image Decoder p(x∣z):p({\boldsymbol{x}}|{\boldsymbol{z}}): For all the datasets but MNIST, we use the mixture of discretized Logistic distribution . In MNIST, we use a Bernoulli distribution. Note that in all the cases, our decoder is unconditional across the spatial locations in the image.

Evaluation: For estimating log-likelihood on the test datasets in evaluation, we use importance weighted sampling using the encoder . We use 1000 importance weighted samples for evaluation.

Channel Sizes: We only set the initial number of channels in the bottom-up encoder. When we downsample the features spatially, we double the number of channels in the encoder. The number of channels is set in the reverse order for the top-down model.

Expansion Ratio EE: The depthwise residual cell in Fig. 3(a) requires setting an expansion ratio EE. We use E=6E=6 similar to MobileNetV2 . In a few cells, we set E=3E=3 to reduce the memory. Please see our code for additional details.

Datasets: We examine NVAE on the dynamically binarized MNIST , CIFAR-10 , ImageNet 32×3232\times 32 , CelebA 64×6464\times 64 , CelebA HQ , and FFHQ 256×\times256 . For all the datasets but FFHQ, we follow Glow for the train and test splits. In FFHQ, we use 63K images for training, and 7K for test. Images in FFHQ and CelebA HQ are downsampled to 256×256256\times 256 pixels, and are quantized in 5 bits per pixel/channel to have a fair comparison with prior work .

Hyperparameters: Given a large number of datasets and the heavy compute requirements, we do not exhaustively optimize the hyperparameters. In our early experiments, we observed that the larger the model is, the better it performs. We often see improvements with wider networks, a larger number of hierarchical groups, and more residual cells per group. However, they also come with smaller training batch size and slower training. We set the number of hierarchical groups to around 30, and we used two residual cells per group. We set the remaining hyperparameters such that the model could be trained in no more than about a week. Table. 6 summarizes the hyperparameters used in our experiments.

Appendix B Additional Experiments and Visualizations

In this section, we provide additional insights into NVAE.

In VAEs, since we can compute the log-likelihood on a held-out set, we can ensure that the model is not memorizing the training set. In fact, in our experiments, as we increase the model capacity (depth and width), we never observe any overfitting behavior especially on the datasets with large images. In most cases, we stop making the model large because of the compute and training time considerations. However, since the images generated by NVAE are realistic, this may raise a question on whether NVAE memorizes the training set.

In Fig. 6, we visualize a few samples generated by NVAE and the most similar images from the training data. For measuring the similarity, we downsample the images by 4×\times, and we measure L2L_{2} distance using the central crop of the images. Since images are aligned, this way we can compare images using the most distinct facial features (eyes, nose, and mouth). As we can see, the sampled images are not present in the training set.

B.2 Changing the Temperature of the Prior in NVAE

It is common to lower the temperature of the prior when sampling from VAEs on challenging datasets. In Fig. 7, we examine different temperatures in the prior with different settings for the batch norm layers.

B.3 Additional Generated Samples

In Fig. 8 and Fig. 9, we visualize additional generated samples by NVAE, trained on CelebA HQ. In these figures, we use higher temperatures (t∈{0.6,0.7,0.8,0.9}t\in\{0.6,0.7,0.8,0.9\}), but we manually select the samples.

B.4 More on the Impact of Residual Normal Distributions

Fig. 10 visualizes the total number of active channels in all latent variables during training. Here, we compare the residual Normal distributions against the model that predicts the absolute parameters of the Normal distributions in the approximate posterior. This figure corresponds to the experiment that we reported in Table. 4. As we can see, in the initial stage of training, the model without residual distributions turns off more latent variables.

B.5 Stabilizing the Training with Spectral Regularization

In our experiments, we came across many cases whose training was unstable due to the KL term, and it was stabilized by spectral regularization. Initially, instead of spectral regularization, we examined common approaches such as gradient clipping or limiting the parameters of the Normal distributions to a small range. But, none could stabilize the training without negatively affecting the performance. Fig. 11 shows an experiment on the FFHQ dataset. The training is stabilized by increasing the spectral regularization coefficient (λ\lambda) from 0.1 to 1.0.

B.6 Long-Range Correlations

NVAE’s hierarchical structure is composed of many latent variable groups operating at different scales. For example, on CelebA HQ 256×256256\times 256, the generative model consists of five scales. It starts from a spatially arranged latent variable group of the size 8×88\times 8 at the top, and it samples from the hierarchy group-by-group while gradually doubling the spatial dimensions up to 128×128128\times 128.

A natural question to ask is what information is captured at different scales. In Fig. 12, we visualize how the generator’s output changes as we fix the samples at different scales. As we can see, the global long-range correlations are captured mostly at the top of the hierarchy, and the local variations are recorded at the lower groups.