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)으로 썼다. 그들은 SDE마다, 모든 시점에서 같은 주변분포(경로 전체가 아니라 한 시점 t의 xt만 모아 본 분포)를 주는 결정론적 ODE인 확률 플로우 ODE(probability flow ODE)가 하나씩 있음을 보였다. 플로우 매칭은 처음부터 이 ODE의 속도장(각 위치·시점에서 x가 움직일 방향과 시간당 움직이는 거리를 정해 주는 함수)을 학습하는 방법이다. 시각 생성 RL은 SDE와 확률 플로우 ODE의 대응을 거꾸로 써서, ODE로 학습된 모델에서 SDE를 만든다.
퍼뜨리고 되모으기: 노이즈를 넣어도 왜 분포가 그대로일까?
해법은 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). 노이즈는 분포를 퍼뜨리고, 스코어 쪽으로 미는 항은 확률이 높은 곳으로 되모은다. 둘이 맞비기므로 점 하나하나의 경로는 흔들리지만 분포는 평균 0, 분산 1 그대로 유지된다.
이 맞비김을 시간 전체로 적으면, 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이니까, 7을 빼고 견줘 볼게요. 앞 반 점수에서 7을 빼고 100배 하면 둘째 반 점수에서 7을 뺀 값들과 같은 모음이 돼요.
선생님
그럼 100배 하면 표준편차는 어떻게 되죠?
이서연
표준편차도 100배가 되니까, 나누면 몇 배 했는지가 지워져요. 표준점수는 차이가 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π(π는 정책)는 몇 종류죠? 그리고 어드밴티지 여덟 개를 더하면요?