DDPO는 스텝마다 노이즈가 섞이는 확률적 샘플러를 전제했다. 스텝이 가우시안이어야 로그확률이 있고, 노이즈가 있어야 탐색이 있다. 그런데 FLUX, Stable Diffusion 3 같은 최신 모델은 흐름 매칭(flow matching, rectified flow)으로 학습되어 결정론적 ODE(상미분방정식 — 시작점이 정해지면 경로가 하나로 정해진다)로 샘플링한다. 스텝 노이즈가 없다. 같은 시작 노이즈에서 G장을 뽑으면 G장이 똑같이 나온다.
역사: 같은 주변분포를 주는 ODE와 SDE
2021년 양 송(Yang Song) 등은 「Score-Based Generative Modeling through Stochastic Differential Equations」(ICLR 2021)에서 디퓨전을 확률미분방정식(SDE)으로 쓰고, 모든 시점에서 같은 주변분포(경로 전체가 아니라 한 시점 t의 xt만 모아 본 분포)를 주는 결정론적 ODE — 확률 흐름 ODE(probability flow ODE) — 가 짝으로 있음을 보였다. 흐름 매칭은 처음부터 ODE의 속도장(각 위치·시점에서 x가 움직일 방향과 빠르기를 정해 주는 함수)을 학습하는 쪽이다. 시각 생성 RL은 이 짝을 반대 방향으로 쓴다.
퍼뜨리고 되모으기: 노이즈를 넣어도 분포가 그대로인 까닭
해법은 ODE에 노이즈를 더하되, 노이즈가 퍼뜨린 만큼을 되모으는 항을 함께 넣는 것이다. 숫자로 한 스텝만 보자. 어느 시점의 분포가 평균 0, 분산 1인 정규분포이고, 흐름은 잠시 멈춰 있다고 하자(속도 0). 여기에 분산 0.1짜리 노이즈를 더하기만 하면 분산은 1.1로 퍼진다. 그래서 노이즈를 더하기 전에 모든 점을 분포의 가운데 쪽으로 5%씩 당긴다. 확률이 높은 쪽으로 미는 방향, 곧 스코어 함수(score, 로그 밀도의 기울기)의 방향이다. 당기면 분산이 0.952=0.9025로 좁아지고, 노이즈 0.1을 더하면 0.9025+0.1=1.0025, 거의 처음의 1로 돌아온다. 남는 0.0025는 스텝을 잘게 나눌수록 사라진다(노이즈 분산을 0.01로 줄이면 0.000025). 노이즈는 분포를 퍼뜨리고, 스코어 쪽으로 미는 항은 확률이 높은 곳으로 되모은다. 둘이 맞비기므로 점 하나하나의 경로는 흔들리지만 분포는 그대로다.
이 맞비김을 시간 전체로 적으면, ODE dx=vdt에 노이즈 gdW를 더하고 그만큼 dt 항(드리프트 항)을 스코어 함수 ∇logpt 방향으로 보정한 SDE가 된다. 여기서 dx, dt, dW는 곱이 아니라 각각 「아주 짧은 시간 동안 x가 변한 양」, 「그 짧은 시간」, 「그동안 더해진 무작위 흔들림」을 뜻하는 한 덩어리 이름이고, ∇는 기울기를 뜻한다. 이 SDE는 모든 시점의 주변분포가 ODE와 똑같다.
dx=[vθ(x,t)+2gt2∇logpt(x)]dt+gtdWxvθ∇logpt(x)gtdW생성중인이미지 (노이즈에서출발해그림이된다)학습중인모델의속도장 (흐름을미는방향. θ는모델의파라미터)시점 t 분포의스코어 (속도장에서계산된다)넣는노이즈의크기브라운운동의작은증분 (무작위성)
위 숫자 예에서 「5%씩 당긴다」가 2gt2∇logptdt 항이다. 분산 1인 정규분포의 스코어는 −x이고, 노이즈 분산 gt2dt=0.1의 절반인 0.05를 곱하면 −0.05x, 곧 5% 당김이 된다.
흐름 매칭 모델에서는 스코어 함수를 속도장 vθ로부터 바로 계산할 수 있어서, 별도 모델 없이 이 변환이 가능하다. 이 SDE를 오일러-마루야마 방식(작은 시간 간격마다 dt 항을 더하고 정규분포 노이즈를 한 번 뽑아 더하는 계산)으로 잘게 나누면 각 스텝이 다시 가우시안 정책이 된다 — 로그확률과 탐색이 함께 돌아온다.
문제 2 — 복사한 답안 여덟 장의 표준점수
논술 모의고사에서 한 학생이 같은 답안을 여덟 장 복사해 냈다. 채점자는 매번 조금씩 다르게 매겨 7.02, 6.98, 7.01, 6.99, 7.00, 7.03, 6.97, 7.00점을 주었다. (가) 여덟 장의 표준점수(점수에서 평균을 빼고 표준편차로 나눈 값)를 구하시오. (나) 다른 반에서는 여덟 학생이 각자 쓴 답안이 9, 5, 7, 6, 8, 7, 4, 10점을 받았다. 이 반의 표준점수와 견주면 무엇을 알 수 있는가? (다) 채점자가 여덟 장에 똑같이 7.00점을 주었다면?
(나)를 해 보면 더 이상해요. 9, 5, 7, 6, 8, 7, 4, 10은 표준편차가 1.87인데, 표준점수가 ±1.6, ±1.07, ±0.53, 0, 0이에요. 앞 반과 똑같은 숫자 모음이에요.
선생님
왜 똑같이 나왔을까요?
이서연
앞 반 점수에서 7을 빼고 100배 하면 둘째 반 점수에서 7을 뺀 값들과 같은 모음이 돼요. 표준편차로 나누면 몇 배 했는지가 지워지고요. 표준점수는 차이가 0.02점이든 2점이든 늘 같은 크기로 맞춰 버려요.
김민준
그러면 표준점수만 보고는 채점자의 잡음인지 진짜 실력 차인지 모르네요.
선생님
(다)는요?
김민준
표준편차가 0이라 0으로 나누게 돼요. 분모에 아주 작은 수를 더해 두면 표준점수가 전부 0이고요.
이서연
수학 시간에 단위를 바꿔도 상관계수는 그대로라고 배웠는데, 여기서는 그게 약점이 되네요. 잡음까지 실제 차이와 같은 크기로 맞춰 주니까요.
정리 (가) 평균 7.00, 표준편차 약 0.019, 표준점수 ±1.6, ±1.07, ±0.53, 0, 0. (나) 실력 차가 나는 반과 표준점수 모음이 똑같다. 표준점수는 차이의 크기를 지우므로 잡음도 실제 차이와 같은 크기로 부풀린다. (다) 표준편차가 0이라 나눌 수 없고, 분모에 작은 수를 더하면 표준점수는 전부 0이다.
문제 3 — ODE 그룹의 어드밴티지
흐름 매칭 모델을 ODE로 샘플링하면서 GRPO를 쓰면, 같은 프롬프트·같은 시작 노이즈의 그룹 8개에 대한 어드밴티지(평균보다 얼마나 나은가) A^i=(ri−μ)/σ는 어떻게 되는가? (μ는 그룹 평균, σ는 그룹 표준편차)
김민준
8개가 전부 같은 이미지니까 보상도 같고, μ=r, σ=0. 어드밴티지는 0/0이에요.
이서연
구현에서는 보통 분모에 작은 ε를 더하니까 0/ε = 0. 학습 신호(시그널)가 없어.
김민준
그래도 아까 복사한 답안처럼, 보상 모델이 GPU 비결정성 때문에 소수점 아래 잡음을 조금 내면 σ가 0이 아니니까 어드밴티지가 ±1 크기로 부풀려지잖아요. 뭔가 배우긴 하겠죠?
선생님
민준 학생, 여덟 개가 전부 같은 경로라면 ∇logπ(π는 정책)는 몇 종류죠? 그리고 어드밴티지 여덟 개를 더하면요?