확산 모델은 생성 AI에서 강력한 접근 방식으로 등장하여 이미지, 오디오 및 비디오 생성에서 최첨단 결과를 생성합니다. 이 심층적인 기술 문서에서는 확산 모델의 작동 방식, 주요 혁신 및 왜 그렇게 성공했는지 살펴보겠습니다. 이 흥미로운 신기술의 수학적 기초, 학습 프로세스, 샘플링 알고리즘 및 최첨단 응용 프로그램을 다룰 것입니다.
확산 모델 소개
확산 모델 확산 과정을 역전시켜 점진적으로 데이터의 노이즈를 제거하는 방법을 배우는 생성 모델 클래스입니다. 핵심 아이디어는 순수한 노이즈로 시작하여 대상 분포에서 고품질 샘플로 반복적으로 정제하는 것입니다.
이 접근 방식은 비평형 열역학, 특히 확산을 역전시켜 구조를 회복하는 과정에서 영감을 얻었습니다. 머신 러닝의 맥락에서 데이터에 점진적으로 노이즈를 추가하는 것을 역전시키는 방법을 배우는 것으로 생각할 수 있습니다.
확산 모델의 주요 장점은 다음과 같습니다.
최첨단 이미지 품질, 많은 경우 GAN을 능가
적대적 역학 관계 없이 안정적인 훈련
매우 병렬화 가능
유연한 아키텍처 – 동일한 차원의 출력에 입력을 매핑하는 모든 모델을 사용할 수 있습니다.
확률적 미분 방정식은 확산 모델에서 전방 및 후방 프로세스를 제어합니다. 전방 SDE는 데이터에 노이즈를 추가하여 점진적으로 노이즈 분포로 변환합니다. 학습된 스코어 함수에 따라 안내되는 역 SDE는 점진적으로 노이즈를 제거하여 무작위 노이즈에서 사실적인 이미지를 생성합니다. 이 접근 방식은 연속 상태 공간에서 고품질 생성 성능을 달성하는 데 중요합니다.
전방 확산 과정
전방 확산 과정은 실제 데이터 분포에서 샘플링된 데이터 포인트 x₀로 시작하여 T 타임스텝에 걸쳐 점차적으로 가우시안 노이즈를 추가하여 점점 더 노이즈가 강한 버전 x₁, x₂, …, xT를 생성합니다.
U-Net 아키텍처는 확산 모델의 노이즈 제거 단계의 핵심입니다. 이는 재구성 프로세스 동안 미세한 세부 사항을 보존하는 데 도움이 되는 스킵 연결이 있는 인코더-디코더 구조를 특징으로 합니다. 인코더는 고수준 피처를 캡처하는 동안 입력 이미지를 점진적으로 다운샘플링하고, 디코더는 인코딩된 피처를 업샘플링하여 이미지를 재구성합니다. 이 아키텍처는 이미지 분할과 같은 정밀한 로컬라이제이션이 필요한 작업에 특히 효과적입니다.
소음 예측 네트워크 ε_θ 동일한 차원의 입력을 출력에 매핑하는 모든 아키텍처를 사용할 수 있습니다. U-Net 스타일 아키텍처는 특히 이미지 생성 작업에 인기 있는 선택입니다.
def sample(model, n_samples, device): # Start with pure noise x = torch.randn(n_samples, 3, 32, 32).to(device) for t in reversed(range(1000)): # Add noise to create x_t t_batch = torch.full((n_samples,), t, device=device) noise = torch.randn_like(x) x_t = add_noise(x, noise, t) # Predict and remove noise pred_noise = model(x_t, t_batch) x = remove_noise(x_t, pred_noise, t) # Add noise for next step (except at t=0) if t > 0: noise = torch.randn_like(x) x = add_noise(x, noise, t-1) return x
확산 모델의 수학
확산 모델을 진정으로 이해하려면 이를 뒷받침하는 수학을 더 깊이 파고드는 것이 중요합니다. 몇 가지 핵심 개념을 더 자세히 살펴보겠습니다.
마르코프 체인과 확률적 미분 방정식
확산 모델에서 전방 확산 과정은 마르코프 체인으로 볼 수 있고, 연속 한계에서는 확률적 미분 방정식(SDE)으로 볼 수 있습니다. SDE 공식은 확산 모델을 분석하고 확장하기 위한 강력한 이론적 프레임워크를 제공합니다.
전방 SDE는 다음과 같이 작성할 수 있습니다.
dx = f(x,t)dt + g(t)dw
어디:
f(x,t)는 드리프트 항입니다.
g(t)는 확산계수이다
dw는 위너 과정(브라운 운동)입니다
f와 g의 선택이 다르면 확산 과정의 유형도 달라집니다. 예를 들어:
분산 폭발(VE) SDE: dx = √(d/dt σ²(t)) dw
분산 보존(VP) SDE: dx = -0.5 β(t)xdt + √(β(t)) dw
이러한 SDE를 이해하면 최적의 샘플링 전략을 도출하고 확산 모델을 새로운 도메인으로 확장할 수 있습니다.
스코어 매칭 및 노이즈 제거 스코어 매칭
확산 모델과 스코어 매칭 간의 연결은 또 다른 귀중한 관점을 제공합니다. 스코어 함수는 로그 확률 밀도의 기울기로 정의됩니다.
s(x) = ∇x log p(x)
노이즈 제거 점수 매칭은 약간 교란된 데이터 포인트의 노이즈를 제거하기 위해 모델을 훈련하여 이 점수 함수를 추정하는 것을 목표로 합니다. 이 목적은 연속 한계에서 확산 모델 훈련 목적과 동일한 것으로 밝혀졌습니다.
이러한 연결을 통해 샘플링을 위한 어닐링된 랑주뱅 동역학 같은 점수 기반 생성 모델링의 기술을 활용할 수 있습니다.
고급 훈련 기술
중요성 샘플링
표준 확산 모델 훈련은 시간 단계를 균일하게 샘플링합니다. 그러나 모든 시간 단계가 학습에 똑같이 중요한 것은 아닙니다. 중요도 샘플링 기술을 사용하여 가장 유익한 시간 단계에 대한 훈련에 집중할 수 있습니다.
한 가지 접근 방식은 점수의 예상 L2 표준에 따라 가중치를 둔 시간 단계에 걸쳐 비균일 분포를 사용하는 것입니다.
p(t) ∝ E[||s(x_t, t)||²]
이를 통해 더 빠른 교육이 이루어지고 샘플 품질이 향상될 수 있습니다.
점진적 증류
점진적 증류는 품질을 희생하지 않고 더 빠른 샘플링 모델을 만드는 기술입니다. 이 프로세스는 다음과 같이 작동합니다.
여러 시간 단계(예: 1000)를 사용하여 기본 확산 모델을 학습합니다.
더 적은 시간 단계(예: 100)로 학생 모델을 만듭니다.
기본 모델의 잡음 제거 프로세스와 일치하도록 학생을 교육합니다.
2-3단계를 반복하여 시간 단계를 점진적으로 줄입니다.
이를 통해 상당히 적은 노이즈 제거 단계로 고품질의 영상 생성이 가능해졌습니다.
건축 혁신
변압기 기반 확산 모델
U-Net 아키텍처는 이미지 확산 모델에 인기가 있지만, 최근 작업에서는 변압기 아키텍처를 사용하여 탐구했습니다. 변압기는 여러 가지 잠재적인 이점을 제공합니다.
장거리 종속성의 더 나은 처리
더욱 유연한 컨디셔닝 메커니즘
더 큰 모델 크기로 더 쉽게 확장 가능
모델과 같은 DiT (확산 변압기) 유망한 결과를 보여줌으로써 잠재적으로 훨씬 더 높은 품질의 생성으로 가는 길을 제시했습니다.
계층적 확산 모델
계층적 확산 모델은 여러 스케일에서 데이터를 생성하여 글로벌 일관성과 세분화된 세부 정보를 모두 허용합니다. 이 프로세스에는 일반적으로 다음이 포함됩니다.
저해상도 출력 생성
점진적으로 업샘플링 및 개선
이러한 접근 방식은 고해상도 이미지 생성이나 장문 콘텐츠 생성에 특히 효과적일 수 있습니다.
고급 주제
분류자 없는 안내
분류자 없는 안내 샘플 품질과 제어성을 개선하는 기술입니다. 핵심 아이디어는 두 가지 확산 모델을 훈련하는 것입니다.
무조건 모델 p(x_t)
y가 일부 조건 정보(예: 텍스트 프롬프트)인 조건 모델 p(x_t | y)
샘플링하는 동안 우리는 다음 모델 사이를 보간합니다.
ε_θ = (1 + w) * ε_θ(x_t | y) - w * ε_θ(x_t)
여기서 w > 0은 조건부 모델을 얼마나 강조할 것인지를 제어하는 지침 척도입니다.
이를 통해 모델을 다시 학습하지 않고도 더 강력한 컨디셔닝이 가능합니다. 이는 DALL-E 2 및 Stable Diffusion과 같은 텍스트-이미지 모델의 성공에 결정적이었습니다.
잠복 확산 모델(LDM) 프로세스는 확산 프로세스가 발생하는 잠재 공간에 입력 데이터를 인코딩하는 것을 포함합니다. 모델은 이미지의 잠재 표현에 점진적으로 노이즈를 추가하여 노이즈가 있는 버전을 생성한 다음 U-Net 아키텍처를 사용하여 노이즈를 제거합니다. 교차 주의 메커니즘에 따라 안내되는 U-Net은 의미 맵, 텍스트 및 이미지 표현과 같은 다양한 컨디셔닝 소스의 정보를 통합하여 궁극적으로 픽셀 공간에서 이미지를 재구성합니다. 이 프로세스는 제어된 구조와 원하는 속성을 갖춘 고품질 이미지를 생성하는 데 중요합니다.
이것은 여러가지 장점을 제공합니다:
더 빠른 훈련 및 샘플링
고해상도 이미지의 더 나은 처리
컨디셔닝을 통합하기 더 쉽습니다
이 과정은 다음과 같이 진행됩니다.
이미지를 잠재 공간으로 압축하기 위해 자동 인코더를 훈련합니다.
이 잠재 공간에서 확산 모델을 훈련합니다.
생성을 위해 잠재 공간에서 샘플링하고 픽셀로 디코딩합니다.
이러한 접근 방식은 매우 성공적이었으며, 안정적 확산(Stable Diffusion)과 같은 모델을 구축하는 데 큰 역할을 했습니다.
일관성 모델
일관성 모델은 확산 모델의 속도와 품질을 개선하기 위한 최근의 혁신입니다. 핵심 아이디어는 반복적인 노이즈 제거가 필요 없이 모든 노이즈 레벨에서 최종 출력으로 직접 매핑할 수 있는 단일 모델을 학습하는 것입니다.
이는 다양한 노이즈 레벨에서 예측 간의 일관성을 강화하는 신중하게 설계된 손실 함수를 통해 달성됩니다. 그 결과 단일 포워드 패스에서 고품질 샘플을 생성할 수 있는 모델이 생성되어 추론 속도가 극적으로 향상됩니다.
확산 모델 훈련을 위한 실용적인 팁
고품질 확산 모델을 훈련하는 것은 어려울 수 있습니다. H 훈련 안정성과 결과를 개선하기 위한 몇 가지 실용적인 팁은 다음과 같습니다.
그래디언트 클리핑: 폭발적인 그래디언트를 방지하려면 그래디언트 클리핑을 사용하세요(특히 학습 초기에).
모델 가중치의 EMA: 샘플링을 위해 모델 가중치의 지수 이동 평균(EMA)을 유지하면 더 안정적이고 더 높은 품질의 생성이 가능합니다.
데이터 증강: 이미지 모델의 경우 무작위 수평 뒤집기와 같은 간단한 증강을 통해 일반화를 개선할 수 있습니다.
소음 스케줄링: 다양한 노이즈 일정(선형, 코사인, 시그모이드)을 실험하여 데이터에 가장 적합한 방식을 찾으세요.
혼합 정밀 훈련: 혼합 정밀도 훈련을 사용하면 메모리 사용량을 줄이고 훈련 속도를 높일 수 있으며, 특히 대규모 모델에 효과적입니다.
조건 생성: 최종 목표가 무조건 생성이더라도 조건화(예: 이미지 클래스)를 적용하여 학습하면 전반적인 샘플 품질을 개선할 수 있습니다.
확산 모델 평가
생성 모델을 적절히 평가하는 것은 중요하지만 도전적입니다. 다음은 몇 가지 일반적인 지표와 접근 방식입니다.
프레셰 시작 거리(FID)
버팀대 생성된 이미지의 품질과 다양성을 평가하는 데 널리 사용되는 지표입니다. 생성된 샘플의 통계를 사전 훈련된 분류기(일반적으로 InceptionV3)의 특징 공간에서 실제 데이터와 비교합니다.
낮은 FID 점수는 더 나은 품질과 더 현실적인 분포를 나타냅니다. 그러나 FID에는 한계가 있으며 사용되는 유일한 지표가 되어서는 안 됩니다.
시작 점수(IS)
인셉션 점수 생성된 이미지의 품질과 다양성을 모두 측정합니다. 사전 훈련된 Inception 네트워크를 사용하여 다음을 계산합니다.
IS = exp(E[KL(p(y|x) || p(y))])
여기서 p(y|x)는 생성된 이미지 x에 대한 조건부 클래스 분포입니다.
IS가 높을수록 더 나은 품질과 다양성을 나타내지만, 특히 ImageNet과 매우 다른 데이터 세트의 경우 알려진 한계가 있습니다.