Part III: 응용 — 이미지·영상·로보틱스·에이전틱 AI
왜 LLM 밖으로 나가야 하는가 — 로보틱스, 자율주행, 그리고 디퓨전
Part I–II에서 다룬 모든 것은 텍스트의 세계였다. 자기회귀 모델이 토큰을 하나씩 내놓고, 선호/비선호 쌍으로 마진을 벌리고, 검증기로 보상을 준다. 하지만 강화학습이 가장 절실한 곳은 텍스트가 아니다.
강화학습이 근본적으로 필요한 세 영역:
1. 로보틱스 — 로봇 팔이 물건을 집는다. 어떤 궤적으로?
→ "정답" 궤적이 하나가 아니다.
→ 왼쪽에서 접근할 수도, 위에서 접근할 수도, 돌아서 접근할 수도.
→ 이 다중 모드(multimodal) 행동 분포를 표현해야 한다.
2. 자율주행 — 교차로에서 좌회전한다. 어떤 경로로?
→ 빨리 꺾을 수도, 천천히 돌 수도, 보행자를 기다릴 수도.
→ 모든 모드가 "정답"이지만, 안전하지 않은 모드는 "비선호".
→ 행동 클로닝(SFT와 동치)만으로는 90%에서 정체한다.
나머지 10%가 사고다.
3. 이미지·영상 생성 — "석양 아래 고양이"를 그린다. 어떤 그림으로?
→ 수채화일 수도, 사진일 수도, 만화일 수도.
→ 인간이 선호하는 스타일로 정렬해야 한다.
이 세 영역의 공통점: **출력 공간이 연속적이고 다중 모드(multimodal)**이다.
LLM은 이산적 토큰을 하나씩 출력한다. 로봇 팔의 관절 각도, 자동차의 조향각, 이미지의 픽셀은 연속값이고, 가능한 출력이 하나가 아니라 여러 개의 모드로 퍼져 있다. 전통적인 회귀 모델(단일 평균을 예측)은 이 다중 모드를 표현하지 못한다 — 두 모드의 평균은 어느 모드에도 속하지 않는 위험한 중간값이 된다.
디퓨전 모델이 정확히 이 문제를 푼다.
왜 디퓨전 모델이 로보틱스/자율주행의 정책으로 부상했는가:
문제: π(action | state)가 다중 모드 분포
기존 정책 (가우시안): π = N(μ_θ(s), σ²)
→ 단일 모드만 표현 가능
→ 두 모드의 평균에 높은 확률 → 위험한 행동
디퓨전 정책: π = 디노이징 과정의 출력
→ 노이즈에서 시작 → 점진적으로 행동 생성
→ 자연스럽게 다중 모드 분포를 표현
→ 같은 상태에서 여러 번 샘플하면 서로 다른 유효한 행동이 나온다
이것이 Diffusion Policy (Chi et al., 2023)의 핵심 통찰이다. 로봇의 시각-운동 정책을 조건부 디노이징 과정으로 표현하면, 복잡한 조작 태스크에서 기존 방법을 압도하는 성능이 나온다. 이후 이 아이디어는 자율주행으로 확장되었다:
Diffusion Policy → 로보틱스 (조작, 내비게이션)
├── OneDP (ICLR 2025): 증류로 1스텝 생성 → 62Hz 실시간
└── 다양한 조작 태스크에서 SOTA
DiffusionDrive → 자율주행 (CVPR 2025 Highlight)
├── 절단된 디퓨전 정책 (Truncated Diffusion)
│ → 앵커 기반 가우시안에서 시작 → 디노이징 스텝 10배 감소
│ → 45 FPS 실시간 주행 가능
├── nuPlan/NAVSIM 벤치마크 SOTA (88.1 PDMS)
└── DiffusionDriveV2: GRPO를 자율주행 디퓨전 정책에 직접 적용
→ DeepSeek-R1의 성공에 영감받아
→ 행동 클로닝의 한계를 RL로 돌파
행동 클로닝(SFT) → RL의 필요성: 세 영역이 같은 벽에 부딪힌다
| 영역 | SFT에 해당하는 것 | 한계 | RL의 역할 |
|--------------|--------------------------|--------------------------|------------------------|
| LLM | SFT (인간 작성 답변 모방) | 90% 신뢰도에서 정체 | 음성 예제 + KL (Ch1) |
| 로보틱스 | 행동 클로닝 (시연 모방) | 분포 이동, OOD 실패 | 보상 기반 미세 조정 |
| 자율주행 | 인간 운전 모방 | 위험 상황 데이터 부족 | 시뮬레이터 내 RL 탐색 |
| 이미지 생성 | 노이즈 예측 학습 | 인간 선호 미반영 | DPO/GRPO로 정렬 |
→ fpgaminer가 말한 "SFT만으로는 Reliable Instruction Follower를 만들 수 없다"는
로보틱스에서는 "행동 클로닝만으로는 안전한 로봇을 만들 수 없다"이고,
자율주행에서는 "인간 운전 모방만으로는 사고를 막을 수 없다"이다.
이제 Part III의 질문이 명확해진다:
Part I–II에서 배운 DPO, GRPO, 마진, 레퍼런스, 희소 보상… 이 도구들을 이미지, 영상, 나아가 로보틱스와 자율주행에 적용하려면 어떤 요소를 고려해야 하고, 어떻게 적용하는가?
첫 번째 관문: LLM에서는
Chapter 14: 디퓨전에서 DPO를 쓰려면 — 로그확률의 벽
의문
Part I의 DPO를 이미지 생성(디퓨전 모델)에 적용하려면
핵심: 구할 수 없다 — 하지만 대리(proxy)가 있다
Ch1에서 DPO의 핵심을 배웠다: 선호 응답의
디퓨전 모델에서는 이것이 간단하지 않다. 왜?

정방향 디퓨전 과정: 원본 이미지에 가우시안 노이즈를 단계적으로 추가하여 순수 노이즈로 만든다. (MrAlanKoh, CC BY-SA 4.0, Wikimedia Commons)

역방향 디퓨전 과정: 학습된 모델이 노이즈를 단계적으로 제거하여 이미지를 복원한다. DPO/DDPO는 이 역방향 과정을 정렬하는 것이다. (MrAlanKoh, CC BY-SA 4.0, Wikimedia Commons)
LLM (자기회귀):
P(이미지|프롬프트) = P(토큰₁) × P(토큰₂|토큰₁) × P(토큰₃|토큰₁,₂) × ...
→ 각 항을 모델이 직접 출력한다. 곱하면 끝.
디퓨전:
P(이미지|프롬프트) = ∫ P(x₀, x₁, x₂, ..., x_T) dx₁ dx₂ ... dx_T
→ 모든 중간 상태(x₁부터 x_T까지)에 대해 적분해야 한다.
→ 이 적분은 해석적으로 풀 수 없다. 차원이 수만~수십만이니까.
완벽한 전체 적분은 어렵다. 하지만 한 스텝씩 뜯어보면 이야기가 달라진다. 어차피 현실의 이미지 모델은 몇단계의 스텝으로 나눠서 euler 같은 이산화된 샘플러를 사용하니 거기서 나온 값들을 활용하면 된다. 이제 그 원리를 알아보자
Diffusion-DPO — 각 스텝이 가우시안이라는 사실이 모든 것을 바꾼다
디퓨전의 순방향 과정은 원래 가우시안이다 — 각 스텝에서 가우시안 노이즈를 추가하니까. 그런데 수학적으로 중요한 사실이 있다: 스텝이 충분히 작으면, 역방향 과정도 가우시안에 가깝다. 순방향에서 아주 작은 노이즈를 추가했으면, 역방향에서 그것을 되돌리는 분포도 가우시안으로 잘 근사된다. 이것은 증명된 결과다 (Feller, 1949).
순방향 (노이즈 추가):
q(x_t | x_{t-1}) = N(x_t ; √(1-β_t) · x_{t-1}, β_t · I)
→ 매 스텝 가우시안 노이즈를 더한다. 당연히 가우시안.
역방향 (디노이징):
p(x_{t-1} | x_t) ≈ N(x_{t-1} ; μ, σ² · I)
→ 스텝이 작으면 순방향을 뒤집는 것도 가우시안에 가깝다.
→ 실제로는 스텝이 좀 더 듬성듬성해져도 어느 정도 통한다.
DDPM의 1000스텝 → DDIM의 50스텝 → 최근 4~8스텝까지
줄여도 이미지가 나오는 이유가 바로 이것이다.
각 디노이징 스텝이 가우시안이라면, 로그확률을 닫힌 형태(closed form)로 구할 수 있다. 가우시안의 로그확률은 중앙값(평균)과 분산만 알면 되니까.
가우시안 N(x; μ, σ²)의 로그확률:
log p(x) = -1/(2σ²) · ‖x - μ‖² + const
이 두 값을 구하는 법:
❶ 중앙값(평균) μ = μ_θ(x_t, t)
→ 모델이 현재 노이즈 낀 이미지 x_t를 보고 예측한 "한 스텝 전 상태"
→ 디노이징 네트워크의 출력이 곧 가우시안의 중앙값이다
❷ 분산 σ_t² → 타임스텝 스케줄에서 바로 읽으면 된다
→ t = T (디노이징 시작, 순수 노이즈): 분산 최대
→ t → 0 (디노이징 거의 완료): 분산 → 0
→ 모델이 학습할 필요 없이, 스케줄이 정해주는 값
직관:
디노이징 초반(t가 클 때): 노이즈투성이라 불확실성이 크다 → 분산 크다
디노이징 후반(t가 작을 때): 이미지가 거의 완성 → 분산 작다
→ 후반 스텝일수록 모델의 예측(μ_θ)이 정확해야 한다는 뜻
이제 디퓨전 모델의 DPO에 필요한 모든 재료가 갖춰졌다:
[Diffusion-DPO의 로그확률 계산]
같은 프롬프트에 대해 두 디노이징 경로를 기록한다:
선호 경로: x_T → x_{T-1}^w → ... → x_0^w (선호 이미지)
비선호 경로: x_T → x_{T-1}^l → ... → x_0^l (비선호 이미지)
각 경로의 매 스텝에서, 가우시안의 두 값만 있으면 로그확률이 나온다:
log p_θ(x_{t-1} | x_t) = -1/(2σ_t²) · ‖x_{t-1} - μ_θ(x_t, t)‖²
───────── ────────────
실제 도착점 모델의 예측
→ 도착점(x_{t-1})이 모델의 예측(μ_θ)에서 멀수록 로그확률이 낮다
→ 분산(σ_t²)이 작을수록(디노이징 후반) 같은 오차도 더 큰 벌점
전체 경로의 로그확률:
log π_θ(경로) = Σ_t log p_θ(x_{t-1} | x_t)
DPO 손실:
L = -log σ( β · [ (log π_θ(w) - log π_ref(w))
- (log π_θ(l) - log π_ref(l)) ] )
→ LLM DPO와 완전히 같은 구조!
"토큰별 로그확률의 합" → "타임스텝별 로그확률의 합"으로 바뀌었을 뿐.
이것이 Diffusion-DPO(Wallace et al., 2024)의 핵심이다:
Diffusion-DPO (D3PO) 알고리즘:
1. 선호/비선호 이미지 쌍을 준비한다
2. 각 이미지의 디노이징 경로를 DDIM inversion 등으로 복원한다
3. 매 타임스텝에서 가우시안 로그확률을 계산한다
→ 중앙값(μ_θ)과 분산(σ_t²)만 있으면 된다
4. 경로별 로그확률의 합으로 DPO 손실을 구한다
5. 레퍼런스 모델 = 학습 전 디퓨전 모델 (LLM DPO와 동일)
(참고: 실제 구현에서는
LLM ↔ 디퓨전 대응 (요약)
| LLM | 디퓨전 |
|---|---|
| 토큰별 |
타임스텝별 |
| 정확한 값 | 하한 (근사) |
| 긴 문장 → 합이 마이너스로 멀어짐 | 디테일 이미지 → 오차가 커짐 |
| 길이 편향 | 매끈함 편향 (디테일 페널티) |
마진의 역설 — Diffusion-SDPO (Fu et al., 2025)
Ch1에서 우리는 "마진을 벌려라"고 배웠다. 하지만 디퓨전 모델에서는 마진을 벌릴수록 오히려 품질이 나빠지는 병리가 발견되었다.
Diffusion-DPO의 문제:
마진을 벌리는 과정에서 loser(비선호) 이미지의 복원 오차가 급격히 커진다.
→ 여기까지는 의도된 동작 (비선호를 억제하니까).
하지만 loser의 오차가 과도하게 커지면:
→ winner(선호) 이미지의 복원 오차까지 함께 증가한다!
→ 마진은 넓어졌지만, 선호 이미지 품질은 오히려 나빠진다.
비유:
"나쁜 학생에게 벌을 너무 세게 주면, 교실 전체 분위기가 망가진다."
loser를 밀어내는 그래디언트가 winner까지 밀어낸다.
Diffusion-SDPO의 해결책:
핵심: loser 그래디언트를 winner 그래디언트와의 정렬도에 따라 적응적으로 스케일링
winner 그래디언트 방향 = g_w
loser 그래디언트 방향 = g_l
만약 g_l이 g_w와 같은 방향 → loser를 밀어내면 winner도 밀려남 → 스케일 ↓
만약 g_l이 g_w와 반대 방향 → loser를 밀어내도 winner는 안전 → 스케일 유지
→ 1차 분석으로 닫힌 형태의 스케일링 계수를 도출
→ winner의 복원 오차가 매 스텝에서 증가하지 않음을 보장
이 발견이 교재의 서사에서 중요한 이유:
Ch1: "마진을 벌려라" — LLM DPO의 핵심 원리
Ch4: "합이 공정하지 않다" — 길이 편향이라는 첫 번째 균열
Ch14: "마진을 벌릴수록 나빠진다" — 디퓨전에서의 두 번째 균열
→ 같은 원리(마진 극대화)가 도메인에 따라 다르게 깨진다.
→ LLM에서는 길이가 문제, 디퓨전에서는 winner-loser 그래디언트 간섭이 문제.
→ 각 도메인에 맞는 보정(SimPO, Diffusion-SDPO)이 필요하다.
시각화 계획
- LLM 토큰 시퀀스 ↔ 디퓨전 타임스텝 시퀀스 대응 다이어그램
- 선호 이미지(디테일) vs 비선호(밋밋)의 타임스텝별 오차 그래프
다음 장으로의 질문
D3PO는 DPO의 오프라인 방식을 디퓨전에 옮겼다. 그런데 LLM에서도 온라인/RL 방식이 효과적이었다. 디퓨전에서 직접 정책 그래디언트를 쓸 수 있는가?