19장. 만들어내는 기계 — 생성 모델
이 장의 질문: "그럴듯한 새 데이터를 만든다"는 것은 수학적으로 무슨 일인가? 생성이라는 문제를 정의하고, 상반된 철학의 두 고전 — 압축했다 복원하는 VAE, 위조꾼과 감별사를 겨루게 하는 GAN — 을 이해한다.
전제: 3장(확률 분포, 최대가능도), 7장(저차원 표현), 5장(교차 엔트로피).
생성 문제의 정의
판별 모델은
이 말을 그림으로 이해하자. 픽셀 100만 개짜리 이미지 하나는 100만 차원 공간의 점 하나다. 그 광활한 공간에서 "말이 되는 이미지"들 — 실제 얼굴, 실제 풍경 — 은 지극히 얇은 영역에 몰려 산다(7장의 "본질은 저차원에 산다"). 무작위 픽셀을 찍으면 백색소음이 나오는 이유는 그 얇은 영역을 맞출 확률이 0이기 때문이다. 생성 모델의 일은 그 얇은 영역의 지도를 배우고, 지도 위의 새 지점을 찍는 것이다.
표준 전략은 공통이다: 다루기 쉬운 무작위성 — 보통 저차원의 표준 정규분포에서 뽑은 벡터
VAE: 압축했다 복원하는 길
첫 번째 답 — 정답을 스스로 만들자. 원본을 압축했다가 복원하게 하고, 복원 오차로 채점하자.
인코더가 이미지
변분 오토인코더(VAE)의 처방 두 가지가 이를 해결한다. 첫째, 인코더가 점이 아니라 분포(평균과 퍼짐)를 출력하게 하고 거기서
(이 손실은 사실
VAE의 성격: 학습이 안정적이고(손실이 명시적이라 그냥 내려간다), 잠재 공간이 정돈되어 있어 보간이 아름답다 — 두 얼굴의
GAN: 감별사를 속이는 길
두 번째 답은 과격하다 — "그럴듯한가"의 채점 기준 자체를 신경망에게 배우게 하자.
적대적 생성망(GAN)은 두 망을 겨루게 한다. 생성기는
이 설계의 천재성은 손실의 위탁에 있다. "그럴듯함"을 수식으로 적는 대신, 그 판단을 학습되는 판별기에게 맡겼다 — 판별기는 픽셀 평균 같은 무딘 잣대가 아니라 질감·구조의 미세한 어색함까지 잡아내므로, 생성기는 날카롭고 사실적인 이미지를 내놓도록 몰린다. VAE의 흐림이 없다.
대가는 학습의 불안정성이다. 이것은 밥그릇 바닥을 찾는 최적화(2장)가 아니라 두 플레이어의 균형점을 찾는 게임이고, 게임은 훨씬 다루기 어렵다. 판별기가 너무 강해지면 생성기가 배울 신호가 사라지고(모든 시도가 즉시 간파되면 피드백이 "다 틀렸어"뿐이다), 생성기가 얌체 전략을 찾으면 — 판별기를 속이는 한 종류의 이미지만 반복 생산 — 다양성이 죽는다(모드 붕괴: 숫자 생성기가 "1"만 그리는 고전적 실패). 손실 값이 품질을 말해 주지도 않아서(두 손실은 상대 평가다) 훈련 내내 샘플을 눈으로 봐야 한다. GAN 전성기의 수많은 기법이 이 균형 잡기의 노하우였다.
두 철학의 대차대조표
| VAE | GAN | |
|---|---|---|
| 채점 방식 | 명시적 손실 (복원 + 분포 벌점) | 학습되는 판별기 (게임) |
| 학습 | 안정적 — 손실이 그냥 내려간다 | 불안정 — 균형 게임, 모드 붕괴 |
| 결과물 | 흐릿하지만 다양 | 날카롭지만 다양성 위험 |
| 잠재 공간 | 정돈됨 (보간·조작에 좋음) | 보장 없음 |
이 표를 관통하는 교훈이 있다 — 선명함(판별기식 채점)과 안정성(명시적 손실)을 동시에 갖고 싶다는 것. 두 진영 모두 그 답에 닿지 못했고, 그 답은 제3의 길에서 왔다. 미리 한 줄로 예고하면: "생성이라는 어려운 한 걸음을, 쉬운 걸음 천 개로 쪼갠다" — 다음 장의 확산 모델이며, 오늘날 이미지 생성의 왕좌다.
한편 이 장의 관점에서 재조명할 것이 하나 있다. GPT(18장)도 생성 모델이다 —
손을 움직일 시간 — 코드랩 14에서 VAE와 GAN을 둘 다 밑바닥부터 구현해 손글씨 숫자를 생성한다. VAE의 잠재 공간 보간과 GAN의 모드 붕괴를 직접 눈으로 보는 것이 이 장의 완성이다.
핵심 요약
- 생성 = 데이터 분포
를 배워 새 표본을 뽑는 것. 표준 전략은 "정규분포 잠재 벡터 → 신경망 변환". 관건은 정답 쌍 없이 '그럴듯함'을 채점하는 방법이다. - VAE: 압축-복원 오차 + 잠재 공간 정돈 벌점(KL). 안정적이고 잠재 공간이 곱지만 결과가 흐릿하다(픽셀 평균의 저주).
- GAN: 채점을 학습되는 판별기에 위탁한 2인 게임. 날카로운 결과, 그러나 균형 게임 특유의 불안정과 모드 붕괴.
- GPT는 자기회귀 생성 모델 — 분포를 조건부 분포의 곱으로 분해해 분류 문제의 연쇄로 푼다. 데이터 구조가 생성 전략을 결정한다.
스스로 점검
- "무작위 픽셀을 찍으면 왜 절대 얼굴이 안 나오는가"를 이 장의 언어(얇은 영역,
)로 설명해 보라. - VAE 손실의 두 항 중 하나씩을 빼면 각각 무엇이 무너지는가? (복원 항만 있을 때 / 벌점 항만 있을 때)
- GAN에서 판별기가 초반부터 완벽해지면 생성기 학습이 왜 멈추는지, "배울 신호"의 관점에서 설명해 보라.
- 텍스트 생성에서 자기회귀가 자연스러운 이유를, 이미지에는 왜 덜 자연스러운지와 대비해 생각해 보라. (힌트: 이미지의 픽셀에는 정해진 '순서'가 있는가?)
다음 장에서
한 번에 걸작을 그리라는 요구는 생성기에게 너무 가혹했다. 그렇다면 — 완성작에서 노이즈까지 서서히 망가뜨리는 과정을 먼저 정의하고, 그 역재생을 배우게 하면 어떨까. 쉬운 복원 천 걸음의 연쇄로 생성을 풀어낸 확산 모델, 오늘날 모든 이미지 생성 서비스의 심장이다.