안녕하세요, 정글러 입니다.
최근에 Sora, Stable Diffusion 등으로 화제가 되었던 생성형 모델에 대해 알아보겠습니다.
비교 요약
GAN | VAE | Flow-based Model | Diffusion Models | |
Latent Space | 사용 O | 사용 O | 직접 계산 | 사용 X (데이터 공간 직접) |
학습 안정성 | 불안정 | 안정적 | 비교적 안정적 | 매우 안정적 |
데이터 품질 | 고품질 | 중간 | 중간 | 고품질 |
생성 속도 | 빠름 | 빠름 | 빠름 | 느림 |
특징 | 적대적 학습으로 고품질 이미지 생성 |
구조적 잠재 공간 활용 가능 | 확률 밀도 계산 가능 | 점진적 데이터 복원 |
모델구조) Autoencoder 기반
Variational Autoencoder (VAE)
>> VQ-VAE
- 정의
Vector Quantization을 Variational Autoencoder(VAE)에 통합하여 이산적 latent space를 생성하는 모델입니다. - 특징
- VAE는 연속적인 latent space를 사용하지만, VQ-VAE는 이산적인 latent space를 사용.
- 코드북을 통해 입력 데이터를 이산적인 벡터로 표현.
- 장점
- 연속 데이터의 잠재적 모호성을 줄임.
- 이산적 표현은 생성 모델(GAN, Transformer 등)과 결합하기 적합.
- 응용
- 음성, 이미지 생성
- 텍스트-이미지 모델 (예: DALL-E)
>> AugVAE
- 정의
VAE의 변형으로, 입력 데이터를 확장하거나 조건 정보를 추가해 더 풍부한 latent space를 학습하는 모델. - 특징
- 조건 정보를 추가하여 특정 속성에 기반한 데이터 생성을 강화.
- 데이터 증강(data augmentation)을 활용해 성능 향상.
- 응용
- 데이터 부족 상황에서 생성 모델 성능 강화.
- 속성 기반의 데이터 생성(예: 특정 스타일 이미지 생성).
모델구조) GAN 기반
개념
GAN은 두 개의 신경망, 생성자(Generator)와 판별자(Discriminator)가 서로 경쟁하며 학습하는 모델입니다.
구조
- Generator:
랜덤한 노이즈에서 실제와 비슷한 데이터를 생성.
목적: 판별자를 속일 수 있는 데이터를 생성. - Discriminator:
입력 데이터가 실제(real)인지 생성된(fake) 데이터인지 구분.
목적: 생성된 데이터를 판별.
학습 과정
- Generator는 Discriminator를 속이는 데이터 생성을 목표로 학습.
- Discriminator는 Generator가 생성한 데이터를 잘 구분하도록 학습.
- 두 네트워크는 적대적(Adversarial) 관계로 학습하여 Generator가 점점 더 실제 같은 데이터를 생성.
장점
- 고품질의 이미지를 생성.
- 응용: 이미지 생성, 스타일 전환(Style Transfer), 초해상도(Super-Resolution).
단점
- 학습이 불안정 (Mode Collapse, 학습 균형 문제).
- 평가 기준이 명확하지 않음.
모델구조) Diffusion Models
개념
Diffusion Models는 데이터를 점진적으로 노이즈화한 후, 이를 반대로 복원하여 새로운 데이터를 생성하는 확률적 모델입니다.
구조
- Forward Process:
- 데이터에 점진적으로 노이즈를 추가하여 정규 분포에 가깝게 변환.
- Reverse Process:
- 학습된 모델을 사용해 노이즈에서 원본 데이터를 복원.
특징
- 데이터의 생성은 다단계로 진행 (시간 단계별 복원).
- Latent Space가 아닌 데이터 공간 자체에서 작동.
대표적인 모델
- DDPM (Denoising Diffusion Probabilistic Models)
- Score-based Generative Models
장점
- 생성된 데이터의 품질이 높음 (특히 고해상도 이미지).
- 안정적 학습 과정 (GAN에 비해).
단점
- 학습과 생성 과정이 느림.
- 계산량이 많음.
DDPM / DDIM / LDM
모델 | 작업 공간 | 특징 | 효율성 | 적용 사례 |
DDPM | 데이터 공간 | 확률적 복원, 고품질 이미지 생성 가능 | 계산량 높음 | 고품질 이미지 생성 |
DDIM | 데이터 공간 | 결정론적 복원, 적은 스텝으로 효율성 증가 | 계산량 적음 | 실시간 응용 |
LDM | 잠재 공간 (Latent) | 압축된 공간에서 작업, 고해상도 데이터 처리 가능 | 계산량 매우 적음 | 텍스트-이미지 생성 (예: Stable Diffusion) |
1) DDPM (Denoising Diffusion Probabilistic Model)
개요
DDPM은 디퓨전 모델의 초기 제안된 형태로, 데이터를 점진적으로 노이즈화(Forward Process)하고, 이를 역으로 복원(Reverse Process)하면서 데이터를 생성하는 방식입니다.
핵심 과정
- Forward Process:
- 원본 데이터를 여러 단계로 점진적으로 노이즈화해 잠재 공간(latent space)으로 변환.
- 노이즈가 점차 가우시안 분포에 가까워짐.
- Reverse Process:
- 노이즈로부터 원본 데이터를 복원하는 단계.
- 각 단계는 학습된 노이즈 예측 네트워크를 통해 이루어짐.
특징
- 확률적 모델: 각 스텝에서 확률적 분포를 사용해 데이터를 복원.
- 높은 품질: 복잡한 데이터 구조를 잘 복원 가능.
- 시간 소모: 많은 스텝을 필요로 하므로 계산량이 큼.
2) DDIM (Denoising Diffusion Implicit Model)
개요
DDIM은 DDPM의 효율성을 높이기 위해 설계된 모델로, 같은 디퓨전 프로세스를 더 적은 스텝으로 구현하면서도 높은 품질의 데이터를 생성합니다.
핵심 과정
- Non-Markovian Forward Process:
- DDIM은 Forward Process에서 데이터의 상태를 더 효율적으로 추적하여 노이즈화.
- Markov Chain이 아닌 연속적인 상태 변환 사용.
- Deterministic Reverse Process:
- 데이터 복원이 확률적이지 않고 결정론적(deterministic) 방식으로 이루어짐.
- 복원 과정을 명확히 제어 가능.
특징
- 효율성: DDPM보다 적은 스텝으로 데이터를 생성 가능.
- 결정론적 복원: 생성된 데이터의 재현성을 보장.
- 품질 유지: 스텝 수를 줄여도 높은 품질의 데이터 생성 가능.
3) LDM(Latent Diffusion Model)
LDM의 주요 아이디어
- Latent Space에서의 학습
- 원본 데이터(예: 고해상도 이미지)는 크기가 크기 때문에 학습과 복원이 비용이 많이 듭니다.
- LDM은 데이터를 **인코더(Encoder)**를 통해 잠재 공간(latent space)으로 압축하여 더 작은 표현에서 디퓨전 과정을 수행합니다.
- 복원된 데이터는 **디코더(Decoder)**를 통해 원본 데이터로 다시 매핑됩니다.
- 효율적인 디퓨전 과정
- 잠재 공간은 데이터의 주요 특성만 포함하기 때문에 디퓨전 모델이 더 간단한 공간에서 작업하게 됩니다.
- 이를 통해 계산 비용이 크게 줄어들고 학습 속도도 빨라집니다.
LDM의 구조
- 인코더-디코더 아키텍처
- 인코더: 데이터를 잠재 공간으로 변환.
- 디코더: 잠재 공간에서 복원된 데이터를 원본 공간으로 변환.
- 디퓨전 프로세스
- 잠재 공간에서 Forward Process와 Reverse Process를 수행하여 데이터를 생성하거나 복원.
- 학습
- 원본 데이터와 복원된 데이터 간의 차이를 최소화하는 방식으로 학습.
LDM의 특징
장점
- 계산 효율성: 잠재 공간에서 작업하므로 메모리와 계산 비용이 크게 절감됨.
- 고해상도 데이터 처리: 원본 데이터가 크더라도 잠재 공간에서 작업하므로 효율적.
- 확장성: 고품질 이미지, 텍스트-이미지 생성 모델 등에 쉽게 확장 가능.
단점
- 인코더-디코더 의존성: 인코더와 디코더의 품질이 전체 모델 성능에 큰 영향을 미침.
- 잠재 공간 손실: 잠재 공간에서의 작업이 원본 데이터의 세부 정보를 일부 잃을 수 있음.
LDM의 응용
텍스트-이미지 생성
- Stable Diffusion: LDM 기반으로 설계된 텍스트-이미지 생성 모델.
- 사용자가 텍스트 프롬프트를 입력하면 해당 텍스트에 맞는 이미지를 생성.
- 예: "a futuristic cityscape at sunset"을 입력하면 이에 적합한 고품질 이미지를 생성.
이미지 복원 및 변형
- 손상된 이미지를 복원하거나 새로운 스타일로 변형.
고품질 이미지 생성
- 고해상도 이미지를 빠르게 생성하며 품질 저하 없이 처리 가능.
참고)
Vector Quantization (VQ)
- 정의
고차원 데이터를 이산적인 코드북(discrete codebook)으로 매핑하여 표현하는 기법입니다. - 원리
- 데이터를 여러 클러스터(벡터)로 나눕니다.
- 입력 데이터를 가장 가까운 클러스터로 매핑합니다.
- 특징
- 연속적인 데이터 대신, 이산적인 표현을 생성.
- 데이터 압축 및 고속 검색에 유리.
'AI > Study' 카테고리의 다른 글
[AI agent] 객체 지향 모듈형 AI 개발 (0) | 2025.01.13 |
---|---|
[Study] Autoencoder의 개념과 활용 (0) | 2024.12.22 |
[Study] Machine Learning과 Deep Learning의 차이점 (0) | 2024.11.02 |
[Study] <모두를 위한 파이썬 (PY4E)> 후기 (4) | 2024.09.02 |