1. 생성(Generation) vs 판별(Discrimination) & 왜 VAE가 중요한가
- 생성(Generation): 데이터 분포 자체를 배워서, 거기서 새 샘플을 뽑아내는 모델을 만드는 것.
- 판별(Discrimination): 주어진 입력 x에 대해 라벨/클래스 y를 맞히는 문제 (분류, 검출, 세그멘테이션 등).
- Variational Autoencoder(VAE), 즉 Variational 방법론
- VAE를 이해하고, 그 안에 들어있는 최대우도추정(MLE, Maximum Likelihood Estimation),
변분추론(Variational Inference), KL Divergence, ELBO, Reparameterization Trick을 이해하는 것이
생성·확률·베이즈·디퓨전 등으로 넘어가는 핵심
01. 생성모델 (Generative Models) 이란?
세상에 실제로 존재하는 객체는 확률 분포 $p(x)$로 나타낼 수 없습니다. 하지만 어떤 객체, 예를 들어 강아지의 모습이 담긴 학습 데이터셋 $D = [x_1, x_2, …
wikidocs.net
2. 최대우도추정(MLE)와 'Likelihood'
2.1 Bayes Rule과 관측변수 vs 미지수 구분:
- 관측 가능한 것: 데이터 x
- 이미 하드에 저장된 값, 내 눈에 보이는 값.
- 구하고 싶은 것(미지수, 파라미터): θ
- 신경망의 weight, bias 같은 학습해야 할 파라미터들.
- Base Rule:

- 여기서:

2.2 생성적 관점: 데이터는 ‘어딘가의 분포’에서 샘플링된 것
- 현실 세계에서 우리가 관측하는 데이터 x들은,
어딘가 미지의 세계에 있는 진짜 분포 에서 샘플링되어 하드에 저장된 것이라고 가정. - 우리는 진짜 분포 p(x)를 알 수 없지만,
- 어떤 파라미터 θ를 가지는 모델 를 만들어
- 실제 분포 p(x)를 최대한 흉내내고 싶다.
https://angeloyeo.github.io/2020/07/17/MLE.html
최대우도법(MLE) - 공돌이의 수학정리노트 (Angelo's Math Notes)
angeloyeo.github.io
2.3 MLE의 목표: 가장 ‘그럴싸한’ 찾기

- Likelihood = “그럴싸한 정도”
→ “이 θ라면, 지금 내가 가진 데이터가 나올 법해 보이나?”
→ 그 ‘정도’를 최대화하는 θ를 찾는게 MLE.
2.4 Likelihood는 “확률분포”가 아니라 “함수”

- 일반적으로는 가 주어져 있고, x가 변하는 함수 → 확률분포 함수.
- 그런데 MLE에서는 상황이 거꾸로:
- 우리는 관측된 x들을 알고 있고,
- 라는 미지수(θ)를 찾고 싶다.
- 즉:
- x는 고정, μ,σ가 변수인 함수 → 이것이 Likelihood 함수.
- 이 함수값이 1이 될 필요도 없고, 1을 넘을 수도 있음.
- 그래서:
- Likelihood는 ‘확률(probability)’라고 부르지 않고, ‘함수(function)’라고 부른다.
- “내가 가진 데이터가 주어졌을 때, 파라미터 θ가 얼마나 그럴싸한지”를 나타내는 값.
3. 생성 모델링 = 데이터 분포에 대한 MLE
3.1 생성 문제의 목적식
- 생성 모델링의 핵심

- 여기에서 pθ(x)가 무엇인지에 따라:
- 판별 문제(분류, 세그멘테이션)도
- 이미지 생성, 텍스트 생성 등도
- “결국 MLE 관점에서 동일한 틀” 안에서 설명 가능.
3.2 판별 테스크(Classification)와의 연결

- 분류 문제:
- 입력 를 넣었을 때, 정답 라벨 y가 나올 확률 pθ(y∣x)의 로그를 최대화하는 문제.
- 이때 pθ(y∣x)를:
- Bernoulli 분포로 두면 → 이진 분류 (Binary Cross Entropy)
- Multinomial 분포로 두면 → 다중 분류 (Softmax + Cross Entropy)
- 이때 pθ(y∣x)를:
- 입력 를 넣었을 때, 정답 라벨 y가 나올 확률 pθ(y∣x)의 로그를 최대화하는 문제.
- 즉,
- 분류 문제도 “로그 우도 최대화”의 특수 케이스.
3.3 생성 테스크
- 생성에서는:
- 클래스 y가 아니라,
- 데이터 x 자체의 분포 pθ(x) 를 배우고 싶다.
- 그래서 생성 모델의 목적도 똑같이:maxθ logpθ(x)
- 다만 이 를 구현하는 방식에 따라:
- 명시적 생성 모델 (Explicit Generative Model)
- 암묵적 생성 모델 (Implicit Generative Model)

https://minsuksung-ai.tistory.com/12
생성모델(Generative model)이란 무엇일까?
내일이 기말고사라서 간단하게 강의 정리도 해야해서, 오늘은 비지도학습(Unsupervised learning) 중에서 클러스터링(Clustering)과 함께 가장 대표적인 예시 중 하나인 생성모델(Generative model)에 관련해
minsuksung-ai.tistory.com
4. 명시적(Explicit) vs 암묵적(Implicit) 생성 모델
4.1 명시적 생성 모델 (Explicit)
- 확률 분포 pθ(x) 를 수식으로 명시적으로 정의하는 모델
즉 모델이 데이터의 likelihood를 계산할 수 있도록 설계된다.
- 예시 분포
- Gaussian
- Bernoulli
- Multinomial
- VAE의 일부 구성
- 여기서 두 분류:
- (1) Tractable Explicit Model (정확 계산 가능)
- 데이터의 정확한 확률값
- pθ(x)를 직접 계산할 수 있는 모델
- 대표 예: Autoregressive Model

- 전체 문장의 확률을
- 각 토큰의 조건부 확률의 곱으로 분해

각 단계의 확률을 Cross Entropy로 바로 학습 가능하다.
대표 모델
- Language Model (Transformer LM)
- GPT
- PixelCNN
특징
- likelihood 정확 계산 가능
- 학습 안정적
- 샘플 생성은 순차적이라 느릴 수 있음
- (2) Intractable Explicit Model (계산 불가능 → 근사 필요)
여기서는 pθ(x) 를 수식으로는 정의하지만, 실제로 계산하려고 하면 적분 때문에 계산이 불가능해진다.

이 적분이 high dimensional이라 계산 불가.
그래서 다음 방법을 사용한다.
- ELBO (Evidence Lower Bound)
- Variational Inference
즉 likelihood를 직접 계산하는 대신 하한(lower bound) 을 최대화
대표 모델
- VAE (Variational Autoencoder)
- Diffusion Model (변분적 해석에서)
특징
- 확률 모델은 존재
- 하지만 likelihood 직접 계산 불가
- 대신 근사 학습
4.2 암묵적 생성 모델 (Implicit Generative Model)
- 여기서는 아예 pθ(x)를 명시적으로 정의하지 않는다
- likelihood 없음
- 확률식 없음
- 대신:
- 신경망에 모든 걸 맡기고, 그 네트워크가 데이터 샘플을 만들어내도록 학습.
- 대표 예: GAN(Generative Adversarial Network)
- Generator가 정의하는 분포가 암묵적으로 데이터 분포를 흉내내도록 학습.
- “Likelihood를 명시적으로 계산하지 않고도” 생성 모델을 학습하는 방식.
- Generator G(z)
- Discriminator D(x)

5. GAN 암묵적(Implicit) 생성 모델 대표
5.1 구조: Generator vs Discriminator
- Generator G(z):
- 랜덤 노이즈 (레이턴트 스페이스에서 샘플) → 가짜 데이터 x 생성.
- 예: 소리/이미지/음성 등을 생성한다고 가정.
- Discriminator D(x):
- 입력 x가 진짜(real) 인지 가짜(fake) 인지 구분하는 이진 분류기.
- CNN, Transformer 등 어떤 구조든 상관없음.
- Generator = 위조지폐범
- 진짜 돈과 구분 안 될 정도로 정교한 위조지폐를 만들려고 노력.
- Discriminator = 경찰관
- 입력된 돈이 진짜인지 가짜인지 판별하는 역할.
- 학습 과정:
- 진짜 데이터 x → Discriminator는 1(Real) 이라고 맞히도록 훈련.
- Generator가 만든 가짜 데이터 x → Discriminator는 0(Fake) 라고 맞히도록 훈련.
- 동시에 Generator는 Discriminator를 속여서,
- 가짜 x~를 넣었을 때 Discriminator가 1(Real) 이라고 착각하도록 학습.
- 이 관계를 미니맥스 게임(minimax game)으로 표현:
- Discriminator는 정확도를 올리려고 하고,
- Generator는 Discriminator의 정확도를 떨어뜨리려고 함.
5.2 학습 종료 시점: D의 정확도 ≈ 50%
- Generator가 충분히 잘 학습되면:
- Discriminator는 진짜 vs 가짜를 거의 구분 못 해서 50% 확률로 찍게 됨.
- 그 시점에서:
- Generator가 이미 데이터 분포를 잘 흉내내는 모델이 된 것.
- 이후에는 Discriminator는 버리고, Generator만 사용해서 샘플 생성.
5.4 GAN은 “모델 이름”이라기보다 “로스 구조”
- 실제로는 Adversarial Loss를 붙인 어떤 구조도 다 “GAN류”.
- 특정 모듈에 Discriminator 역할을 하는 신경망을 붙여서,
- 둘을 적대적으로 학습시키는 구조 전체를 어드버서리얼(Adversarial) 하다고 부름.
6. VAE(Variational Autoencoder): 명시적 + 근사(Variational) 기법
- VAE는 이름은 오토인코더지만, 사실 일반적인 ‘Autoencoder’랑은 완전히 다른 기술
- 일반적인 Autoencoder와 달리 확률 기반 생성 모델이다
6.1 목표: pθ(x)를 직접 모델링
- 생성 모델링의 목적은 같음

- 하지만 직접 모델링하기 어렵기 때문에 잠재 변수 (latent variable) z를 도입한다.
- 데이터 를 생성하는 숨은 원인
- 저차원 표현 (latent representation)

- 확률 모델은 다음과 같이 표현된다. 이 적분은 보통 고차원이라 계산 불가능 (intractable) 이다.
- 우리가 진짜 알고 싶은 건 후분포 pθ(z∣x) 즉 posterior distribution인데 이것도 직접 계산하기 어렵다.
6.2 Variational Inference와 ELBO
- posterior를 직접 계산할 수 없기 때문에 근사 분포를 정의한다.

- Encoder
- posterior pθ(z∣x를 근사

- 여기서:
- ELBO : Evidence Lower Bound
- KL : Kullback–Leibler divergence
- KL 항은 항상 ≥ 0이므로:

ELBO는 logpθ(x) 의 하한(lower bound)
- VAE의 아이디어:

6.3 ELBO의 두 항: Reconstruction Loss + KL Regularization
ELBO는 두 항으로 분해된다.

1. Reconstruction Term

latent z 로부터 원래 데이터 x를 얼마나 잘 복원하는가
- MSE
- Binary Cross Entropy
등의 reconstruction loss로 사용한다.
2. KL Regularization


실제 구현에서는 Encoder가 다음을 출력한다.

Gaussian과 N(0, I) 사이의 KL divergence를 계산해 loss에 추가한다.

재구성 성능 + latent 공간 정규화
6.4 Reparameterization Trick (리파라미터라이제이션 트릭)
문제:

하지만:
- 샘플링은 미분 불가능한 연산.
- gradient가 encoder로 전달되지 않음.
해결:
- 표준정규 분포에서 샘플링한 ϵ을 이용해 재매개변수화:

- 이렇게 하면:
- 샘플링은 에서만 발생
- 나머지는 선형 연산
즉:
- “평균이 μ, 분산이 σ인 Gaussian에서 샘플링”을
- “표준정규 분포에서 샘플링 + 선형변환” 으로 바꾸는 트릭.
- 이것이 Reparameterization Trick.
따라서 backpropagation 가능, 이 트릭이 중요한 이유:
- VAE뿐 아니라,
- Diffusion 모델에서도 평균·분산을 계속 다루기 때문에
이 아이디어가 반복적으로 사용됨.
6.5 학습 후 사용
- 학습이 끝나면:
- 인코더 는 버릴 수 있음.
- z∼N(0,I) (또는 적절한 선형변환)으로 본 뒤
- 디코더 x∼pθ(x∣z) 에 넣어 새로운 생성.
7. 언어 모델 (Autoregressive Model)
- 명시적(Explicit) + Tractable 생성 모델
언어 모델은 오토리그레시브 분해(autoregressive factorization) 를 사용해 문장 전체의 확률을 계산한다.
7.1 오토리그레시브 분해
문장 예시:
- 입력: “넌 누구야?”
- 출력: “나는 챗GPT야”
문장을 토큰으로 보면
[x1, x2, x3]
언어 모델은 문장의 확률을 다음처럼 분해한다.

- 각각의 조건부 분포:
- “나는”이 나올 확률
- “나는” 다음에 “챗”이 나올 확률
- “나는 챗” 다음에 “GPT야”가 나올 확률
- 이걸 모두 Cross Entropy로 학습:
- 결국 분류 문제의 연속처럼 푸는 것.
- 각 단계는 Vocabulary 전체에 대한 softmax 분류 문제
pθ(x1) => pθ(x2∣x1) => pθ(x3∣x1,x2)
7.2 Tractable 모델인 이유
- 오토리그레시브 모델은 각 step에서:
- Vocabulary에 대한 softmax 확률을 내기 때문에,
- 그 문장/토큰 시퀀스가 나올 정확한 확률을 계산할 수 있음.

- 이걸 이용해서:
- “GPT 스타일 텍스트인지, 사람이 쓴 텍스트인지” 구분하는 GPT Detector 같은 것도 만들 수 있음:
- 어떤 문장이 주어졌을 때,
- 언어모델이 부여하는 확률이 너무 높다 → AI가 쓴 걸로 의심.
- 특정 구간에서 확률이 이상하게 낮다 → 사람이 쓴 흔적일 수도.
- “GPT 스타일 텍스트인지, 사람이 쓴 텍스트인지” 구분하는 GPT Detector 같은 것도 만들 수 있음:
Explicit + Tractable 생성 모델
8. Diffusion Model
노이즈 → 데이터로 복원하는 과정을 학습하는 생성 모델이다.
8.1 Forward Process: 깨부수기(노이즈 추가)
- 원본 이미지 x0가 있을 때,
- 매 스텝마다 Gaussian 노이즈를 조금씩 더해
- xT가 되면 원본을 전혀 알아볼 수 없는 순수 노이즈가 됨.

- 이 과정은:
- 각 step의 변환이 정규분포 수식으로 명시되어 있어
코드로 쉽게 구현 가능 (Randn + 계수 조합).
- 각 step의 변환이 정규분포 수식으로 명시되어 있어

8.2 Reverse Process: 정리하기(노이즈 제거)
- 우리가 원하는 것은 반대 방향

- 즉, 순수 노이즈에서 시작해 데이터로 가는 과정을 학습
- 문제:
- p(xt−1∣xt) 같은 역전달 분포는 직접 알 수 없음.
- 그래서 여기에 신경망을 써서:
- 각 step에서 제거해야 할 노이즈를 예측하도록 학습시킨다.

8.3 ‘아이 방 어질러 놓기’
- Forward:
- 아이가 방에서 장난쳐서 물건을 마구 어질러서 쓰레기장(노이즈) 상태가 됨.
- Reverse:
- 부모(모델)는 “원래 방이 어땠는지 한 번 본 적이 있다”고 가정.
- 그 기억(트레이닝 데이터)을 활용해서:
- 현재 쓰레기장 상태에서 조금씩 정리해 나가며 원래 방처럼 만들어감.
- 완벽히 똑같은 방이 아니라:
- 원래 방과는 다르지만 그럴싸한 새로운 방이 되는 것.
- 즉, train set과는 다르지만 같은 분포에서 나온 새로운 샘플 생성.
8.4 Diffusion과 VAE/Variational의 연결
- Diffusion의 목적도 결국: maxlogpθ(x)
- 이 목표에서 출발해 Variational 방식으로 유도하면,
- VAE 때처럼 ELBO 형태의 학습 목적이 나온다.
- 이 유도 과정에서:
- Forward process(노이즈 추가)는 명시적인 Gaussian 수식.
- Reverse process는 신경망이 “얼마나 노이즈를 지워야 하는지”를 예측하도록 학습.
- 그래서:
- Reparameterization Trick, Gaussian 평균·분산 다루기 등이
Diffusion에서도 핵심.
- Reparameterization Trick, Gaussian 평균·분산 다루기 등이
9. 정리
- 생성 vs 판별
- 판별 (Discriminative Model) : pθ(y∣x)를 학습 → 분류/검출/세그멘테이션.
- 입력 xx가 주어졌을 때 라벨 yy 의 확률을 학습
- 사용 분야
- 분류 (classification)
- 객체 검출 (detection)
- 세그멘테이션 (segmentation)
- Logistic Regression
- CNN classifier
- 생성 (Generative Model) : pθ(x)를 학습 → 데이터 분포 자체를 모델링.
- 판별 (Discriminative Model) : pθ(y∣x)를 학습 → 분류/검출/세그멘테이션.
- MLE & Likelihood
- 생성 모델의 기본 목표는 데이터가 나올 “ Likelihood ”을 최대화하는 파라미터 θ를 찾는 것.
- 데이터가 생성될 확률이 가장 높아지도록 파라미터를 찾는다
- Likelihood는 확률분포가 아니라, 파라미터에 대한 함수.
- x : 고정된 데이터
- : 변수
- 명시적 vs 암묵적 생성 모델
- 명시적 (Explicit) : pθ(x를 수식으로 명시 (Gaussian, 오토리그레시브 LM, VAE, Diffusion 등).
- Tractable: 언어모델처럼 정확한 likelihood 계산 가능. (GPT)
- Approximate: Likelihood 계산 불가능 → 근사 , VAE, Diffusion처럼 ELBO/Variational로 근사.
- 암묵적 (Implicit) : GAN처럼 모델이 정의하는 분포를 수식으로 직접 쓰지 않음.
- 샘플 생성 과정만 학습 (GAN)
- 명시적 (Explicit) : pθ(x를 수식으로 명시 (Gaussian, 오토리그레시브 LM, VAE, Diffusion 등).
- GAN
- Generator vs Discriminator의 적대적 학습.
- Discriminator 정확도 ≈ 50%가 되면 Generator가 분포를 잘 흉내내고 있다고 볼 수 있음.
- Adversarial Loss 구조 자체가 핵심.
- VAE
- logpθ(x를 직접 최적화하기 어렵기 때문에 ELBO를 최대화.
- ELBO = 재구성 손실 + KL 정규화.
- Reparameterization Trick으로 샘플링 과정까지 미분 가능하게 만들어 backprop.
- Diffusion
- Forward: 데이터에 점점 노이즈 추가 → pure noise.
- Reverse: 노이즈에서 출발해 노이즈를 조금씩 지워가며 데이터를 복원하는 과정을 신경망이 학습.
- Variational 관점에서 유도하면, VAE와 비슷한 형태의 목적식(ELBO)이 나온다.
생성 모델링, 특히 VAE·Diffusion을 제대로 이해하려면:
-
- MLE, Likelihood, Bayes, Variational Inference, KL, Reparameterization 등을
연결해서 보는 관점이 필수.
- MLE, Likelihood, Bayes, Variational Inference, KL, Reparameterization 등을