그래도 ldm은 ddpm보단 읽기 쉬운 듯. 차근차근 해보자~
등장 배경
기존의 Diffusion Model은 픽셀 단위에서 동작해서 고해상도 이미지 생성 시 연산량과 시간이 매우 많이 필요했다.
개요
LDM = Autoencoder + Diffusion Model
의의
- 계산 효율성 극대화
기존 픽셀 단위 Diffusion Model은 매우 높은 계산 비용을 요구했는데, LDM은 오토인코더를 통해 잠재공간에서 계산을 수행하므로 연산 비용과 메모리 사용량을 크게 줄일 수 있다.
개인 소규모 연구실에서도 고성능 이미지 생성 모델을 사용할 수 있게 되어, Diffusion Model의 활용 가능성을 확대했다.
- 고해상도 이미지 생성 가능
기존 모델의 픽셀 기반 접근은 고해상도 이미지에서 매우 많은 연산량이 필요했지만, LDM은 잠재공간을 통해 높은 해상도의 이미지(예: 512×512, 1024×1024 픽셀 등)를 상대적으로 적은 연산량으로 생성 가능하게 만들었다.
구조
LDM은 AutoEncoder 구조를 활용해 다음과 같이 동작한다.
-
이미지 → [인코더] → 잠재표현
- 이미지 데이터를 인코더를 통해 낮은 차원의 잠재공간(latent space)으로 압축한다.
-
잠재표현 → [Latent Diffusion 모델] → 새로운 잠재표현 생성
- Diffusion 모델은 이 압축된 잠재공간에서 데이터의 확률적 구조를 학습하고, 새로운 잠재표현을 생성한다.
-
생성된 잠재표현 → [디코더] → 최종 이미지 생성
- 디코더는 생성된 잠재표현을 고해상도 이미지로 복원한다.
즉, LDM은 AutoEncoder 구조를 통해 복잡한 고차원 이미지 공간을 더 간결하고 연산 효율적인 잠재 공간으로 변환한 뒤, 이 공간에서 이미지 생성을 수행한다.
loss function
DM에서는 오토인코더를 훈련할 때, 두 가지 손실을 같이 사용한다:
- Perceptual Loss: 사람이 보기 좋다고 느끼는 기준에 가까운지 평가.
- Patch-based GAN Loss: 생성된 이미지가 작은 조각 하나하나에서도 진짜처럼 보이도록 유도.
논문 리딩