AI · Deep Learning · Computer Vision · 생성형 AI

생성모델과 데이터 분포부터 시작하기

2026-08-01 · 수정 2026-08-01 · Hyeongrok Ryu

판별모델과 생성모델을 비교하고 Tensor shape와 데이터 시각화를 먼저 확인한 기록.

Series
2025 생성모델 집중과정 · 1
유형 / 난이도
study-note · beginner
Tools
Python, PyTorch, Matplotlib
01처음 던진 질문

이 글에서 순서대로 다시 확인하는 학습 포인트입니다.

02분포를 배운다는 뜻

이 글에서 순서대로 다시 확인하는 학습 포인트입니다.

03Tensor shape 확인

이 글에서 순서대로 다시 확인하는 학습 포인트입니다.

04데이터부터 그리기

이 글에서 순서대로 다시 확인하는 학습 포인트입니다.

이 글의 목차에서 자동으로 만든 개념 흐름도입니다.

처음 던진 질문

먼저 “생성한다”는 말을 이미지 합성으로만 보지 않았다. 관측한 (x)의 분포를 근사하고 그 분포에서 새 표본을 뽑는 문제로 바꿔 적었다.

데이터, 분포 학습, 모델과 샘플을 연결한 생성모델 흐름
데이터를 외우는 표가 아니라 확률분포를 근사하는 흐름으로 다시 그렸다.

분포를 배운다는 뜻

분류는 (p(y x))를, 생성은 (p(x)) 또는 (p(x,y))를 주로 본다. 이 관점을 잡고 나니 Autoregressive Model은 조건부확률의 곱, VAE는 latent variable, GAN은 두 네트워크의 게임, Diffusion은 noise를 거꾸로 지우는 과정으로 비교할 수 있었다.

Tensor shape 확인

Notebook을 실행했을 때 입력 Tensor가 (N, C, H, W)인지 먼저 출력했다. flatten 뒤 feature 수가 Linear layer의 입력과 맞지 않으면 바로 수정했다. broadcast가 조용히 적용되는 연산은 loss가 계산돼도 의미가 틀릴 수 있었다.

데이터부터 그리기

class balance, 값의 범위, 결측치, 중복 표본을 train 전에 살폈다. normalization 통계는 split 뒤 training set에서만 계산했다. 모델 선택보다 데이터 누수 방지가 먼저라는 점은 P1 수어 분류를 다시 해석할 때 특히 중요했다.

다음 연결

고차원 (p(x))를 직접 쓰기 어렵다는 문제가 남았다. 다음 글에서는 joint probability를 조건부확률의 곱으로 나누고 Maximum Likelihood를 loss로 바꾸는 과정을 이어서 정리한다.

사용한 자료

논문 첫 페이지 미리보기