NL-165, CV, Taming transformers for high-resolution image synthesis, CVPR 2021

◼ Comment

  • 이 논문은 transformer을 이미지에서 어떻게 적용하는지 보여주는 것이다. (생성쪽으로)
  • 멀티모달 대화에서 이 논문의 기법을 인용해서 적용했기 때문에 확인했다.
  • 일단 이미지데이터로 CNN 오토인코더를 만드는데
    • 이 때, encoder <-> decoder 사이에 codebook이라는 것을 이용해 quantizing을 한다.
    • 즉 인코더에서 나온 벡터를 퀀타이즈된 벡터로 매핑시키는 것이다.
    • 이는 word-embedding matrix과 같은 방식이다.
    • 예를들면, 1024x512 매트릭스가 있다. (512차원의 벡터가 1024개)
    • 그러면 인코더에서 나온 벡터를 1024개의 벡터와 비교해서 가장 가까운 벡터를 찾는다.
    • 그 벡터로 치환해서 decoder로 들어가는 것이다.
    • 이 1024x512 매트릭스가 codebook이 되는 것이다.
    • 이 코드북은 학습때 같이 학습되는 것이다. 
    • loss 부분에서 encoder 출력과 codebook 출력이 같아지게끔 학습한다. (최대한 quantizing으로 인한 손실을 줄이려고 하는 것인가?)
    • 추가적으로 GAN에서 사용하는 discriminator을 이용하여 학습을 더한다.
  • 이렇게 GAN을 학습하고 나서, transformer decdoer을 학습한다.
    • 이는 encoder의 출력과 매핑되는 코드북 벡터의 index들을 모은다.
    • 이 index을 가지고 transformer decoder을 LM처럼 학습한다.
    • 아마 이렇게 그냥 해도 될거 같은데..
    • high resolution을 위해, attention sliding을 추가한다.
    • 즉 과거의 모든 값을 attention하는 것이 아니라, CNN처럼 주변의 patch에 해당하는 것만 attention 해가면서 다음 index을 생성하는 식이다.
    • 이런식으로 기존의 GAN에서 사용됐던 decoder대신 transformer decoder을 사용하면 더 좋은 성능을 보여주는것 같다.
    • 여기서 궁금한게 그러면 그냥 autoencoder의 decoder 부분을 CNN이아닌 transformer로 교체해서 end-to-end로 학습시킬 수는 없나?
    • 실험부분을 자세히 안봐서.. 이 부분은 일단 패스
  • 추가적으로 conditional information을 넣어서 다양한 테스크를 진행할 수 있고, 성능이 꽤 좋나보다.

0 Abstract

  • 연속적인 데이터에서 long-range interatctions을 학습하는 것을 고안하기 위해, transformers은 다양한 테스크들에 대해 SoTA들 지속적으로 보여준다.
  • CNNs과 비교하여, 그들은 local interactions을 우선시하는 inductive bias가 없다.
  • 이로 인해 표현력이 뛰어나지만 고해상도 이미지와 같은 긴 시퀀스에 대해서는 계산적으로 불가능합니다.
  • 우리는 어떻게 CNNs의 inductive bias의 효과성과 transformers의 표현력을 결합하여 그들을 모델링하고 그래서 high-resolutions images을 합성할지 보여준다.
  •  우리는 
    • (1) 어떻게 CNNS가 이미지 구성 요소의 문맥이 풍부한 어휘를 학습하고,
    • (2) 차례로 transformers를 사용하여 고해상도 이미지 내에서 구성을 효율적으로 모델링합니다.
  • 우리의 접근법은 조건부 합성 테스크에 손쉽게 적용되어서, non-spatial information (object classes와 같은)와 spatial information (segmentations와 같은) 둘다 생성된 이미지를 컨트롤 할 수 있다.
  • 특히, 우리는 transformers를 사용하여 메가픽셀 이미지의 의미적으로 가이드된 합성에 대한 첫 번째 결과를 제시하고 클래스 조건부 ImageNet의 autoregressive 모델 중 최신 기술을 얻습니다.
  • Code and pretrained models can be found at https://git.io/JnyvK.

1. Introduction

  • Transformers은 떠오르고 있다.
    • 그들은 이제 언어 작업을 위한 사실상의 표준 아키텍처[74, 57, 58, 5]이며 오디오[12] 및 시각[8, 16]과 같은 다른 영역에서 점점 더 적응되고 있습니다.
  • 현재 지배적인 vision 구조인 CNN과 대조적으로, transformer 구조는 interactions의 locality의 inductive prior을 포함하지 않으며, 그래서 입력간의 복잡한 관계들을 자유롭게 학습할 수 있다.
  • 그러나, generality는 또한 모든 관계들을 학습해야함을 의미하기도 하지만, 반면에 CNN은 이미지내에 강력한 local correlations에 대한 prior knowledge을 활용하도록 설계되었다.
  • 그래서, transformers의 표현성이 증가는 quadratically 계산 비용이 함께 증가한다.
    • 왜냐하면 모든 pairwise interactions이 고려되기 때문이다.
  • 따라서 최첨단 transformer 모델의 에너지 및 시간 요구 사항은 수백만 픽셀의 고해상도 이미지로 확장하는데 근본적인 문제를 제기합니다.
  • transformers가 convolutional 구조를 학습하는 경향의 관찰은 그래서 다음의 질문들을 제기한다:
    • 우리가 vision 모델을 학습할때마다 우리가 알고있는 local 구조와 image의 규칙성에 대한 모든 것을 처음부터 재학습 해야합니까?
    • 혹은 우리가 transformers의 유연성을 유지하면서 inductive image biases을 효율적을 인코딩할 수 없습니까?
  • 우리는 low-level image 구조가 local connectivity인 즉 convolutional 구조에 의해 잘 설명되었다고 가정한다.
    • 반면에 이러한 구조의 가정은 higher semantic levels에서는 효과적이지 않다고 가정한다.
  • 게다가, CNNs은 strong locality bias을 나타낼뿐만 아니라, 모든 positions에서 shared weights의 사용을 통해 spatial invariance에 대한 bias을 가진다.
  • 이것은 input에 대한 전체적인 이해가 필요할 경우 그들을 비효율적으로 만든다.
  • 효과적이고 표현력좋은 모델을 획득하기 위한 우리의 주요 인사이트는 convolutional과 transformer 구조들을 함께 채택하고, 이는 우리의 visual world의 compositional nature을 모델링할 수 있다.
    • 우리는 convolutional approach을 사용해서 context-rich visual parts의 codebook을 효율적으로 학습하고, 그다음 그들의 global compositions의 모델을 학습한다.
  • 이러한 compositions안에서 long-range interactions은 표현력이 좋은 transformer 구조를 요구하여 그들을 구성한 visual parts에 대한 distributions을 모델링한다.
  • 게다가, 우리는 adversarial approach을 활용해서 local parts의 dictionary가 캡쳐하는 지각적으로 중요한 local 구조를 보장한다.
    • 따라서 transformer 구조로 low-level 통계를 모델링할 필요성을 완화한다.
  • transformers가 장거리 관계를 모델링하는 고유한 강점에 집중할 수 있도록 하면 이전에는 도달할 수 없었던 위업인 그림 1과 같이 고해상도 이미지를 생성할 수 있습니다.
  • 우리의 공식은 원하는 객체 클래스 또는 공간 레이아웃에 관한 컨디셔닝 정보를 통해 생성된 이미지에 대한 제어를 제공합니다.
  • 마지막으로 실험을 통해 우리의 접근 방식이 컨볼루션 아키텍처를 기반으로 하는 이전 코드북 기반 최신 접근 방식을 능가함으로써 변환기의 장점을 유지한다는 것을 보여줍니다.

2. Related Work

  • The Transformer Family 
    • transformer 아키텍처[74]의 정의적인 특징은 attention [2, 36, 52]를 통해서만 입력 간의 상호 작용을 모델링하여 서로에 대한 상대적 위치에 관계없이 입력 간의 상호 작용을 충실하게 처리할 수 있다는 것입니다.
    • 원래 언어 작업에 적용되는 transformer에 대한 입력은 토큰으로 제공되었지만 오디오[41] 또는 이미지[8]에서 얻은 것과 같은 다른 신호를 사용할 수 있습니다.
    • 그런 다음 transformer의 각 레이어는 다른 위치의 입력 간의 상호 작용을 허용하는 어텐션 메커니즘과 모든 위치에 독립적으로 적용되는 위치별로 완전히 연결된 네트워크로 구성됩니다.
    • 보다 구체적으로, (self-) attention 메커니즘은 3개의 위치별 선형 레이어가 있는 중간 표현을 쿼리 Q ∈ R N×dk , key K ∈ R N×dk 및 value V ∈ R N×dv , 출력을 다음과 같이 계산한다.
    • autoregressive maximum-likelihood learning을 수행할 때, QKt의 non-causal entries (즉. diagonal 아래의 모든 엔트리들) 은 -∞로 세팅하고
    • transformer의 최종출력은 linear point-wise transformation 이후에 주어져서 다음 시퀀스의 logits을 예측한다.
    • 주의 메커니즘은 시퀀스의 모든 요소 쌍 간의 inner products에 의존하기 때문에 계산 복잡성은 시퀀스 길이에 따라 2차적으로 증가합니다.
    • 모든 요소 간의 상호 작용을 고려하는 기능은 변환기가 장거리 상호 작용을 효율적으로 학습하는 이유이지만, 특히 시퀀스 길이 자체가 해상도에 따라 2차적으로 확장되는 이미지에서 변환기가 빠르게 실행 불가능해지는 이유이기도 합니다.
    • 더 긴 시퀀스에 대해 가능한 변환기를 만들기 위해 계산 요구 사항을 줄이기 위해 다양한 접근 방식이 제안되었습니다.
    • [55] 및 [76]은 표현력을 감소시키고 특히 고해상도 이미지의 경우 픽셀의 독립성에 대한 가정을 도입하는 attention modules의 receptive fields를 제한합니다.
      • 저번에 생각했듯이, global이 아닌 영역을 정해서 attention하는 기법인가?
    • [12] 및 [26]은 full receptive field를 유지하지만 n^2 에서 n√n까지의 길이 n 시퀀스에 대한 비용을 줄일 수 있으므로 64픽셀을 초과하는 해상도는 여전히 엄청나게 비쌉니다.
      • 이건 다른 방법으로 비용을 줄이는 방법인가 봄
  • Convolutional Approaches 
    • 이미지의 2차원 구조는 local interactions이 특히 중요함을 시사합니다.
    • CNN은 입력 변수 간의 상호 작용을 컨볼루션 커널의 커널 크기로 정의된 로컬 이웃으로 제한하여 이 구조를 이용합니다.
    • 따라서 커널을 적용하면 전체 시퀀스 길이(이미지의 경우 픽셀 수)에 선형적으로 그리고 커널 크기에 2차적으로 확장되는 비용이 발생합니다.
      • 이것은 현대 CNN 아키텍처에서 종종 3×3과 같은 작은 상수로 고정됩니다.
    • 따라서 로컬 상호 작용에 대한 이러한 귀납적 편향은 효율적인 계산으로 이어지지만 다양한 합성 작업[53, 80, 68, 85, 84]을 처리하기 위해 CNN에 도입된 광범위한 특수 계층은 이러한 편향이 종종 너무 제한적임을 시사합니다.
    • 컨볼루션 아키텍처는 이미지의 자동회귀 모델링에 사용되어 왔지만[70, 71, 10] 저해상도 이미지의 경우 이전 작업[55, 12, 26]에서는 transformers가 컨볼루션 대응물보다 지속적으로 성능이 우수함을 보여주었습니다.
    • 우리의 접근 방식을 통해 transformers를 사용하여 고해상도 이미지를 효율적으로 모델링하는 동시에 최첨단 컨볼루션 접근 방식에 비해 이점을 유지할 수 있습니다.
      • 이 논문은 cnn과 transformers을 장점을 섞어 둔 방법이라고 주장
  • Two-Stage Approaches
    • 우리와 가장 가까운 것은 데이터 인코딩을 먼저 학습하고 두 번째 단계에서 이 인코딩의 확률 모델을 배우는 2단계 접근 방식입니다.
    • [13]은 VAE(Variational Autoencoder) [38, 62]로 데이터 표현을 먼저 학습한 다음 VAE로 분포를 다시 학습하는 이점에 대한 이론적 및 경험적 증거를 모두 보여주었습니다.
    • [18, 78]은 두 번째 단계에 unconditional normalizing flow을 사용할 때,  [63, 64]은 conditional normalizing flow을 사용할 때 유사한 이득을 보여줍니다.
    • GAN(Generative Adversarial Networks)의 훈련 효율성을 개선하기 위해 [43]은 자동 인코더 표현에 대한 GAN [20]과 저해상도 웨이블릿 계수에 대해 [21] 학습된 생성기로 이미지로 디코딩됩니다.
    • [72]는 이미지의 이산 표현을 학습하고 컨볼루션 아키텍처를 사용하여 자동 회귀적으로 분포를 모델링하는 접근 방식인 VQVAE(Vector Quantised Variational Autoencoder)를 제시합니다.
    • [61]은 학습된 표현의 계층 구조를 사용하도록 이 접근 방식을 확장합니다.
    • 그러나 이러한 방법은 여전히 ​​컨볼루션 밀도 추정에 의존하므로 고해상도 이미지에서 long-range interactions을 캡처하기 어렵습니다.
    • [8]은 다운스트림 작업에 대한 이미지 표현을 학습하기 위한 생성적 사전 훈련의 적합성을 평가하기 위해 변환기를 사용하여 이미지를 자동 회귀적으로 모델링합니다.
    • 32 × 32 픽셀의 입력 해상도는 여전히 계산 비용이 많이 들기 때문에[8] VQVAE를 사용하여 최대 192 × 192의 해상도로 이미지를 인코딩합니다.
    • 학습된 discrete representation을 가능한 한 픽셀에 대해 공간적으로 불변하도록 유지하기 위해 작은 수용 필드를 갖는 얕은 VQVAE가 사용됩니다.
    • 대조적으로, 우리는 학습된 표현에서 가능한 한 많은 컨텍스트를 캡처하는 강력한 첫 번째 단계가 변환기를 사용하여 효율적인 고해상도 이미지 합성을 가능하게 하는 데 중요하다는 것을 보여줍니다.

3. Approach

  • 우리의 goal은 transformer 모델들의 높은 신뢰할만한 학습 능력을 개발하고 그들을 megapixel 범위까지 high-resolution 이미지 합성에 소개하는 것이다.
  • 이전의 연구 [55, 8]는 transformer을 image generation에 적용해서 64 x 64 사이즈 이미지까지에 대해 신뢰할만한 결과를 입증하지만, sequence length에서 quadratically 하게 증가하는 cost때문에 간단하게 higher resolutions으로 확장할 수 없다.
  • high-resolution image 합성은 모델이 image들의 global composition을 이해하는 것을 요구하고, 이를 통해 globally 일관된 patterns과 locally realistic한 것을 생성을 가능하게한다.
  • 따라서 이미지를 픽셀로 표현하는 대신 코드북에서 지각적으로 풍부한 이미지 구성 요소로 표현합니다.
    • 이 부분이 핵심이다. 
    • 단순히 픽셀단위를 트랜스포머의 입출력으로 쓰는게 아니라, 코드북에 해당하는 무언가로 매칭시켜 이를 활용한다.
  • 효율적인 code를 학습함으로써, 섹션 3.1에서 설명할듯이, 우리는 compositions의 description length을 상당히 줄일 수 있고, 이는 우리가 images 사이의 그들의 global interrelations을 transformer 구조로 (섹션 3.2에서 설명) 효율적으로 모델링하게한다.
  • This approach, summarized in Fig. 2, is able to generate realistic and consistent high-resolution images both in an unconditional and a conditional setting.
    • 우리의 접근 방식은 컨볼루션 VQGAN을 사용하여 컨텍스트가 풍부한 시각적 부분의 코드북을 학습하며, 그 구성은 후속적으로 자동 회귀 변환기 아키텍처로 모델링됩니다. 개별 코드북은 이러한 아키텍처 간의 인터페이스를 제공하며 패치 기반 판별자는 높은 지각 품질을 유지하면서 강력한 압축을 가능하게 합니다. 이 방법은 트랜스포머 기반 고해상도 이미지 합성에 대한 컨볼루션 방식의 효율성을 소개합니다.
    • 이해하기론, 아래 그림인 (VQGAN 파트) E, G는 encoder및 codebook을 잘 학습하여 quantizied vector와 index을 입력으로 만들기 위함
    • 이렇게 만들어진 입력은 위 플로우인 Transformer에 사용된다.
    • 즉 Transformer은 언어 LM처럼 학습하는 방식
    • 이런 Transformer은 아래 플로우의 generator보다 뛰어나다?
    • 그리고 다양한 condition을 부여함으로써 다양하게 사용가능하다?

3.1. Learning an Effective Codebook of Image Constituents for Use in Transformers

  • 이미지 합성을 위해 높은 표현력을 가진 transformer 구조를 활용하기 위해, 우리는 시퀀스 형태로 이미지의 구성을 표현할 필요가 있다.
  • individual pixels을 설계하는 대신에, 복잡성은 학습된 representations의 discrete codebook을 사용하는 접근법을 필요로 한다.
    • 따라서 모든 image x ∈ R^{H×W×3}은 codebook entries zq ∈ R^{h×w×nz}의 spatial collection에 의해 표현되고, 여기서 nz는 codes의 차원을 의미한다.
  • equivalent represntation은 학습된 codebook안에서 각각 entries을 지정하는 일련의 h · w이다.
  • 효과적으로 discrete spatial codebook을 학습하기 위해, 우리는 직접적으로 CNNs의 inductive biases을 결합하고 neural discrete representation learning의 아이디어를 통합할 것을 제안한다.
    • 여기서 코드북이란, 언어에서 token index을 word embedding으로 바꿀때 사용되는 matrix에 해당하는 것
    • 즉 N x n_z에 해당하는 matrix가 codebook이라 보면 된다.
    • 이 코드북은, VQGAN이 학습되면서 같이 학습되는 것
  • 먼저, 우리는 encoder E와 decoder G을 구성하는 convolutional model을 학습하고, 함께 모으고, 그들은 학습된 codes을 가지는 images을 표현하는 것인 codebook $Z =\{ z_k \}^{K}_{k=1} \subset \mathbb{R}^{n_z}$을 학습한다. (그림2에서 오버뷰를 보여준다.)
  • 좀 더 구체적으로, 우리는 image x를 $\hat{x} = G(z_q)$로 근사화한다.
  • 우리는 $z_q$을 인코딩 $\hat{z}=E(x) \in R^{h \times w \times n_z}$와 가장 가까운 codebook entry $z_k$에 대한 각 spatial code $\hat{z}_{i,j} \in \mathbb{R}^{n_z}$의 subsequent element-wise quantization q(·)을 사용하여 얻습니다.
    • 즉 여기서 비교하는 zk는 codebook 들이다. (nz 차원의 벡터들)
    • 이미지를 CNN으로 인코딩하면 3차원의 텐서가 나올 것이다.
    • 이게 h x w x nz 라고 해보자.
    • zi,j는 i행 j열에 해당하는 nz차원의 벡터이다.
    • 즉 각 위치에 해당하는 zi,j와 가장 가까운 codebook zk을 찾는 것이다.
    • 이를 모아둔 것을 zq라고 보는 것이다.
  • The reconstruction xˆ ≈ x is then given by
    • 즉 E(x)는 $\hat{z}$이고, q(E(X))은 $z_q$가 되는 것이다.
    • 이를 Generator을 통해 이미지를 재구성한다는 것!
  • 식3에서 미분불가능한 quantization operation을 통한 Backpropagation은 직선 gradient 추정기에 의해 달성되며, 이는 모델과 코드북이 손실 함수를 통해 종단 간 학습될 수 있도록 디코더에서 인코더 [3]로 그라디언트를 단순히 복사합니다.
    • 즉 식 3이 미분불가능하니까, generator gradient을 encoder쪽에 그냥 복사해서 사용하는 듯?
    • 여기서 첫번째항은 reconstruction loss이고 (이거는 E, G에 해당하는 학습)
    • sg[·]은 stop-gradient operation이고 
    • 마지막항은 "commitment loss"라고 부른다. 
    • 2번째 항은 codebook에 해당하는 학습
    • 3번째 항은 E에 해당하는 학습
    • 즉 2,3번째항은 인코더를 통과한 벡터와 codebook으로 양자화한 벡터사이가 가까워지도록 학습하는 것인데.. 2,3항을 sg로 나눈 이유는 뭐지?

3.1.1 Learning a Perceptually Rich Codebook

  • Transformers을 latent image 구성요소에 대한 분포로써 images을 표현하는것은 우리에게 compression의 한계를 뛰어넘고 rich codebook을 학습해야한다.
  • 이를 위해, 우리는 VQGAN인 variant of the original VQVAE을 제안하고 discriminator와 perceptual loss을 사용하여 증가된 compression rate에대해 좋은 perceptual quality을 유지한다.
  • 이것은 shallow quantization model 위에 pixel-based [71, 61] 및 transformer-based autoregressive models[8]을 적용한 이전 작업과 대조적입니다.
  • 좀 더 구체적으로, 우리는 L_rec을 위해 [72]에서 사용된 L2 loss을 preceptual loss로 교체하고 adversarial training procedure with a patch-based discriminator D을 소개하고, 이는 real와 reconstructed images 사이를 분별하는 것이다.
    • GAN과 유사한 느낌
  • optimal 압축 모델 Q∗ = {E∗ , G∗ , Z ∗}를 찾는 완전한 목적은 다음과 같습니다.
    • 즉 L_VQ는 encoder-decoder와 codebook을 학습하기 위함
    • GAN은 discriminator을 통해 생성된 것이 진짜 유무인지 가리기 위한 모델
  • where we compute the adaptive weight λ according to
    • 여기서 L_rec는 perceptual reconstruction loss [81]이고 ∇G_L[·]는 decoder의 last L layer에 관한 입력의 gradient을 의미한다.
    • δ = 10−6 is used for numerical stability. 
    • 즉 loss을 계산할 때, 마지막 layer에서 gradient의 크기 비율로 lambda을 정한다.
    • 직관적으로는 labmda의 분자가 L_VQ에 대한것이어야 크기 분포를 맞추는 것
    • L_VQ = L_rec + alpha니까 즉, L_VQ에 좀 더 가중치를 주는 느낌 (lambda 가중치값이 1보다 작은게 아니고 loss 크기가 L_VQ가 더 크게?)
  • 모든 곳에서 컨텍스트를 집계하기 위해 가장 낮은 해상도에 single attention layer를 적용합니다.
  • 이 훈련 절차는 latent code를 펼칠 때 시퀀스 길이를 크게 줄여 강력한 transformer 모델을 적용할 수 있습니다.

3.2. Learning the Composition of Images with Transformers 

  • Latent Transformers 
    • E와 G가 사용가능함으로, 우리는 그들의 encodings의 codebook-indices 측면에서 images을 표현할 수 있다.
    • 좀 더 구체적으로, image x의 qunatized encoding은 zq = q(E(x)) ∈ R^{h×w×nz}으로 주어지고, 코드북 indices는 시퀀스 s ∈ {0, . . . , |Z|−1}^{h×w}와 동일하다, 이는 각 코드를 코드북 Z의 인덱스로 대체하여 얻습니다.
      • encoding 벡터가 codebook 벡터와 일치하는 indice(=k) codebook이 입력이 되는 형태
    • 시퀀스 s의 인덱스를 해당 코드북 항목에 다시 매핑하면 zq =zsij가 쉽게 복구되고 이미지 xˆ = G(zq)로 디코딩됩니다.
    • 따라서 s에서 인덱스의 일부 순서를 선택한 후 이미지 생성은 자기회귀 다음 인덱스 예측으로 공식화될 수 있습니다.
    • 주어진 인덱스 s<i, 변환기는 가능한 다음 인덱스의 분포, 즉 $p(s) = \prod_i p(s_i|s<i)$로 전체 표현의 가능성을 계산하기 위해 p(si |s<i)를 예측하는 방법을 배웁니다.
    • 이를 통해 데이터 표현의 로그 가능성을 직접 최대화할 수 있습니다.
  • Conditioned Synthesis 
    • 많은 이미지 합성 작업에서 사용자는 예제를 합성할 추가 정보를 제공하여 생성 프로세스에 대한 제어를 요구합니다.
    • c라고 하는 이 정보는 전체 이미지 클래스 또는 다른 이미지 자체를 설명하는 단일 레이블이 될 수 있습니다.
    • 그런 다음 작업은 이 정보 c가 주어지면 시퀀스의 가능성을 학습하는 것입니다. 
      • 즉, 일부 컨디션 정보를 넣어서 Transformer을 학습할 수 있다
      • 이 정보는 class가 될지, 다른 이미지 자체가 될지 다양하게 활용 가능
    • 컨디셔닝 정보 c에 공간적 범위가 있는 경우 새로 얻은 코드북 Zc로 인덱스 기반 표현 r ∈ {0, . . . , |Zc|−1}^{hc×wc}을 다시 얻기 위해 다른 VQGAN을 먼저 학습합니다.
      • 즉 두 개의 VQGAN이 있다고 생각하면되고, 하나는 논문에서 설명한듯이 autoencoder 느낌
      • 다른 하나는 condition을 넣기 위해서 학습하는 것
      • 예를 들면, 여름-->겨울 사진으로 바꾸는 방법으로 VQGAN 입력(여름사진), 출력(겨울사진)을 정해서 VQGAN2을 학습한다.
      • 그리고 VQGAN2을 통해 입력사진의 indices을 뽑으면 이게 condition이 되는 것일듯
    • 변환기의 자기회귀 구조로 인해 r을 s 앞에 추가하고 음수 로그 가능성의 계산을 항목 p(si |s<i, r)로 제한할 수 있습니다.
      • 여기서 r이 c가 되는 듯?
      • r은 컨디션 정보를 넣기 위해 새로운 코드북 Zc로부터 추출하는 인덱스
    • This “decoder-only” strategy has also been successfully used for text-summarization tasks [44]
  • Generating High-Resolution Images 
    • 변환기의 주의 메커니즘은 입력 s의 시퀀스 길이 h · w에 제한을 둡니다.
    • H × W 크기의 이미지를 h = H/2^m × w = W/2^m으로 줄이기 위해 VQGAN의 다운샘플링 블록 m 수를 조정할 수 있지만 m은 고려된 데이터 세트에 따라 다릅니다.
      • 실험부분보면, 여기서 m=4?
      • 이미지의 좌우길이가 16배 줄어드는 형태
      • 트랜스포머 입력길이가 16x16이니까 원래이미지 크기가 256x256인것?
    • 메가픽셀 영역에서 이미지를 생성하려면 패치 방식으로 작업하고 이미지를 잘라 훈련 중에 s의 길이를 최대로 실현 가능한 크기로 제한해야 합니다.
    • 이미지를 샘플링하기 위해 그림 3과 같이 슬라이딩 윈도우 방식으로 변환기를 사용합니다.
      • 이는 Transformer로 high-resolution images을 만들기 위한 트릭 같은거
      • 이미지가 너무 크면, 속도적으로 문제가 있으니 CNN느낌나게, attention 하는 것을 그림3처럼 제한하는듯
    • 우리의 VQGAN은 데이터 세트의 통계가 공간적으로 거의 불변하거나 공간 컨디셔닝 정보를 사용할 수 있는 한 사용 가능한 컨텍스트가 이미지를 충실하게 모델링하기에 여전히 충분함을 보장합니다.
    • 실제로 이것은 제한적인 요구 사항이 아닙니다. 
    • 위반되는 경우(즉, 정렬된 데이터에 대한 무조건적인 이미지 합성) [42]와 유사하게 이미지 좌표에 대해 간단히 조건을 지정할 수 있기 때문입니다.

4. Experiments

  • 이 섹션에서는 컨볼루션 아키텍처의 효율성을 통합하여 고해상도 이미지 합성(섹션 4.2)을 가능하게 하는 동시에 컨볼루션 아키텍처의 효율성을 통합하면서 컨볼루션에 비해 트랜스포머의 장점을 유지하는 접근 방식의 능력을 평가합니다(4.1절). 
  • 또한 Sec. 4.3, 코드북 품질이 접근 방식에 어떤 영향을 미치는지 조사합니다. 
  • 우리는 Sec. 4.4. 초기 실험에 기초하여 우리는 일반적으로 |Z|= 1024로 설정하고 길이 16 · 16의 시퀀스를 예측하도록 모든 후속 변환기 모델을 훈련합니다. 
    • |Z|는 코드북의 가능한 index 수
    • 256(=16 · 16)이 트랜스포머 입력 길이를 의미
  • 이것이 GPT2-medium 아키텍처(307M 매개변수)를 훈련할 수 있는 최대 길이이기 때문입니다. [58] 12GB VRAM이 있는 GPU에서. 
  • 아키텍처 및 하이퍼파라미터에 대한 자세한 내용은 부록(Tab. 7 및 Tab. 8)에서 확인할 수 있습니다.

4.1. Attention Is All You Need in the Latent Space

4.2. A Unified Model for Image Synthesis Tasks 

4.3. Building Context-Rich Vocabularies

4.4. Benchmarking Image Synthesis Results

5. Conclusion

  • 이 문서는 이전에 transformers를 저해상도 이미지로 제한했던 근본적인 문제를 해결했습니다.
  • 우리는 이미지를 지각적으로 풍부한 이미지 구성 요소의 구성으로 표현하여 픽셀 공간에서 직접 이미지를 모델링할 때 실행 불가능한 2차 복잡성을 극복하는 접근 방식을 제안했습니다.
  • CNN 아키텍처를 사용하여 구성 요소를 모델링하고 transformer 아키텍처로 compositions을 모델링함으로써 보완적인 장점의 잠재력을 최대한 활용하여 transformer 기반 아키텍처를 사용한 고해상도 이미지 합성의 첫 번째 결과를 나타낼 수 있었습니다.
  • 실험에서 우리의 접근 방식은 메가픽셀 범위의 이미지를 합성하고 최첨단 컨볼루션 접근 방식을 능가함으로써 컨볼루션 유도 바이어스의 효율성과 변환기의 표현력을 보여줍니다.
  • 조건부 합성을 위한 일반적인 메커니즘을 갖추고 있어 새로운 neural rendering 접근 방식을 위한 많은 기회를 제공합니다.

Reference

댓글