High-Resolution Image Synthesis with Latent Diffusion Models

High-Resolution Image Synthesis with Latent Diffusion Models 논문 읽기
김호진's avatar
Oct 01, 2024
High-Resolution Image Synthesis with Latent Diffusion Models
 
 
 
Introduction
Diffusion model은 likelihood-based 모델에 속하는데, 눈으로 보이는 인지하기 힘든 정도의 차이도 모델링하려다보니 리소스를 지나치게 많이 사용한다. 비록 DDPM에서 objective의 가중치를 조정해서(t가 클 때 Loss에 더 큰 가중치 부여) 초기 Denoising 스텝이 적게 샘플링되도록하여 이게 완화되도록 하려고 하지만 고차원의 RGB 이미지를 다루느라 여전히 연산이 많이 필요하다.
DDPM에서
 
 
 
예시로, 가장 강력한 디퓨전 모델 학습은 GPU 하나로 몇백일이 걸린다. Inference도. 그래서 5만개의 샘플을 뽑는데 대략 A100 한대로 5일이 걸린다.
 
우선 기존의 방식으로 학습된 diffusion model을 분석하는 것으로 시작한다.
notion image
 
다른 여타 Likelihood-based 모델과 마찬가지로, 학습은 대략 두 단계로 나뉜다.
  1. 디테일한 것들을 제거하지만 여전히 의미는 거의 학습하지 않는 perceptual compression 단계
  1. 실제 생성 모델이 데이터의 의미론적 구성을 학습하는 단계 - semantic compression
 
그러므로 우리는 우선 인지하기에는 동일하지만 연산을 줄일 수 있는 적절한 space를 찾는 것으로 시작한다. → 고해상도 이미지 생성도 가능하게 할 수 있다.
 
일반적인 방법들을 따라, 우리는 학습을 두단계로 나눈다.
  1. 낮은 차원의 representational space를 구성하도록 auto encoder를 학습시킨다. perceptual하게는 실제 data space와 같다고 볼 수 있게
    1. 중요한 것은, 이전의 연구들과는 다르게 Auto Encoder가 차원을 크게 압축해야할 필요는 없다. 어짜피 LDM을 latent space에서 학습시키기 때문에.
 
이 방법의 장점은 audo encoder를 한번만 학습시켜서 얻어내도 된다는 점이다. 그럼 그걸 가지고 여러 Diffusion model 실험에 효율적으로 사용할 수 있다.
우리는 Diffusion model의 Unet backbone에 트랜스포머를 연결한 구조를 만들어서 제너럴한 condition 주입이 가능하도록 했다.
 
Method
Diffusion model이 인지적으로 무의미한 디테일에 관한 loss term을 줄여서 그런걸 학습하느라 리소스가 낭비되는걸 방지하려고 하지만, 여전히 문제가 많다.
우리는 명시적으로 압축과 생성 과정을 분리해서 이걸 해결하려고 한다. 이걸 위해서 우리는 이미지 공간과 인지적으로 일치하는 space를 배우면서 공간을 많이 압축하는 오토인코더 모델이 필요하다.
 
VAE
Perceptual compression model은 오토인코더에 perceptual loss, patch-based adaverserial objective를 더해서 학습한다. 이렇게하면 reconstruction이 L21 loss에만 집착해서 블러리하게 일어나는걸 방지한다.
 
f만큼 다운샘플링하고, 논문에서는 여러 f값을 실험했다.
 
임의의 high-variance latent space를 피하기위해서 두 종류의 reularization을 실험했다.
  1. KL-reg.
    1. 학습된 latent가 표준 정규 분포가 되도록하는 KL-penalty를 약간 부여했다. VAE에 있는 loss의 regularizor처럼!
  1. VQ-reg.
    1. decoder에서 VQ layer를 사용한다.
      다시 말해 VQGAN인데 vector quantization layer는 디코더의 첫번째 레이어로 처리해버려서 양자화하기 전의 continuous vector를 사용하는게 이 모델이라고 생각하면 된다.
      codebook size |Z|
DM이 2차원 데이터를 다루기 때문에 압축한 Latent도 2차원이어도 된다. 이건 학습할 때 Diffusion model이 이미지라는 2차원 정보의 inductive bias도 사용해서 처리할 수 있게해준다(convolution layer의 힘을 사용할 수 있다).
고퀄리티의 복원을 위해 둘다 정규화를 조금만 사용했다 = KL은 loss term에서의 가중치가 이었고, VQ-reg은 코드북 갯수를 크게 가져갔다.
 
각각을 사용했을 때의 실험 결과.
notion image
 
LDM
Diffusion model은 조금씩 노이즈를 추가하고 뺀다.
notion image
노이즈를 조금씩 추가/제거하는 각 timestep의 모듈을 사실상 각 타임스텝별 디노이징 오토인코더라고 해석하기도 한다.
 
AE를 학습했으니까 데이터의 중요한 점들에 집중할 수 있고 컴퓨팅 연산도 낮출 수 있다.
 
notion image
 
notion image
Conditioning
Unet 백본에 cross-attention을 추가해서 유연한 컨디션을 받아들여서 이미지를 생성하는 모델로 바꾸어냈다.
 
notion image
notion image
 
실험
VQ-reg를 사용해서 정규화한 latent space가 AE만 학습할 때의 reconstruction 성능은 KL-reg보다 안좋았지만, 이미지 생성 퀄리티는 더 좋았다.
notion image
 
 
4.1. On Perceptual Compression Tradeoffs
AE의 Downsampling factor가 f = {1, 2, 4, 8, 16, 32}인걸로 실험해봤다. f=1이면 Pixed-based와 같음
notion image
A100한대로 리소스를 고정하고 같은 스텝과 같은 파라미터수로 학습했다.
너무 작으면 학습이 느렸고 너무 크면 FID가 일정 스텝 이후에 더 떨어지지 않았다. LDM-{4, 8, 16}이 제일 밸런스가 좋았다.
 
1.45B KL-regularized LDM을 텍스트 프롬프트로 컨디션 줘서 학습했다.
classifier-free guidance를 적용했다.
 
 
LDM은 슈퍼 Resolution을 위해서 효율적으로 학습될 수 있다. 저화일 이미지를 concat을 통해서 붙여서 컨디션으로 사용함으로써.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Share article
Subscribe to our newsletter
RSSPowered by inblog