Classifier-Free Guidance 논문 리뷰: 조건부 생성 모델의 핵심 기법 완전 정리

Updated Feb 6, 2026

Classifier-Free Guidance란 무엇인가

Classifier-Free Guidance(CFG)는 2022년 Jonathan Ho와 Tim Salimans가 발표한 논문 “Classifier-Free Diffusion Guidance”에서 제안된 기법이다. 이 방법은 별도의 분류기(classifier) 없이 조건부 생성의 품질을 크게 향상시키는 방식으로, 현재 Stable Diffusion, DALL-E, Imagen 등 거의 모든 최신 생성 모델에서 핵심 구성요소로 사용되고 있다.

핵심 아이디어: 하나의 모델이 조건부(conditional)와 비조건부(unconditional) 생성을 동시에 학습하고, 추론 시 두 결과의 차이를 증폭시켜 조건 충실도를 높인다.

배경: Classifier Guidance의 한계

기존 Classifier Guidance 방식

CFG 이전에는 Classifier Guidance 방식이 사용되었다. 이 방식은 사전 학습된 분류기 pϕ(yxt)p_\phi(y|x_t)의 그래디언트를 활용하여 생성 방향을 유도한다.

ϵ^<em>θ(xt,y)=ϵ</em>θ(xt)sσtxtlogpϕ(yxt)\hat{\epsilon}<em>\theta(x_t, y) = \epsilon</em>\theta(x_t) – s \cdot \sigma_t \nabla_{x_t} \log p_\phi(y|x_t)

여기서 각 항의 의미는 다음과 같다:

  • ϵθ(xt)\epsilon_\theta(x_t): 노이즈 예측 모델의 출력
  • ss: guidance scale (조건 강도 조절)
  • σt\sigma_t: 시간 단계 tt에서의 노이즈 스케줄
  • xtlogpϕ(yxt)\nabla_{x_t} \log p_\phi(y|x_t): 분류기의 로그 확률에 대한 그래디언트

Classifier Guidance의 문제점

문제점 설명
추가 모델 필요 노이즈가 섞인 데이터에서 동작하는 별도 분류기를 학습해야 함
학습 비용 증가 디퓨전 모델과 분류기를 각각 학습·관리해야 함
적대적 취약성 분류기 그래디언트가 적대적 방향으로 유도될 수 있음
확장성 제한 새로운 조건(텍스트, 레이아웃 등)마다 분류기를 새로 만들어야 함

Classifier-Free Guidance의 핵심 원리

학습 단계

CFG는 하나의 모델로 조건부와 비조건부 생성을 모두 학습한다. 학습 중 일정 확률 puncondp_{\text{uncond}}로 조건 정보 yy를 빈 값(null token \varnothing)으로 대체한다.

ytrain={yamp;확률 1puncond amp;확률 puncondy_{\text{train}} = \begin{cases} y &amp; \text{확률 } 1 – p_{\text{uncond}} \ \varnothing &amp; \text{확률 } p_{\text{uncond}} \end{cases}

논문에서는 puncond=0.10.2p_{\text{uncond}} = 0.1 \sim 0.2 정도가 효과적이라고 보고한다. 이 단순한 드롭아웃만으로 모델은 조건부 분포 p(xy)p(x|y)와 비조건부 분포 p(x)p(x)동시에 학습하게 된다.

추론 단계

추론 시 조건부 예측과 비조건부 예측을 결합하여 최종 노이즈 예측값을 구한다.

ϵ^<em>θ(xt,y)=ϵ</em>θ(xt,)+w(ϵθ(xt,y)ϵθ(xt,))\hat{\epsilon}<em>\theta(x_t, y) = \epsilon</em>\theta(x_t, \varnothing) + w \cdot \big(\epsilon_\theta(x_t, y) – \epsilon_\theta(x_t, \varnothing)\big)

각 항을 해석하면:

  • ϵθ(xt,)\epsilon_\theta(x_t, \varnothing): 비조건부 노이즈 예측 — 조건 없이 자유롭게 생성하는 방향
  • ϵθ(xt,y)\epsilon_\theta(x_t, y): 조건부 노이즈 예측 — 조건 yy를 반영한 생성 방향
  • ϵθ(xt,y)ϵθ(xt,)\epsilon_\theta(x_t, y) – \epsilon_\theta(x_t, \varnothing): 조건이 만드는 차이 — 조건이 생성에 미치는 순수 영향
  • ww: guidance scale — 이 차이를 얼마나 증폭할지 결정하는 하이퍼파라미터

w=1w = 1이면 일반적인 조건부 생성과 동일하고, w &gt; 1이면 조건에 더 충실한 결과를, w=0w = 0이면 완전한 비조건부 생성을 수행한다.

Guidance Scale에 따른 변화

guidance scale ww 효과 특성
0 비조건부 생성 조건 무시, 다양성 최대
1 표준 조건부 생성 학습 분포 그대로 샘플링
3~5 적당한 강조 품질과 다양성 균형
7~15 강한 조건 충실도 실무에서 가장 많이 사용
20+ 과도한 강조 채도 과포화, 아티팩트 발생

수학적 직관: 왜 작동하는가

CFG의 수식을 베이즈 관점에서 재해석하면 그 원리가 명확해진다. 스코어 함수(score function)로 표현하면:

xtlogpw(xty)=xtlogp(xt)+wxtlogp(yxt)\nabla_{x_t} \log p_w(x_t|y) = \nabla_{x_t} \log p(x_t) + w \cdot \nabla_{x_t} \log p(y|x_t)

이는 곧 암묵적 분류기의 그래디언트를 ww배 증폭시키는 것과 동일하다. 즉, CFG는 별도의 분류기를 명시적으로 학습하지 않으면서도, 모델 내부에서 조건부와 비조건부 예측의 차이를 통해 분류기 역할을 수행하는 것이다.

실무 활용 예시

Stable Diffusion에서의 CFG 적용

import torch
from diffusers import StableDiffusionPipeline

pipe = StableDiffusionPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5",
    torch_dtype=torch.float16
).to("cuda")

# guidance_scale이 바로 CFG의 w 값
image = pipe(
    prompt="a photorealistic cat sitting on a windowsill at sunset",
    guidance_scale=7.5,      # CFG scale
    num_inference_steps=50,
    negative_prompt="blurry, low quality, distorted"
).images[0]

위 코드에서 guidance_scale=7.5는 CFG 수식의 ww 값에 해당한다. negative_prompt는 비조건부 예측 대신 부정 조건을 넣어 원하지 않는 특성을 더 적극적으로 배제하는 기법이다.

Negative Prompt와의 관계

Negative prompt는 CFG의 확장으로, 비조건부 예측 ϵθ(xt,)\epsilon_\theta(x_t, \varnothing) 자리에 부정 프롬프트의 예측 ϵθ(xt,yneg)\epsilon_\theta(x_t, y_{\text{neg}})를 대입한다.

ϵ^=ϵθ(xt,yneg)+w(ϵθ(xt,ypos)ϵθ(xt,yneg))\hat{\epsilon} = \epsilon_\theta(x_t, y_{\text{neg}}) + w \cdot \big(\epsilon_\theta(x_t, y_{\text{pos}}) – \epsilon_\theta(x_t, y_{\text{neg}})\big)

이를 통해 “흐릿한”, “저품질” 같은 특성을 적극적으로 회피하면서 원하는 조건을 강화할 수 있다.

논문의 주요 실험 결과

논문에서는 ImageNet 클래스 조건부 생성으로 실험하며, 다음 결과를 보고했다:

지표 Classifier Guidance Classifier-Free Guidance
FID (↓) 비슷한 수준 비슷한 수준
IS (↑) 높음 동등 이상
추가 모델 필요 (분류기) 불필요
학습 복잡도 높음 낮음
다양성-충실도 트레이드오프 ss로 조절 ww로 조절

핵심 발견은 CFG가 분류기 없이도 동등하거나 더 나은 FID-IS 트레이드오프를 달성한다는 점이다.

Classifier-Free Guidance의 영향과 후속 연구

CFG는 이후 생성 모델 생태계 전반에 걸쳐 표준 기법으로 자리 잡았다:

  • Stable Diffusion / SDXL: 기본 guidance scale 7.5~9.0 사용
  • DALL-E 2/3: CFG 기반 텍스트-이미지 생성
  • Imagen: 높은 guidance scale(w20w \approx 20)과 dynamic thresholding 결합
  • 음악/오디오 생성: MusicGen 등에서 동일한 원리 적용
  • 비디오 생성: Sora 등 최신 비디오 모델에서도 활용

마무리

Classifier-Free Guidance는 단순하지만 강력한 아이디어다. 핵심을 정리하면:

  1. 별도 분류기 불필요: 하나의 모델로 조건부와 비조건부 생성을 동시에 학습한다
  2. 학습 방법이 단순: 조건 정보를 일정 확률로 드롭아웃하는 것만으로 구현된다
  3. 추론 시 guidance scale ww로 품질-다양성 트레이드오프를 유연하게 조절할 수 있다
  4. 사실상 업계 표준: Stable Diffusion부터 Sora까지 거의 모든 최신 생성 모델이 채택하고 있다

생성 모델을 다루는 실무자라면 CFG의 원리를 정확히 이해하는 것이 필수적이다. guidance scale 조절 하나로 생성 결과의 품질이 극적으로 달라지기 때문이다.

Did you find this helpful?

☕ Buy me a coffee

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

TODAY 396 | TOTAL 2,619