본문으로 건너뛰기
#image-denoising#variational-autoencoder#diffusion-model#classifier-free-guidance#score-matching

현대 인공지능 VII — 영상 잡음제거·VAE·확산모델

MMSE와 비선형 필터에서 VAE의 ELBO, 재매개변수화, DDPM의 순방향·역방향 확산으로 이어진다.

Series map

현대 인공지능 · 8편 학습 지도

기초 수학에서 생성·표현학습까지 이어지는 8편 학습 경로. 빈 번호나 자리 채우기용 글 없이, 실제 확보된 강의자료를 여덟 단계로 연결한다.

7 / 8
  1. 기초 게시됨 AI·ML·DL에서 확률·최적화까지 AI·ML·DL의 관계, 선형대수, 확률변수, 가우시안 모델, WSS, 손실함수와 경사하강법을 연결한다.
  2. 학습 문제 게시됨 머신러닝의 기본 과제와 일반화 분류·회귀·밀도추정에서 과적합, 정규화, 검증, SVM, Bayes 분류와 차원의 저주까지 다룬다.
  3. 신경망 게시됨 퍼셉트론·MLP·CNN과 컨볼루션 선형 판별기에서 다층 퍼셉트론으로 확장하고, 1D·2D 컨볼루션과 CNN의 계산 구조를 정리한다.
  4. 최적화 게시됨 기울기 기반 최적화: GD에서 OGM까지 Lipschitz 연속성, GD·PSD·PGD·FGM과 최적화된 기울기 방법 OGM의 수렴 구조를 비교한다.
  5. 영상 분류 게시됨 이미지 분류의 발전: AlexNet에서 SE Network까지 AlexNet, VGG, GoogLeNet, ResNet, WRN, DenseNet과 채널 재가중 SE Network의 발전을 추적한다.
  6. 픽셀 이해 게시됨 의미론적 영상 분할: FCN·U-Net·DeepLab 픽셀 단위 예측, encoder-decoder, skip connection, dilated convolution과 다중 스케일 분할을 다룬다.
  7. 생성·복원 읽는 중 영상 잡음제거·VAE·확산모델 MMSE와 비선형 필터에서 VAE의 ELBO, 재매개변수화, DDPM의 순방향·역방향 확산으로 이어진다.
  8. 표현학습 게시됨 대조 표현학습: InfoNCE·SimCLR·BYOL·CLIP 양성·음성 쌍, InfoNCE, augmentation, memory bank, SimCLR·BYOL과 이미지-언어 CLIP을 연결한다.
게시된 편만 링크로 연결된다. 후속 PDF의 내용을 담은 글이 공개되면 같은 위치가 자동으로 활성화되며, 빈 게시물은 만들지 않는다.

영상 잡음제거와 생성모델은 멀리 떨어진 주제처럼 보인다. 그러나 둘 다 관측된 noisy sample에서 데이터 분포의 방향을 추정한다는 공통 구조를 가진다. 선형 MMSE와 median filter에서 출발해 latent variable, VAE, DDPM, score-based model까지 이어가면 확산모델의 denoiser가 왜 핵심인지 자연스럽게 보인다.

#7.1 잡음제거를 추정 문제로 보기

깨끗한 영상 x에 잡음이 더해져 y를 관측했다고 하자. 복원기 fy 또는 주변 patch z로부터 를 만든다. 평균제곱오차를 최소화하는 추정량이 MMSE estimator다.

잡음제거는 관측으로부터 깨끗한 신호를 추정하는 문제

선형 MMSE는 주변 patch의 가중합을, median filter는 window 안 절대편차를 최소화하는 값을 사용한다.

Minimum mean-square error
x^MMSE=argminx^E ⁣[xx^22]\hat x_{\mathrm{MMSE}}=\arg\min_{\hat x}\,\mathbb{E}\!\left[\lVert x-\hat x\rVert_2^2\right]

선형 복원기 x̂ = θᵀz를 쓰면 학습 patch에서 least squares 문제를 풀 수 있고, covariance와 cross-correlation으로 쓴 해가 Wiener filter 형태가 된다.

Linear MMSE coefficients
θ=Rzz1rzx\theta^*=R_{zz}^{-1}r_{zx}

선형성 제약을 없애고 모든 함수 가운데 squared error를 최소화하면 조건부 평균이 나온다.

Minimum HVSE estimate
x^=E[xy]\hat x=\mathbb{E}[x\mid y]

이 식은 현대 denoiser가 결국 “주어진 noisy observation에서 clean signal의 조건부 평균 또는 그와 연결된 quantity를 학습한다”는 출발점이다.

#7.2 impulse noise에는 왜 median이 강한가

moving average는 Gaussian noise를 줄이지만 edge를 흐릴 수 있고, 소수의 매우 큰 impulse에 끌린다. median filter는 window 값을 정렬해 가운데 값을 선택하므로 outlier에 훨씬 덜 민감하다. 최적화 관점에서는 절대편차 합의 최소화값이다.

Median as an L1 minimizer
median(W)=argminθiWyiθ\operatorname{median}(W)=\arg\min_{\theta}\sum_{i\in W}|y_i-\theta|

weighted median은 각 표본을 weight만큼 복제해 정렬하는 해석을 가진다. 어떤 filter가 좋은지는 잡음 종류와 보존해야 할 구조에 달려 있다. MSE·NRMSE·SNR·PSNR도 한 숫자로 모든 품질을 설명하지 못한다.

Peak signal-to-noise ratio
PSNR=10log10 ⁣(L2MSE)\operatorname{PSNR}=10\log_{10}\!\left(\frac{L^2}{\operatorname{MSE}}\right)

PSNR은 같은 dynamic range에서 비교할 때 편리하지만 perceptual quality나 downstream usefulness를 보장하지 않는다. 특히 생성형 복원은 픽셀 오차를 낮추면서도 세부 질감을 과도하게 평탄화할 수 있다.

#7.3 discriminative model과 generative model

discriminative model은 보통 p(y | x) 또는 decision boundary를 직접 학습한다. generative model은 p(x), p(x, y), 혹은 sample을 생성하는 process를 모델링한다. density를 명시적으로 계산할 수 있는지에 따라 explicit와 implicit model로도 나뉜다.

latent-variable model은 관측하기 어려운 저차원 변수 z가 데이터 x를 만든다고 가정한다. 생성은 p(z) → pθ(x | z), 추론은 x → pθ(z | x) 방향이다. 문제는 posterior가 대개 직접 계산하기 어렵다는 점이다.

#7.4 VAE: 계산하기 어려운 posterior를 학습 가능한 근사로

VAEpθ(z | x)qφ(z | x)로 근사하고, log-likelihood의 lower bound인 ELBO를 최대화한다.

VAE: 추론 경로와 생성 경로를 함께 학습

encoder가 qφ(z|x)의 평균과 분산을 만들고, 재매개변수화로 z를 뽑아 decoder가 pθ(x|z)를 복원한다.

Evidence lower bound
logpθ(x)Eqϕ(zx)[logpθ(xz)]DKL ⁣(qϕ(zx)p(z))\log p_\theta(x)\ge \mathbb{E}_{q_\phi(z\mid x)}[\log p_\theta(x\mid z)]-D_{\mathrm{KL}}\!\left(q_\phi(z\mid x)\,\|\,p(z)\right)

첫 항은 latent에서 입력을 잘 복원하게 하고, KL 항은 approximate posterior가 prior에서 너무 멀어지지 않게 한다. KL 가중치가 지나치게 크면 decoder가 z를 무시하는 posterior collapse가 생길 수 있고, 작으면 latent space가 불규칙해져 sampling이 어려워진다.

sampling은 미분할 수 없어 보이지만, Gaussian의 randomness를 별도 noise ε으로 분리하면 gradient를 μσ에 전달할 수 있다.

Reparameterization trick
z=μϕ(x)+σϕ(x)ϵ,ϵN(0,I)z=\mu_\phi(x)+\sigma_\phi(x)\odot\epsilon,\qquad \epsilon\sim\mathcal{N}(0,I)

VAE의 중요한 교훈은 “생성 process와 inference network를 하나의 differentiable objective로 묶는 법”이다. 다만 pixel likelihood는 평균적인 복원에 유리해 결과가 부드러워질 수 있다.

#7.5 diffusion: 쉬운 파괴 과정과 학습된 복원 과정

DDPM은 데이터에 작은 Gaussian noise를 여러 번 더하는 forward Markov chain을 정의한다. 충분히 긴 T 뒤에는 거의 표준 Gaussian이 된다.

확산모델의 두 방향

forward process는 작은 Gaussian noise를 누적하고, reverse process는 시간 t가 주어진 denoiser로 noise를 단계적으로 제거한다.

Forward diffusion transition
q(xtxt1)=N ⁣(xt;1βtxt1,βtI)q(x_t\mid x_{t-1})=\mathcal{N}\!\left(x_t;\sqrt{1-\beta_t}\,x_{t-1},\beta_t I\right)

αt = 1 − βt, ᾱt = α1⋯αt로 두면 임의의 timestep으로 한 번에 이동할 수 있다.

Closed-form noising
xt=αˉtx0+1αˉtϵx_t=\sqrt{\bar\alpha_t}\,x_0+\sqrt{1-\bar\alpha_t}\,\epsilon

reverse process의 정확한 posterior는 모르므로 neural network가 pθ(xₜ₋₁ | xₜ)를 근사한다. 실제 학습에서는 variational bound가 noise prediction MSE로 단순화된다.

Noise-prediction objective
Lsimple=Ex0,t,ϵ ⁣[ϵϵθ(xt,t)22]\mathcal{L}_{\mathrm{simple}}=\mathbb{E}_{x_0,t,\epsilon}\!\left[\lVert\epsilon-\epsilon_\theta(x_t,t)\rVert_2^2\right]

network는 noisy sample xₜ와 timestep t를 받아 그 안에 섞인 noise를 예측한다. U-Net이 널리 쓰이는 이유는 여러 해상도의 spatial feature를 결합하기 좋고, timestep embedding과 attention을 각 block에 주입하기 쉽기 때문이다.

#7.6 조건을 주고 생성 방향을 조절하기

class label, text, low-resolution image 같은 조건 c를 denoiser에 넣으면 conditional diffusion이 된다. classifier guidance는 별도 classifier의 gradient를 쓰지만, classifier-free guidance(CFG)는 같은 network를 조건부·무조건 모드로 함께 학습한다.

classifier-free guidance의 방향 벡터

조건부 noise 예측과 무조건 예측의 차이를 키워 prompt 일치도를 높인다. guidance가 커질수록 충실도와 다양성의 균형이 달라진다.

Classifier-free guidance
ϵ~θ(xt,c)=ϵθ(xt,)+w[ϵθ(xt,c)ϵθ(xt,)]\tilde\epsilon_\theta(x_t,c)=\epsilon_\theta(x_t,\varnothing)+w\left[\epsilon_\theta(x_t,c)-\epsilon_\theta(x_t,\varnothing)\right]

guidance scale w가 커지면 조건 일치가 강해지는 대신 다양성이 줄고 artifact가 커질 수 있다. CFG는 quality knob이지 “클수록 좋은” 정확도 파라미터가 아니다. 원 논문이 강조한 것도 조건부와 무조건 score estimate의 결합을 통한 fidelity–diversity trade-off다.

#7.7 pixel space를 벗어나기: latent diffusion

고해상도 pixel space의 U-Net은 계산량과 memory가 크다. Latent Diffusion Models은 pretrained autoencoder로 이미지를 압축하고 latent에서 diffusion을 수행한다.

latent diffusion: 압축 공간에서 확산하기

고해상도 pixel 전체가 아니라 autoencoder의 latent에서 denoising하고, 마지막에 decoder로 복원해 계산량을 줄인다.

Latent diffusion path
z=E(x),x^=D(z^0)z=E(x),\qquad \hat x=D(\hat z_0)

압축률이 높으면 빠르지만 작은 글자나 세밀한 texture가 손실될 수 있다. cross-attention은 text token을 U-Net feature와 결합해 prompt conditioning을 가능하게 한다. 따라서 결과 품질은 denoiser뿐 아니라 autoencoder의 reconstruction ceiling에도 제한된다.

#7.8 score matching과 SDE로 통합해 보기

noise prediction은 noisy density의 score, 즉 log-density gradient를 추정하는 문제와 연결된다.

Score-matching target
sθ(xt,t)xtlogpt(xt)s_\theta(x_t,t)\approx\nabla_{x_t}\log p_t(x_t)

score는 density 정규화상수를 몰라도 데이터가 더 많은 방향을 알려준다. Langevin dynamics는 score 방향의 drift와 Gaussian noise를 섞어 sample을 이동시킨다. 연속시간으로 보내면 forward diffusion을 stochastic differential equation(SDE)으로 쓸 수 있다.

Forward stochastic differential equation
dx=f(x,t)dt+g(t)dWtdx=f(x,t)\,dt+g(t)\,dW_t

Score-SDE는 forward SDE와 reverse-time SDE를 연결한다. DDPM, denoising score matching, Langevin sampling이 서로 다른 발명이라기보다 같은 확률 흐름을 이산·연속 관점에서 본 것임을 보여준다.

#7.9 한 번에 연결하기

  1. MMSE는 noisy observation에서 clean signal의 조건부 평균을 찾는다.
  2. VAE는 intractable posterior를 근사해 latent generation을 학습한다.
  3. diffusion은 데이터를 Gaussian으로 보내는 쉬운 forward process를 설계한다.
  4. denoiser는 각 noise level에서 reverse direction을 학습한다.
  5. CFG는 조건 방향을 증폭하고, LDM은 계산을 압축 latent로 옮긴다.

이 흐름에서 생성은 갑자기 등장하지 않는다. 복원 가능한 정도로 정보를 망가뜨리고, 그 역방향을 학습한다는 생각이 고전 필터에서 현대 확산모델까지 이어진다.

Connect