AI바라기의 인공지능
VQ-GAN : Taming Transformers for High-Resolution Image Synthesis 본문
Overall Summary
본 논문은 CNN의 efficiency와 Transformer의 expressivity를 결합하여 high-resolution image synthesis를 위한 새로운 framework를 제시한다. VQGAN을 사용하여 context-rich visual parts의 codebook을 학습하고, Latent Transformer를 통해 그 composition을 모델링함으로써, megapixel resolution의 이미지를 생성하고 다양한 conditional synthesis tasks에서 state-of-the-art 성능을 달성했다.
쉬운 설명: 이 논문은 이미지를 작은 조각(context-rich visual parts)들로 나누고, 각 조각을 나타내는 "단어"(codebook)를 학습한 다음, 이 "단어"들을 조합하여 새로운 이미지를 만드는 방법을 제안한다. "단어"를 만드는 데는 CNN을 사용하고, "단어"들을 조합하는 데는 Transformer를 사용하여, 고화질 이미지를 효율적으로 생성할 수 있다. 마치 레고 블록(CNN으로 만든 "단어")으로 멋진 성(Transformer로 조합한 이미지)을 만드는 것과 유사하다.
Taming Transformers for High-Resolution Image Synthesis 학습 노트
Purpose of the Paper
- Problem: Transformers는 sequence data에서 long-range interactions을 학습하도록 설계되어 다양한 task에서 state-of-the-art 결과를 보여주지만, CNN과 달리 local interactions을 우선시하는 inductive bias가 없다. 이는 expressivity를 높이지만, high-resolution image와 같이 긴 sequence에서는 computationally infeasible하다.
- Goal: CNN의 inductive bias의 효율성과 Transformers의 expressivity를 결합하여 high-resolution image를 모델링하고 합성하는 것이다.
- Approach: CNN을 사용하여 context-rich visual parts의 vocabulary를 학습하고, Transformers를 활용하여 high-resolution images 내에서 그 composition을 효율적으로 모델링한다.
Key Contributions
- VQGAN (Vector Quantized Generative Adversarial Network):
- Contribution: CNN을 사용하여 context-rich visual parts의 discrete codebook을 학습한다.
- Novelty: Perceptual loss와 patch-based discriminator를 사용하여, 높은 compression rate에서도 high perceptual quality를 유지하는 VQVAE 변형을 제안한다.
- Latent Transformer:
- Contribution: VQGAN으로 학습된 codebook indices의 sequence로 이미지를 표현하고, Autoregressive Transformer를 사용하여 그 composition을 모델링한다.
- Novelty: Codebook을 interface로 사용하여 CNN의 efficiency와 Transformer의 expressivity를 결합하여 high-resolution image synthesis를 가능하게 한다.
- Conditional Synthesis Control:
- Contribution: Non-spatial information (object classes) 및 spatial information (segmentations)을 모두 사용하여 generated image를 control할 수 있다.
- Novelty: Semantically-guided synthesis of megapixel images with transformers에 대한 첫 번째 결과를 제시한다.
Experimental Highlights
- State-of-the-Art Performance: Class-conditional ImageNet에서 autoregressive models 중 state-of-the-art를 달성했다.
- Quantitative Evaluation:
- Transformer가 PixelSNAIL (convolutional architecture)보다 NLL (Negative Log-Likelihood) 측면에서 consistently outperform함을 다양한 datasets (ImageNet, Restricted ImageNet, LSUN Churches and Towers) 및 model sizes에서 입증했다. (Tab. 1)
- Semantic image synthesis에서 기존 approaches ([53, 75, 35, 9])보다 더 나은 FID score를 달성했다. (Tab. 2)
- Qualitative Results: Megapixel resolution의 semantically-guided image synthesis를 포함하여, 다양한 conditional synthesis tasks (semantic image synthesis, structure-to-image, pose-guided synthesis, stochastic superresolution, class-conditional image synthesis)에서 realistic and consistent high-resolution images를 생성함을 보여주었다 (Fig. 1, 4, 5, 6).
- Codebook Ablation: Context-rich vocabulary가 high-quality image synthesis에 중요하다는 점을 입증했다. (Fig. 7).
Limitations and Future Work
- Limitations:
- Sliding-window approach는 training 중에는 patch-wise로 작동하고, sampling 중에는 sliding-window manner로 Transformer를 사용해야 한다.
- Dataset의 image statistics가 approximately spatially invariant하거나 spatial conditioning information이 available해야 한다.
- Future Work:
- Improved denoising diffusion probabilistic models (IDDPM) [49]와 ADM [15]와 FID score 경쟁.
- Novel neural rendering approaches에 대한 기회 제공.
용어 설명
- High-resolution image synthesis: 수백만 픽셀 이상의 고해상도 이미지를 생성하는 기술.
- Context-rich visual parts: 주변 정보를 포함하는, 의미적으로 풍부한 이미지의 작은 구성 요소 (예: 질감, 객체의 일부).
- Inductive bias: 모델이 학습 데이터 외의 데이터에 대해 일반화할 수 있도록 하는, 모델에 내장된 사전 가정 또는 제약 (예: CNN의 locality bias).
- Patch-based discriminator: 이미지 전체가 아닌, 이미지의 작은 부분(patch)들을 real/fake로 판별하는 discriminator.
- Perceptual loss: 생성된 이미지와 실제 이미지 간의 (사람의 인지 관점에서의) 지각적 차이를 측정하는 loss function.
- Semantically-guided synthesis of megapixel images with transformers: Transformer를 사용하여 의미 정보(예: 객체 레이블, segmentation map)를 기반으로 백만 픽셀 이상의 고해상도 이미지를 생성하는 기술.
Abstract
Sequence data에서 long-range interactions를 학습하도록 설계된 transformers는 계속해서 다양한 tasks에서 state-of-the-art results를 보여주고 있다. CNNs와 대조적으로, transformers는 local interactions을 우선시하는 inductive bias를 포함하지 않는다. 이것은 transformers를 표현력이 풍부하게 만들지만, high-resolution images와 같은 long sequences에 대해서는 계산적으로 불가능하게 만든다. 우리는 CNNs의 inductive bias의 효과와 transformers의 표현력을 결합하여 high-resolution images를 모델링하고 합성할 수 있는 방법을 제시한다. 우리는 (i) CNNs를 사용하여 image constituents의 context-rich vocabulary를 학습하고, (ii) transformers를 활용하여 high-resolution images 내에서 그 구성을 효율적으로 모델링하는 방법을 보여준다. 우리의 approach는 conditional synthesis tasks에 쉽게 적용되며, object classes와 같은 non-spatial information과 segmentations와 같은 spatial information 모두 생성된 이미지를 제어할 수 있다. 특히, 우리는 transformers를 사용하여 megapixel images의 semantically-guided synthesis에 대한 첫 번째 결과를 제시하고 class-conditional ImageNet에서 autoregressive models 중 state-of-the-art를 획득했다.
Abstract 정리 노트 (AI 연구자 대상)
핵심: 이 논문은 high-resolution image 합성에 있어서 transformers의 계산적 한계를 극복하기 위한 새로운 접근 방식을 제시한다.
기존 연구의 문제점:
- Transformers는 long-range dependencies를 모델링하는 데 뛰어나지만, high-resolution image와 같은 long sequences에서는 계산 비용이 매우 커진다. (quadratic complexity)
- CNNs는 local information 처리에 효율적이지만, long-range interactions를 포착하는 데는 한계가 있다.
이 논문의 제안:
- Hybrid Approach: CNNs와 transformers를 결합하여 각 모델의 장점을 활용한다.
- CNNs: Image를 구성하는 요소들(image constituents)에 대한 "vocabulary"를 학습한다. (context-rich representation)
- Transformers: 학습된 vocabulary를 사용하여 image constituents 간의 long-range dependencies를 효율적으로 모델링하고, high-resolution image를 생성한다.
- Conditional Synthesis: Object classes, segmentations와 같은 다양한 조건(spatial & non-spatial information)을 기반으로 image generation을 제어할 수 있다.
주요 성과:
- Transformers를 이용한 megapixel image의 semantically-guided synthesis에 대한 최초의 결과 제시.
- Class-conditional ImageNet에서 autoregressive models 중 state-of-the-art 달성.
Significance:
- High-resolution image generation 분야에서 transformers의 활용 가능성을 확장.
- CNN과 transformer의 synergistic approach를 통해 image synthesis의 성능 향상.
- 다양한 conditional inputs을 활용한 image generation의 유연성 제공.
쉬운 설명 :
이 논문은 고해상도 이미지를 생성하는 데 어려움을 겪는 기존 AI 모델들의 문제점을 해결하려고 했어. Transformers는 이미지의 전체적인 맥락(long-range interactions)을 잘 파악하지만, 고해상도 이미지처럼 데이터가 많아지면 처리 속도가 너무 느려져. 반면 CNNs는 이미지의 작은 부분(local interactions)을 빠르게 처리하지만, 전체적인 그림을 보는 능력은 부족해.
그래서 이 논문에서는 두 모델의 장점을 합쳤어! 먼저 CNN을 사용해서 이미지를 구성하는 작은 조각들(예: 사람의 눈, 코, 입, 배경의 나무, 건물 등)에 대한 "단어장(vocabulary)"을 만들어. 마치 우리가 문장을 만들 때 단어들을 사용하는 것처럼! 그런 다음, transformer를 사용해서 이 "단어"들을 조합하여 고해상도 이미지를 만드는 거야. 이렇게 하면 transformer가 전체 이미지를 한 번에 처리하는 대신, 단어들을 조합하는 방식으로 훨씬 효율적으로 이미지를 생성할 수 있어.
게다가, 이 논문에서는 "사람 이미지를 만들어줘" 또는 "밤 풍경 이미지를 만들어줘"와 같이 원하는 이미지를 "조건(conditional inputs)"으로 지정할 수 있어. 마치 그림을 그릴 때 화가에게 "붉은 노을이 지는 해변 풍경을 그려줘"라고 요청하는 것과 비슷하지.
결론적으로, 이 논문은 고해상도 이미지를 더 빠르고, 더 잘, 그리고 더 다양하게 만들 수 있는 새로운 방법을 제시한 거야!
1. Introduction
Transformers는 부상하고 있다 — 이제 transformers는 language tasks를 위한 de-facto standard architecture이며, audio 및 vision과 같은 다른 영역에서도 점점 더 많이 채택되고 있다. 주류 vision architecture인 convolutional neural networks (CNNs)와 대조적으로, transformer architecture는 interactions의 locality에 대한 내장된 inductive prior를 포함하지 않으므로 입력을받아 자유롭게 복잡한 관계를 학습할 수 있다. 그러나 이러한 일반성은 또한 모든 관계를 학습해야 함을 의미하는 반면, CNNs는 이미지 내의 강력한 local correlations에 대한 사전 지식을 활용하도록 설계되었다. 따라서 transformers의 향상된 표현력은 모든 pairwise interactions이 고려되기 때문에 quadratic하게 증가하는 계산 비용이 발생한다. 결과적으로 state-of-the-art transformer models의 에너지 및 시간 요구 사항은 수백만 픽셀의 high-resolution images로 확장하는 데 근본적인 문제를 제기한다.
Transformers가 convolutional structures를 학습하는 경향이 있다는 관찰은 다음과 같은 질문을 제기한다: vision model을 training 할 때마다 이미지의 local structure와 규칙성에 대해 알고 있는 모든 것을 처음부터 다시 학습해야 하는가, 아니면 transformers의 유연성을 유지하면서 inductive image biases를 효율적으로 encoding 할 수 있을까? 우리는 low-level image structure는 local connectivity, 즉 convolutional architecture에 의해 잘 설명되는 반면, 이러한 structural assumption은 더 높은 semantic levels에서는 효과적이지 않다고 가정한다. 더욱이, CNNs는 강력한 locality bias를 나타낼 뿐만 아니라 모든 위치에서 공유 가중치를 사용하여 spatial invariance에 대한 bias를 나타낸다. 이는 입력에 대한 보다 holistic understanding이 필요한 경우 효과적이지 않다.
효과적이고 표현력이 뛰어난 model을 얻기 위한 우리의 핵심 통찰력은 convolutional 및 transformer architecture를 함께 사용하면 우리 visual world의 compositional nature를 모델링할 수 있다는 것이다: 우리는 convolutional approach를 사용하여 context-rich visual parts의 codebook을 효율적으로 학습하고, 그 후, global compositions의 model을 학습한다. 이러한 compositions 내의 long-range interactions는 구성 visual parts에 대한 distributions를 모델링하기 위해 표현력이 뛰어난 transformer architecture가 필요하다. 또한, 우리는 adversarial approach를 활용하여 local parts의 dictionary가 perceptually important local structure를 포착하여 transformer architecture로 low-level statistics를 모델링할 필요성을 완화한다. Transformers가 long-range relations를 모델링하는 고유한 강점에 집중할 수 있도록 함으로써 Fig. 1에서처럼 high-resolution images를 생성할 수 있게 하는데, 이는 이전에는 불가능했던 위업이다.
우리의 공식은 원하는 object classes 또는 spatial layouts에 관한 conditioning information을 통해 생성된 이미지를 제어할 수 있다. 마지막으로, 실험을 통해 우리의 approach가 convolutional architectures를 기반으로 하는 이전의 codebook-based state-of-the-art approaches를 능가함으로써 transformers의 장점을 유지함을 입증한다.
1. Introduction 정리 노트 (AI 연구자 대상)
배경:
- Transformers는 NLP 분야에서 널리 쓰이고 vision 분야에서도 점차 활용 범위가 넓어지고 있다.
- Transformers는 CNN과 달리 locality에 대한 inductive bias가 없어 long-range interactions를 학습하는 데 유리하지만, 계산 비용이 크다(quadratic complexity).
- High-resolution images 처리에는 transformers의 계산 비용 문제가 더욱 두드러진다.
문제 제기:
- Vision tasks에서 transformers가 CNN과 유사한 convolutional structures를 학습하는 경향이 관찰된다.
- 이는 image의 local structure에 대한 prior knowledge (CNN의 강점)를 효율적으로 활용하지 못하고 있음을 시사한다.
- CNN은 local information 처리에 강하지만, spatial invariance bias 때문에 holistic understanding에는 한계가 있다.
핵심 아이디어 (Key Insight):
- Compositional Nature of Vision: Convolutional and transformer architectures를 결합하여 visual world의 구성적 특성을 모델링한다.
- CNN: Context-rich visual parts의 codebook 학습 (local structure).
- Transformer: Codebook 내 visual parts 간의 long-range interactions 모델링 (global composition).
- Adversarial Training: Local parts dictionary가 perceptually important local structure를 포착하도록 유도하여, transformer가 low-level statistics 모델링에 낭비되는 것을 방지한다.
제안하는 방법의 특징:
- Transformer가 long-range relations 모델링에 집중하도록 하여 high-resolution image generation을 가능하게 한다.
- Conditioning information (object classes, spatial layouts)을 통해 image generation을 제어한다.
- Convolutional architectures 기반의 기존 codebook-based approaches보다 우수한 성능을 보인다.
쉬운 설명 :
이 논문은 고해상도 이미지 생성에 있어서 기존 AI 모델들의 문제점을 해결하고, 더 나은 성능을 달성하기 위한 새로운 방법을 제시하고 있어.
Transformers는 이미지 전체의 연관성을 파악하는 데는 뛰어나지만, 고해상도 이미지처럼 처리해야 할 데이터가 많아지면 속도가 매우 느려지는 단점이 있었어. 반면 CNN은 이미지의 작은 영역들을 빠르게 처리하는 데는 강하지만, 이미지 전체를 이해하는 능력은 부족했지.
그래서 이 논문에서는 두 모델의 장점을 합쳐서 "보는 세상(visual world)"이 마치 작은 조각들이 모여서 큰 그림을 이루는 것처럼 구성되어 있다는 점에 착안했어.
- CNN 역할: 먼저 CNN을 사용해서 이미지를 구성하는 작은 조각들(예: 눈, 코, 입, 나무, 건물 등)에 대한 "단어장(codebook)"을 만들어.
- Transformer 역할: 그런 다음 Transformer를 사용해서 이 "단어"들을 어떻게 조합해야 멋진 고해상도 이미지가 되는지를 학습하는 거지.
여기서 중요한 점은, "단어장"이 정말 중요한 정보들만 담고 있도록 adversarial training이라는 기법을 사용해서, transformer가 불필요한 정보(low-level statistics)까지 처리하느라 힘을 낭비하지 않도록 했다는 거야.
이렇게 하면 transformer는 이미지 전체의 큰 그림(long-range relations)을 그리는 데 집중할 수 있게 되고, 결과적으로 고해상도 이미지를 훨씬 효과적으로 생성할 수 있게 돼.
마지막으로, "고양이 이미지를 만들어줘"라든지, "왼쪽 상단에 해가 있는 풍경을 그려줘"와 같이 조건을 주어서 원하는 이미지를 만들 수도 있어!
2. Related Work
The Transformer Family
Transformer architecture의 정의적 특징은 attention을 통해서만 입력 간의 상호 작용을 모델링한다는 것이다. 이는 입력의 상대적 위치에 관계없이 입력 간의 상호 작용을 충실하게 처리할 수 있게 한다. 원래 language tasks에 적용되었을 때, transformer에 대한 입력은 tokens로 주어졌지만, audio 또는 images에서 얻은 것과 같은 다른 signals도 사용할 수 있다. 그러면 transformer의 각 layer는 서로 다른 위치의 입력 간의 상호 작용을 허용하는 attention mechanism과 모든 위치에 독립적으로 적용되는 position-wise fully connected network로 구성된다.
더 구체적으로, (self-)attention mechanism은 세 개의 position-wise linear layers를 가진 intermediate representation을 query Q ∈ R^(N×dk), key K ∈ R^(N×dk) 및 value V ∈ R^(N×dv)의 세 가지 representations로 mapping하여 출력을 다음과 같이 계산하는 것으로 설명할 수 있다.
Attn(Q, K, V) = softmax(QK^t / √dk)V ∈ R^(N×dv) (1)
Autoregressive maximum-likelihood learning을 수행할 때, QK^t의 non-causal entries, 즉 대각선 아래의 모든 entries는 -∞로 설정되고 transformer의 final output은 다음 sequence element의 logits를 예측하기 위한 linear, point-wise transformation 후에 제공된다. Attention mechanism은 sequence에 있는 모든 elements 쌍 간의 inner product 계산에 의존하기 때문에 계산 복잡도는 sequence length에 따라 quadratic하게 증가한다. 모든 elements 간의 상호 작용을 고려하는 기능은 transformers가 long-range interactions를 효율적으로 학습하는 이유이지만, 특히 sequence length 자체가 해상도에 따라 quadratic하게 증가하는 images에서는 transformers가 빠르게 불가능해지는 이유이기도 하다.
Transformers를 longer sequences에 대해 실현 가능하게 만들기 위해 계산 요구 사항을 줄이기 위한 다양한 접근 방식이 제안되었다. [55]와 [76]은 attention modules의 receptive fields를 제한하여 표현력을 감소시키고, 특히 high-resolution images의 경우 픽셀의 독립성에 대한 가정을 도입한다. [12]와 [26]은 full receptive field를 유지하지만 length n의 sequence에 대한 비용을 n^2에서 n√n으로만 줄일 수 있으므로 64 픽셀 이상의 해상도는 여전히 엄청나게 비싸다.
Convolutional Approaches
이미지의 2차원 구조는 local interactions이 특히 중요하다는 것을 시사한다. CNNs는 convolutional kernel의 kernel size에 의해 정의된 local neighborhood에 대한 입력 변수 간의 interactions을 제한하여 이 구조를 활용한다. 따라서 kernel을 적용하면 전체 sequence length(이미지의 경우 픽셀 수)에 linear하게, kernel size에 quadratic하게 확장되는 비용이 발생하며, 최신 CNN architectures에서는 종종 3x3과 같은 작은 상수로 고정된다. 따라서 local interactions에 대한 이러한 inductive bias는 효율적인 계산으로 이어지지만, 다양한 synthesis tasks를 처리하기 위해 CNNs에 도입된 광범위한 특수 layers는 이 bias가 너무 제한적이라는 것을 시사한다.
Convolutional architectures는 images의 autoregressive modeling에 사용되었지만, low-resolution images의 경우 이전 연구에서는 transformers가 convolutional counterparts를 지속적으로 능가한다는 것을 입증했다. 우리의 approach를 사용하면 transformers로 high-resolution images를 효율적으로 모델링하면서 state-of-the-art convolutional approaches에 비해 장점을 유지할 수 있다.
Two-Stage Approaches
우리와 가장 유사한 것은 먼저 데이터의 encoding을 학습한 다음 두 번째 단계에서 이 encoding의 probabilistic model을 학습하는 two-stage approaches이다. [13]은 Variational Autoencoder (VAE)로 data representation을 먼저 학습한 다음 VAE로 distribution을 다시 학습하는 것의 장점에 대한 이론적 및 경험적 증거를 모두 보여주었다. [18, 78]은 unconditional normalizing flow를 두 번째 단계에 사용할 때, [63, 64]는 conditional normalizing flow를 사용할 때 유사한 이득을 보여준다. Generative Adversarial Networks (GANs)의 training 효율성을 향상시키기 위해 [43]은 autoencoder의 representations에 대해 GAN을 학습하고, [21]은 learned generator를 사용하여 images로 decoded 되는 low-resolution wavelet coefficients에 대해 학습한다.
[72]는 images의 discrete representations을 학습하는 approach인 Vector Quantised Variational Autoencoder (VQVAE)를 제시하고 convolutional architecture를 사용하여 distribution을 autoregressively하게 모델링한다. [61]은 이 approach를 확장하여 learned representations의 hierarchy를 사용한다. 그러나 이러한 methods는 여전히 convolutional density estimation에 의존하므로 high-resolution images에서 long-range interactions를 포착하기 어렵다. [8]은 downstream tasks를 위한 image representations을 학습하기 위한 generative pretraining의 적합성을 평가하기 위해 transformers를 사용하여 images를 autoregressively하게 모델링한다. 32x32 픽셀의 입력 해상도는 여전히 계산 비용이 많이 들기 때문에 VQVAE를 사용하여 최대 192x192 해상도의 images를 encode한다. Learned discrete representation을 픽셀에 대해 가능한 한 spatially invariant하게 유지하기 위해 receptive field가 작은 shallow VQVAE가 사용된다. 대조적으로, 우리는 learned representation에서 가능한 한 많은 context를 포착하는 강력한 first stage가 transformers를 사용한 효율적인 high-resolution image synthesis를 가능하게 하는 데 중요하다는 것을 보여준다.
2. Related Work 정리 노트 (AI 연구자 대상)
이 섹션에서는 기존 연구들을 세 가지 범주로 나누어 논의하고, 본 논문의 차별점을 강조한다.
1. The Transformer Family:
- Transformer의 특징:
- Attention mechanism을 통해 입력 간의 long-range interactions를 모델링한다.
- Sequence length에 따라 계산 복잡도가 quadratic하게 증가하여 high-resolution image 처리에 불리하다.
- 기존의 해결 시도와 한계:
- Receptive field 제한 ([55], [76]): Expressivity 감소, pixel independence 가정.
- Complexity 감소 ([12], [26]): 여전히 high-resolution에서는 비효율적 (n^2 -> n√n).
2. Convolutional Approaches:
- CNN의 특징:
- Local connectivity (kernel size)에 대한 inductive bias로 효율적인 계산이 가능하다.
- 다양한 specialized layers가 필요하며, 이는 bias가 너무 제한적일 수 있음을 시사한다.
- Autoregressive image modeling:
- CNN 기반 approaches ([70], [71], [10])가 존재하지만, low-resolution에서는 transformers가 더 우수 ([55], [12], [26]).
3. Two-Stage Approaches:
- Two-stage methods의 일반적인 구조:
- Stage 1: Data encoding 학습 (e.g., VAE, autoencoder).
- Stage 2: Encoding의 probabilistic model 학습 (e.g., VAE, normalizing flow, GAN).
- VQVAE ([72]) and its extensions ([61]):
- Discrete representations of images 학습.
- Convolutional architecture를 사용한 autoregressive modeling.
- 한계: High-resolution images에서 long-range interactions 포착에 어려움.
- Image Transformer ([8]): * images를 Autoregressively 하게 transformers를 사용해서 모델링한다.
- 32x32 pixels의 입력 해상도를 사용한다 (computational expensive).
- 최대 192x192 해상도 images를 encode 하기 위해 VQVAE를 사용한다.
- Shallow VQVAE with small receptive field를 사용하여 spatially invariant representation 학습.
- 32x32 pixels의 입력 해상도를 사용한다 (computational expensive).
이 논문의 차별점 (vs. 기존 연구):
- High-resolution image synthesis에 초점: Transformer의 계산 복잡도 문제를 해결하고, high-resolution에서도 효과적인 모델링을 목표로 한다.
- CNN과 Transformer의 강점 결합:
- CNN으로 context-rich visual parts의 codebook 학습.
- Transformer로 codebook elements 간의 long-range interactions 모델링.
- Powerful first stage (VQVAE): Shallow VQVAE (Image Transformer)와 달리, context를 최대한 포착하는 강력한 first stage를 사용하여 transformer가 high-resolution image synthesis를 효율적으로 수행하도록 지원.
쉬운 설명 :
이 섹션에서는 "이 논문이 왜 특별한가?"를 설명하기 위해 기존의 연구들을 훑어보고 있어. 크게 세 가지 종류의 연구들을 살펴보고 있지.
- Transformer Family: Transformer는 이미지 전체의 연관성을 잘 파악하지만, 고해상도 이미지를 처리하려면 속도가 너무 느려진다는 문제가 있었어. 이 문제를 해결하려는 시도들이 있었지만, 여전히 고해상도에서는 만족스럽지 못했지.
- Convolutional Approaches: CNN은 이미지의 작은 부분을 빠르게 처리하는 데는 강하지만, 전체적인 그림을 보는 능력은 부족했어. 그래서 이미지를 생성하는 데 CNN을 사용하는 연구들이 있었지만, 저해상도 이미지에서는 Transformer보다 성능이 떨어졌어.
- Two-Stage Approaches: 이 연구들은 이미지를 두 단계로 나누어 처리하는 방식이야. 첫 번째 단계에서는 이미지를 "압축"하고 (예: VAE), 두 번째 단계에서는 압축된 정보를 바탕으로 이미지를 다시 생성하거나, 이미지의 특징을 학습하는 거지(예: GAN). VQVAE라는 기술을 사용해서 이미지를 "단어"처럼 표현하고, CNN으로 이 "단어"들의 순서를 학습하는 연구도 있었어. 하지만, 이 방법들은 여전히 고해상도 이미지에서 전체적인 연관성을 파악하는 데 어려움이 있었지.
그래서 이 논문은?
- 고해상도 이미지 생성에 집중! 기존 연구들의 한계를 극복하고, 고해상도에서도 잘 작동하는 모델을 만들려고 했어.
- CNN과 Transformer의 장점을 합쳤다! CNN으로 이미지의 "단어장"을 만들고, Transformer로 이 "단어"들을 조합해서 고해상도 이미지를 만드는 거지.
- 강력한 "단어장" 만들기! 기존 연구(Image Transformer)에서는 간단한 "단어장"을 사용했지만, 이 논문에서는 더 풍부한 정보를 담은 "단어장"을 만들어서 Transformer가 더 쉽게 이미지를 생성할 수 있도록 했어.
결론적으로, 이 논문은 기존 연구들의 장점을 취하고 단점을 보완해서 고해상도 이미지 생성 분야에 새로운 돌파구를 제시하고 있다고 할 수 있지!
3. Approach
우리의 목표는 transformer models의 매우 유망한 학습 능력을 활용하고 megapixel 범위까지 high-resolution image synthesis에 도입하는 것이다. Transformers를 image generation에 적용한 이전 연구는 최대 64 × 64 픽셀 크기의 이미지에 대해 유망한 결과를 보여주었지만, sequence length에서 quadratic하게 증가하는 비용으로 인해 더 높은 해상도로 간단히 확장할 수 없다.
High-resolution image synthesis는 이미지의 global composition을 이해하는 model이 필요하며, 이를 통해 locally realistic할 뿐만 아니라 globally consistent patterns를 생성할 수 있다. 따라서 이미지를 픽셀로 표현하는 대신 codebook에서 perceptually rich image constituents의 composition으로 표현한다. Sec. 3.1에 설명된 대로 효과적인 code를 학습함으로써 compositions의 description length를 크게 줄일 수 있으며, 이를 통해 Sec. 3.2에 설명된 대로 transformer architecture를 사용하여 이미지 내에서 global interrelations를 효율적으로 모델링할 수 있다. Fig. 2에 요약된 이 approach는 unconditional 및 conditional setting 모두에서 realistic하고 consistent high resolution images를 생성할 수 있다.
3.1. Learning an Effective Codebook of Image Constituents for Use in Transformers
Image synthesis를 위해 표현력이 뛰어난 transformer architecture를 활용하려면 이미지의 constituents를 sequence 형태로 표현해야 한다. 개별 픽셀을 기반으로 하는 대신 복잡성으로 인해 학습된 representations의 discrete codebook을 사용하는 approach가 필요하므로 모든 이미지 x ∈ R^(H×W×3)는 codebook entries zq ∈ R^(h×w×nz)의 spatial collection으로 표현될 수 있다. 여기서 nz는 codes의 dimensionality이다. 동등한 representation은 학습된 codebook의 해당 entries를 지정하는 h · w 인덱스의 sequence이다. 이러한 discrete spatial codebook을 효과적으로 학습하기 위해 CNNs의 inductive biases를 직접 통합하고 neural discrete representation learning의 ideas를 통합할 것을 제안한다.
먼저, encoder E와 decoder G로 구성된 convolutional model을 학습하여 함께 학습된 discrete codebook Z = {zk}^K_(k=1) ⊂ R^(nz)의 codes로 이미지를 표현하도록 학습한다(개요는 Fig. 2 참조). 더 정확하게는 주어진 이미지 x를 xˆ = G(zq)로 근사한다.
우리는 encoding zˆ = E(x) ∈ R^(h×w×nz)와 각 spatial code zˆij ∈ R^(nz)를 가장 가까운 codebook entry zk에 대한 후속 element-wise quantization q(·)를 사용하여 zq를 얻는다:
zq = q(ˆz) := [argmin_(zk∈Z) kˆzij − zkk] ∈ R^(h×w×nz) (2)
그러면 reconstruction xˆ ≈ x는 다음과 같이 주어진다.
xˆ = G(zq) = G (q(E(x))) (3)
Eq. (3)에서 미분 불가능한 quantization operation을 통한 역전파는 decoder에서 encoder로 gradients를 간단히 복사하는 straight-through gradient estimator를 통해 달성되므로, model과 codebook은 loss function을 통해 end-to-end로 training 될 수 있다.
LVQ(E, G, Z) = kx − xˆk^2 + ksg[E(x)] − zqk^2 + ksg[zq] − E(x)k^2 (4)
여기서 Lrec = kx−xˆk^2는 reconstruction loss이고, sg[·]는 stop-gradient operation을 나타내며, ksg[zq]−E(x)k^2는 소위 "commitment loss"이다.
Learning a Perceptually Rich Codebook
Transformers를 사용하여 이미지를 latent image constituents에 대한 distribution으로 표현하려면 compression 한계를 극복하고 풍부한 codebook을 학습해야 한다. 이를 위해 원래 VQVAE의 변형인 VQGAN을 제안하고 discriminator와 perceptual loss를 사용하여 증가된 compression rate에서 우수한 perceptual quality를 유지한다. 이는 pixel-based 및 transformer-based autoregressive models를 shallow quantization model 위에만 적용한 이전 연구와 대조적이다. 더 구체적으로, Lrec에 대해 [72]에서 사용된 L2 loss를 perceptual loss로 바꾸고 real 및 reconstructed images를 구별하는 것을 목표로 하는 patch-based discriminator D를 사용하여 adversarial training procedure를 도입한다.
LGAN({E, G, Z}, D) = [log D(x) + log(1 − D(ˆx))] (5)
최적의 compression model Q∗ = {E∗, G∗, Z∗}를 찾기 위한 완전한 objective는 다음과 같다.
Q∗ = arg min_(E,G,Z) max_D Ex∼p(x) [LVQ(E, G, Z) + λLGAN({E, G, Z}, D)] (6)
여기서 적응 가중치 λ는 다음에 따라 계산한다.
λ = ∇GL[Lrec] / (∇GL[LGAN] + δ) (7)
여기서 Lrec는 perceptual reconstruction loss이고, ∇GL[·]는 decoder의 마지막 layer L에 대한 입력의 gradient를 나타내며 δ = 10^-6은 numerical stability를 위해 사용된다.
모든 곳에서 context를 집계하기 위해 가장 낮은 해상도에 단일 attention layer를 적용한다. 이 training procedure는 latent code를 unrolling할 때 sequence length를 크게 줄여 강력한 transformer models의 적용을 가능하게 한다.
3.2. Learning the Composition of Images with Transformers
Latent Transformers E와 G를 사용할 수 있으므로 이제 codebook-indices of their encodings 측면에서 이미지를 나타낼 수 있다. 더 정확하게는, 이미지 x의 quantized encoding은 zq = q(E(x)) ∈ R^(h×w×nz)로 주어지며 codebook Z에서 각 code를 index로 대체하여 얻은 codebook의 인덱스 sequence s ∈ {0, . . . , |Z|−1}^(h×w)와 동일하다.
sij = k such that (zq)ij = zk. (8)
Sequence s의 인덱스를 해당 codebook entries에 다시 mapping하면 zq = [zsij]가 쉽게 복구되고 이미지 xˆ = G(zq)로 decoded 된다.
따라서 s에서 인덱스의 일부 순서를 선택한 후 image-generation은 autoregressive next-index prediction으로 공식화될 수 있다: 주어진 인덱스 s<i에 대해 transformer는 가능한 다음 인덱스의 distribution, 즉 p(si|s<i)를 예측하여 전체 representation의 likelihood를 p(s) = Πi p(si|s<i)로 계산하도록 학습한다. 이를 통해 data representations의 log-likelihood를 직접 최대화할 수 있다.
LTransformer = Ex∼p(x) [− log p(s)] (9)
Conditioned Synthesis 많은 image synthesis tasks에서 사용자는 example이 합성되어야 하는 추가 정보를 제공하여 generation process를 제어해야 한다. 우리가 c라고 부를 이 정보는 전체 image class를 설명하는 단일 label이거나 다른 이미지 자체일 수도 있다. 그러면 task는 이 정보 c가 주어진 sequence의 likelihood를 학습하는 것이다:
p(s|c) = Πi p(si|s<i, c). (10)
Conditioning information c가 spatial extent를 갖는 경우, 먼저 다른 VQGAN을 학습하여 새로 얻은 codebook Zc를 사용하여 인덱스 기반 representation r ∈ {0, . . . , |Zc|−1}^(hc×wc)를 다시 얻는다. 그런 다음 transformer의 autoregressive structure로 인해 r을 s에 간단히 prepend하고 negative log-likelihood 계산을 entries p(si|s<i, r)로 제한할 수 있다. 이 "decoder-only" 전략은 text-summarization tasks에도 성공적으로 사용되었다.
Generating High-Resolution Images Transformer의 attention mechanism은 입력 s의 sequence length h · w에 제한을 둔다. VQGAN의 downsampling blocks m의 수를 조정하여 H × W 크기의 이미지를 h = H/2^m × w = W/2^m으로 줄일 수 있지만, 고려되는 dataset에 따라 달라지는 m의 임계값을 초과하면 reconstruction quality가 저하되는 것을 관찰한다. 따라서 megapixel regime에서 이미지를 생성하려면 patch-wise로 작업하고 이미지를 crop하여 training 중에 s의 길이를 최대한 실현 가능한 크기로 제한해야 한다. 그런 다음 이미지를 sampling하기 위해 Fig. 3에 설명된 대로 sliding-window 방식으로 transformer를 사용한다. 우리의 VQGAN은 dataset의 statistics가 대략 spatially invariant하거나 spatial conditioning information을 사용할 수 있는 한 사용 가능한 context가 여전히 이미지를 충실하게 모델링하기에 충분하도록 보장한다. 실제로 이것은 제한적인 요구 사항이 아니다. 위반되는 경우, 즉 aligned data에 대한 unconditional image synthesis의 경우 [42]와 유사하게 image coordinates에 대해 간단히 condition 할 수 있기 때문이다.
3. Approach 정리 노트 (AI 연구자 대상)
목표: Transformers를 high-resolution image synthesis (megapixel range)에 적용.
핵심 아이디어:
- 이미지를 pixels 대신 perceptually rich image constituents의 composition으로 표현.
- Two-stage approach:
- VQGAN (Sec. 3.1): CNN 기반 encoder-decoder 구조를 사용하여 image constituents에 대한 effective codebook 학습.
- 개선점 (vs. VQVAE): Perceptual loss + adversarial training (patch-based discriminator)을 통해 perceptual quality 향상 및 compression rate 증가.
- Lowest resolution에서 single attention layer 적용하여 context aggregation.
- Latent Transformer (Sec. 3.2): VQGAN으로 얻은 discrete codebook indices를 sequence로 변환하여 transformer로 global interrelations 모델링 (autoregressive next-index prediction).
- VQGAN (Sec. 3.1): CNN 기반 encoder-decoder 구조를 사용하여 image constituents에 대한 effective codebook 학습.
VQGAN (3.1):
- Encoder (E): Image x → Latent encoding zˆ
- Quantization (q): zˆ → Closest codebook entry zq
- Decoder (G): zq → Reconstructed image xˆ
- Loss function:
- LVQ(E, G, Z) = Reconstruction loss + Commitment loss
- LGAN({E, G, Z}, D) = Adversarial loss (real vs. reconstructed)
- Total loss = LVQ + λ * LGAN (λ: adaptive weight)
Latent Transformer (3.2):
- Quantized encoding zq를 codebook indices sequence s로 변환.
- Autoregressive modeling: p(s) = Πi p(si | s<i)
- Loss function: LTransformer = -log p(s) (maximum likelihood)
- Conditioned Synthesis:
- Conditioning information c (e.g., class label, another image)를 활용.
- Spatial extent를 갖는 경우, another VQGAN을 사용하여 c를 index-based representation r로 변환.
- r을 s에 prepend하여 conditioned likelihood p(s|c) 학습.
- Generating High-Resolution Images:
- Attention mechanism의 sequence length limitation 극복을 위해 patch-wise training.
- Sliding-window inference를 통해 high-resolution image 생성.
- VQGAN이 spatially invariant statistics or spatial conditioning information을 확보하여 context sufficiency 보장.
핵심 차별점:
- Perceptually rich codebook 학습을 위한 VQGAN (perceptual loss + adversarial training).
- Patch-wise training & sliding-window inference를 통한 high-resolution image generation.
- Conditioning information 활용의 유연성.
쉬운 설명 :
이 섹션에서는 이 논문의 핵심 아이디어와 방법을 자세하게 설명하고 있어. 전체적인 목표는 Transformer를 사용해서 고해상도 이미지를 만드는 건데, Transformer의 계산량 문제를 해결하기 위해 두 단계로 접근하고 있어.
1단계: VQGAN으로 "단어장" 만들기 (3.1)
- 마치 우리가 문장을 만들 때 단어를 사용하는 것처럼, 이미지를 구성하는 작은 조각들(눈, 코, 입, 나무, 건물 등)에 대한 "단어장(codebook)"을 만드는 단계야.
- 이 "단어장"은 그냥 만드는 게 아니라, CNN 기반의 VQGAN이라는 특별한 모델을 사용해서 만들어.
- VQGAN은 이미지를 "단어"로 압축했다가 다시 복원하는 방식으로 학습하는데, 이때 "단어"가 최대한 이미지의 중요한 정보들을 잘 담고 있도록 perceptual loss와 adversarial training이라는 기법을 사용해. (Perceptual loss는 사람이 보기에 자연스러운 이미지를 만들도록 도와주고, adversarial training은 진짜 이미지와 가짜 이미지를 구별하는 "감별사(discriminator)"를 속이는 방식으로 학습해서 더 선명한 이미지를 만들 수 있게 해줘.)
2단계: Latent Transformer로 "문장" 만들기 (3.2)
- VQGAN으로 만든 "단어장"을 이용해서 이미지를 "단어"들의 sequence(연속된 나열)로 표현해. 마치 문장이 단어들의 sequence인 것처럼!
- Transformer는 이 "단어"들의 sequence를 받아서 다음에 어떤 "단어"가 올지를 예측하는 방식으로 이미지를 생성해. (Autoregressive modeling)
- "고양이 이미지를 만들어줘"와 같은 조건을 주고 싶을 때는, 이 조건을 또 다른 VQGAN을 사용해서 "단어"로 표현하고, 원래 이미지의 "단어" sequence 앞에 붙여줘. 그러면 Transformer는 이 조건을 고려해서 이미지를 생성하게 돼.
- 고해상도 이미지를 만들 때는 Transformer가 한 번에 처리할 수 있는 "단어"의 개수가 제한되어 있기 때문에, 이미지를 작은 조각(patch)들로 나누어서 학습하고, 생성할 때는 창문(sliding-window)을 움직이듯이 조금씩 이미지를 만들어나가.
핵심 포인트!
- 이 논문은 VQGAN을 개선해서(perceptual loss, adversarial training) 더 좋은 "단어장"을 만들었다는 점.
- 이미지를 작은 조각으로 나누어 학습하고, 창문을 움직이듯이 생성하는 방식으로 고해상도 이미지를 만들 수 있게 했다는 점.
- 다양한 조건을 원하는 이미지를 만들 수 있다는 점이 기존 연구들과의 차별점이야!
1. 이미지 준비
2. 이미지를cnn을 통과시켜서 z^를 얻음
3. z^를 코드북에서 유사한 피쳐로 치환
4. zq를 다시 디코더에 넣어서 이미지로 만듬.
5. 이미지의 패치 영역별로 f or r 인지 loss를 주고 지각 loss 를 줌
6. 그래서 업데이트가 진행.
---VQgan학습 종료 후 트랜스 포머 업데이트---(실질적 이미지 생성)
1. Zq까진 동일하게 만들고 Zq를 잘 쪼개서 학습데이터로 사용
2. 트랜스포머는 시퀀스를 입력받아 다음 한 토큰을 생성.
3. 트랜스포머는 전체적인 맥락을 고려해서 다음 패치 생성
