20장. 노이즈에서 그림으로 — 확산 모델
이 장의 질문: 어려운 생성 한 걸음을 어떻게 쉬운 천 걸음으로 쪼개는가? 확산 모델의 원리 — 망가뜨리는 과정의 역재생 — 와, 그것이 텍스트-이미지 생성 서비스로 완성되는 마지막 부품들을 이해한다.
전제: 3장(정규분포의 감각), 14장(U-Net), 19장(생성 문제, VAE·GAN의 한계).
발상: 파괴는 쉽고, 그 역재생은 배울 만하다
VAE와 GAN의 공통 부담은 "노이즈 → 걸작"이라는 거대한 한 걸음을 신경망 하나에 요구한 것이었다. 확산 모델(diffusion model)은 걸음을 뒤집고 쪼갠다.
앞 방향(파괴)은 우리가 설계한다 — 배울 것이 없다. 진짜 이미지에 아주 약한 가우시안 노이즈를 더한다. 또 더한다. 천 번쯤 반복하면 이미지는 완전한 백색소음이 된다. 이 과정은 수식으로 완전히 정해져 있어(각 단계에서 노이즈를 얼마나 섞을지의 일정표만 정하면 된다), 임의 시점
읽는 법:
뒤 방향(복원)을 신경망이 배운다 — 그런데 이게 의외로 쉽다. "조금 흐려진 이미지를 아주 조금 덜 흐리게 하기"는 걸작 그리기가 아니라 자잘한 청소다. 구체적 학습 문제는 이렇게 세팅된다: 원본
이 단순함을 음미하라. GAN의 아슬아슬한 2인 게임도, VAE의 두 항 줄다리기도 없다 — 순수한 회귀 문제(2장!)라서 학습이 바위처럼 안정적이다. 그러면서도 결과는 날카롭다: 각 단계는 "여러 그럴듯한 답의 평균"이 아니라 "이 노이즈 수준에서의 작은 교정"만 책임지므로, VAE를 흐리게 만들던 평균의 저주가 비켜간다. 19장 끝에서 원했던 것 — 선명함과 안정성의 동시 확보 — 가 이렇게 달성됐다. (노이즈 예측기의 몸체로는 14장의 U-Net이 전통적으로 쓰였고 — 입력과 같은 크기의 출력, 스킵 연결 — 근래에는 Transformer 기반도 흔하다. 시점
생성은 역재생이다. 순수 노이즈
대가는 명확하다 — 느리다. GAN은 순전파 한 번, 확산은 수백~수천 번. 그래서 걸음을 건너뛰는 샘플러(수십 걸음으로 압축), 나아가 확산 모델을 교사 삼아 몇 걸음짜리 학생을 증류하는 기법 등 가속이 활발한 연구·공학 영역이다. "품질·다양성·안정성은 최고, 속도가 과제"가 확산 모델의 현재 성적표다.
서비스가 되기까지: 두 개의 부품
원리에서 실제 텍스트-이미지 서비스까지는 부품이 두 개 더 필요하다.
부품 1: 잠재 공간에서 확산하기. 고해상도 픽셀 공간에서 천 걸음을 걷는 것은 너무 비싸다. 해법은 19장의 기술 재활용 — 잘 훈련된 오토인코더로 이미지를 8분의 1 크기쯤의 잠재 표현으로 압축해 두고, 확산은 그 작은 공간에서 돌린 뒤, 마지막에 디코더로 픽셀을 복원한다. 지각적 디테일은 오토인코더가, 내용의 생성은 확산이 분담하는 구조 — 이것이 잠재 확산(latent diffusion)이며, Stable Diffusion이라는 이름으로 세상을 바꾼 설계다.
부품 2: 말로 조종하기. "우주비행사가 말을 타는 그림"을 만들려면 텍스트가 생성을 조건화해야 한다. 텍스트를 벡터로 만들고(16장의 임베딩, 실제로는 이미지-텍스트를 같은 공간에 정렬해 학습한 인코더를 쓴다), 노이즈 예측기의 중간중간에 교차 어텐션(18장 — 이미지 쪽 토큰들이 텍스트 토큰들을 참조)으로 주입한다. 여기에 실무적 마법 하나 — 학습 때 가끔 텍스트를 비워 두고 학습시킨 뒤, 생성 때 "텍스트를 준 예측"과 "안 준 예측"의 차이 방향을 과장해서 걷는 기법(classifier-free guidance)을 쓴다. 텍스트가 시키는 방향을 증폭하는 이 다이얼 하나로 프롬프트 충실도가 극적으로 올라간다(과하면 다양성이 죽고 그림이 과포화된다 — 여기도 트레이드오프다).
조감하면: 텍스트 인코더(5부) + 잠재 공간 오토인코더(19장) + U-Net/Transformer 확산(이 장) + 교차 어텐션(18장) — 이미지 생성 서비스는 이 책 부품들의 총결산이다. 새 마법은 없고, 조립이 있을 뿐이다.
코드랩 15에서 확산 모델을 밑바닥부터 구현한다. 노이즈 일정, 학습, 역재생 샘플링까지 — 소음에서 손글씨 숫자가 떠오르는 것을 직접 보는 경험은 이 장의 어떤 문장보다 설득력 있다.
어떤 생성 모델을 언제 쓰나 — 6부의 결산
| 상황 | 선택 | 이유 |
|---|---|---|
| 텍스트·코드 등 시퀀스 생성 | 자기회귀 (GPT류) | 데이터가 순서로 자연 분해됨 (19장) |
| 최고 품질의 이미지·영상·음악 생성 | 확산 | 품질·다양성·학습 안정성의 현 왕좌 |
| 실시간·초저지연 생성 | GAN 또는 확산의 증류판 | 순전파 몇 번으로 끝나야 하므로 |
| 표현 학습·보간·이상 탐지 | VAE 계열 | 정돈된 잠재 공간이 목적 그 자체일 때 |
그리고 시야를 넓히는 한 문장 — 확산의 쓸모는 그림에 그치지 않는다. "노이즈에서 구조물로의 점진적 복원"이라는 틀은 오디오, 영상, 분자·단백질 설계, 로봇 행동 계획까지 이식되고 있다. 표현만 바꾸면 도구가 이식된다는 이 책의 등뼈가, 생성에서도 반복되는 것이다.
핵심 요약
- 확산 모델: 파괴(노이즈 첨가)는 설계하고, 복원(역재생)을 배운다. 학습은 "섞인 노이즈 맞히기"라는 단순 회귀 — 그래서 안정적이고, 단계별 작은 교정이라 선명하다. 대가는 느린 생성(수백 걸음).
- 서비스의 두 부품: 잠재 확산(오토인코더로 압축한 공간에서 확산 — 비용 해결)과 텍스트 조건화(교차 어텐션 주입 + 안내 증폭 다이얼).
- 이미지 생성 서비스 = 이 책 부품들의 조립: 임베딩 + 오토인코더 + U-Net/Transformer + 어텐션. 새 마법은 없다.
- 생성 모델 선택은 데이터 구조와 지연 요구가 정한다: 시퀀스는 자기회귀, 품질은 확산, 속도는 GAN/증류, 표현은 VAE.
스스로 점검
- "확산의 학습이 GAN보다 안정적인 이유"를 손실 함수의 형태(게임 vs 회귀)로 설명해 보라.
- 노이즈 예측기에 시점
를 알려 주지 않으면 왜 곤란한가? ( 과 에서 해야 할 일의 차이를 생각하라.) - 잠재 확산이 "지각적 디테일"과 "내용 생성"을 어떻게 분업시키는지 한 문단으로 설명해 보라.
- 역재생 때 매 단계 새 노이즈를 조금씩 다시 섞는 것을 빼면 생성 결과에 무슨 일이 생길까? (코드랩 15에서 직접 실험해 확인해 보라.)
다음 장에서
6부가 끝났다 — 6부 복습 퀴즈로 점검하라. 이제 이 책의 마지막 봉우리, 거대 언어 모델이다. 18장에서 정의한 GPT — "다음 토큰 예측기" — 를 인터넷 전체로, 수천억 파라미터로 키우면 정확히 무슨 일이 일어나는가. "고작 다음 단어 맞추기"가 번역하고 코딩하고 추론하는 능력으로 바뀌는 과정을 정면으로 다룬다.