오늘 끝나면
GAN
- ✓GAN의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 GAN이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
굿펠로우 2014 — 위조범과 감별사의 대결 → StyleGAN 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
AI · Day 17 / 생성 모델
위조범과
감식가
2014년, Goodfellow가 술집에서 떠올림. 한 네트워크가 다른 네트워크를 속이려고 경쟁하게 만들면 어떨까. 그날 밤 코드가 한 번에 돌았음. 생성 AI 산업이 그렇게 열림.
술집에서 나온 설계도
GAN은 영화 캐치 미 이프 유 캔임. 위조범과 감식가의 끝없는 추격전임.
네트워크가 둘임. 생성자(Generator)는 위조범임. 진짜 같은 가짜를 만들어 속임. 판별자(Discriminator)는 감식가임. 진짜와 가짜를 가려냄.
처음엔 위조가 어설퍼 금세 잡힘. 근데 둘이 계속 경쟁함. 위조범은 기술을 갈고, 감식가는 눈썰미를 키움. 평형에 닿으면 생성자가 진짜와 구분 불가능한 가짜를 만듦. 게임 이론이 딥러닝에 들어온 순간임.
G는 D를 속이려, D는 G를 잡으려 — 경쟁이 진짜 같은 가짜를 만든다
두 네트워크의 결투 — Minimax
GAN의 심장은 한 줄 수식임. 한쪽은 키우고(max) 한쪽은 줄이는(min) 미니맥스 게임임.
판별자 D는 V를 최대화함. 진짜엔 D(x)≈1, 가짜엔 D(G(z))≈0을 주려 함. 생성자 G는 같은 V를 최소화함. 가짜를 D가 진짜로 믿게 만들고 싶음.
결투의 끝이 놀라움. 최적점이 정확히 p_g = p_data—생성 분포가 데이터 분포와 같아지는 지점—임을 Goodfellow가 수학적으로 증명함. 그 순간 D는 못 가려 D(x)=0.5만 내뱉음. 감식가가 동전 던지기로 전락하는 게 목표임. 아이러니함.
한쪽은 올리고 한쪽은 내린다 — 두 곡선이 만나는 곳이 내쉬 균형
구현은 BCE 두 번이면 끝
수식은 무섭지만 코드는 30줄임. GAN 학습은 결국 이진 분류 손실(BCE) 두 번임.
판별자는 진짜를 1, 가짜를 0으로 맞히게 배움. 생성자는 반대로 자기 가짜를 D가 1로 믿게 만들려 함. 근데 트릭 하나가 중요함. 이론대로 log(1 - D(G(z)))를 줄이면 초기에 기울기가 거의 0임. G가 신호를 못 받음.
그래서 실전에선 비포화 손실(non-saturating)로 바꿈. 즉 -log D(G(z))를 키우는 쪽임. 수렴 지점은 비슷한데 초기 학습이 훨씬 잘 됨. 이 한 끗 차이가 GAN을 돌아가게 한 비결임.
파이썬 코드 보기
# GAN 한 스텝 = BCE 두 번 # D 학습 (진짜는 1, 가짜는 0) d_real = BCE(D(real), 1) d_fake = BCE(D(G(z).detach()), 0) d_loss = d_real + d_fake # G 학습 (non-saturating) # "D가 내 가짜를 진짜로 믿어주길" g_loss = BCE(D(G(z)), 1) # Adam(lr=2e-4, b1=0.5)
GAN의 세 가지 악몽
GAN은 수학적으론 아름다움. 근데 실제론 악명 높게 까다로움. 악몽이 셋임.
첫째, 모드 붕괴(mode collapse). MNIST 학습했는데 G가 숫자 1만 계속 찍음. D를 확실히 속이는 패턴 하나에 응집해버림. 다양성이 사라짐.
둘째, 학습 불안정. 미니맥스라 손실이 수렴 안 하고 요동침. 셋째, 기울기 소실. D가 너무 똑똑해지면 G가 배울 신호가 사라짐. 선생이 너무 잘나서 학생이 배울 게 없는 상황임.
해결책의 진화가 곧 GAN의 역사임. DCGAN이 CNN으로 안정화함. WGAN-GP가 Wasserstein 거리로 기울기를 되살림. StyleGAN이 진짜 같은 얼굴을 만들어 인터넷을 뒤흔듦.
D를 확실히 속이는 패턴 하나에 G가 갇힌다 — GAN 1번 악몽
여전히 살아있는 기술
2022년 이후 주도권은 Diffusion으로 넘어감. 근데 GAN은 안 죽음. 자기 자리를 찾았을 뿐임.
Diffusion은 학습이 안정적이고 모드 붕괴가 없고 텍스트 조건화가 자연스러움. 반면 GAN은 단 한 번의 forward pass로 이미지를 만듦. 그래서 실시간 생성, 얼굴 극사실(StyleGAN), 해상도 향상(ESRGAN), 모바일 경량 배포에선 여전히 최고임.
비즈니스 응용도 명확함. 의료·제조의 희귀 불량 이미지를 합성해 데이터 불균형을 풂. 얼굴 익명화로 프라이버시를 지킴. 디자인 아이데이션을 10배로 가속함. 권앤컴퍼니 관점에선 2~4주짜리 PoC로 딱 맞는 크기임.
Q. GAN의 전역 최적점에서 판별자 D(x)의 값은 얼마일까요?
p_g = p_data이면 D*(x) = p_data / (p_data + p_g) = 1/2임. 즉 판별자가 진짜와 가짜를 전혀 못 가리고 항상 0.5만 내뱉는 상태가 학습의 목표임. 감식가가 완전히 헷갈리는 순간이 곧 위조범의 승리임.주도권은 넘겼지만 자기 자리를 찾았다 — 기술은 죽지 않는다