진자와 용수철에는 위치에너지가 있었다. 그런데 이 장 첫머리의 생성 모델처럼 출발점과 도착점만 정해 두고 그 사이를 어떻게 지날지 고르는 문제에는 길을 끌어당기는 힘이 따로 없다. 위치에너지가 아예 없으면 작용이 가장 작은 경로는 어떤 모양일까? 가장 짧은 길인 직선이라고 답하고 싶지만, 구조요원 문제에서 보았듯이 가장 짧은 길이 늘 답은 아니다.
자유 입자
위치에너지가 없는 입자의 라그랑지안과 오일러–라그랑주 방정식은 다음과 같다.
L=21∣x˙∣2⇒x¨=0
Lx˙x¨라그랑지안 (질량 1인자유입자)속도가속도
가속도가 0이므로 양 끝이 정해진 경로 가운데 작용이 가장 작은 것은 등속 직선 (속도가 변하지 않는 곧은 운동, uniform rectilinear motion)이다.
분포 전체를 옮기는 문제도 같은 답에 닿는다. 이 문제는 1781년 몽주의 논문 「파낸 흙과 메울 흙의 이론」에서 처음 수학 문제로 적혔다. 군사 공병 학교에서 일하던 몽주가 다룬 것은 한곳에서 파낸 흙을 다른 곳의 구덩이로 옮기는 공사였다. 가장 작은 예로 확인해 보자. 위치 0과 1에 흙이 반씩 쌓여 있고, 이것을 위치 2와 3의 구덩이로 옮긴다. 옮기는 비용을 "흙의 양 × 옮긴 거리의 제곱"의 합으로 재면, 0 → 2와 1 → 3으로 짝지을 때 ½ × 4 + ½ × 4 = 4이고, 0 → 3과 1 → 2로 엇갈리게 짝지으면 ½ × 9 + ½ × 1 = 5다. 이렇게 가장 싼 짝짓기를 찾는 문제를 최적 수송(optimal transport, 줄여서 OT)이라 하고, 가장 싼 비용을 W₂²으로 쓴다. W는 바서슈타인(Wasserstein) 거리의 머리글자로 경우의 수 W와 무관하다. 아래첨자 2는 거리를 제곱해서 잰다는 뜻이고, 위첨자 2는 이 값이 바서슈타인 거리 W₂의 제곱이라는 뜻이다. 이 예에서는 W₂² = 4다.
Benamou와 Brenier(2000)는 이 비용을 자유 입자의 작용과 이었다. 흙 알갱이 하나하나가 시간 1 동안 움직인다고 보고 모든 알갱이의 운동에너지 작용을 더한 값을 가장 작게 하면, 그 최솟값이 정확히 W₂²의 절반이 된다. 그리고 가장 작게 만드는 움직임에서 알갱이 하나하나는 등속 직선으로 간다. 위 예라면 두 무리가 거리 2를 속력 2로 곧게 가서 무리마다 작용이 ½ × 2² = 2이고, 반씩이니 합해도 2, 곧 4의 절반이다.
flow matching(Lipman 외, 2022)과 rectified flow(Liu 외, 2022)는 노이즈에서 뽑은 점 x₀와 데이터에서 뽑은 점 x₁을 다음 식으로 잇는다.
하나의 (x₀, x₁) 쌍만 놓고 보면 이것은 바로 등속 직선, 즉 자유 입자의 작용을 최소로 하는 경로다. 경로가 곧으면 상미분방정식(ODE, ordinary differential equation: 지금 위치에서의 속도를 알려 주는 식. 샘플링은 그 속도를 따라 조금씩 걸어가며 푼다)을 적은 걸음으로 풀 수 있으므로, 이 선택은 샘플링에 드는 걸음 수와 직접 이어진다.
다만 모델은 쌍 하나가 아니라 수많은 쌍을 한꺼번에 배운다. x₀와 x₁을 무작위로 짝지으면 위 흙 예의 엇갈린 짝처럼 최적 수송의 짝이 아닌 것이 섞이는데, 그때도 모델이 배우는 길이 곧을까? 아래 문제 15에서 따져 보자. rectified flow의 reflow나 minibatch OT(미니배치 안에서 최적 수송으로 짝을 다시 맞추기)는 이 물음에서 나온 방법이다.
문제 14. 속도계만 보고 어림한 거리
자전거를 타고 정지 상태에서 출발해, 속력이 1분마다 분속 0.2km(시속 12km)씩 고르게 늘어나도록 5분을 달렸다. 실제로 간 거리는 2.5km다. 1분마다 그 순간의 속도계만 보고 "다음 1분 동안은 이 속력으로 간다"고 어림해 더하면 몇 km가 나오는가? 30초마다 보면?
0.5km에서 0.25km로 절반이요. 보는 간격을 절반으로 줄이면 오차도 절반이에요. 속력이 늘 오르는 중이라 매번 조금씩 덜 간 걸로 쳐지고요.
선생님
속력이 처음부터 끝까지 일정했다면요?
김민준
그럼 한 번만 봐도 정확하죠. 속력 × 5분이면 끝이에요.
문제 15. 같은 직선, 다른 작용
질량 1인 자유 입자(L = ½|ẋ|²)가 시간 1 동안 (0, 0)에서 (1, 0)으로 간다. 세 경로의 작용을 비교하라. (a) 직선, 등속. (b) 직선, x = t². (c) (0.5, 0.5)를 거치는 꺾인 선, 등속. ((a)와 (b)는 위젯 4의 단추로 불러올 수 있다.)
문제 15의 세 경로. 점은 0.1 간격 시각의 위치다. (a)와 (b)는 같은 직선이고 점의 간격만 다르다.
김민준
(a)와 (b)는 같은 선이니까 같고, (c)는 길이가 길어서 크겠죠.
선생님
(a)와 (b)에서 매 순간의 속도는 각각 얼마죠? 작용은 모양이 아니라 속도로 계산해요.
김민준
(a)는 속도 1이라 ½. (b)는 속도가 2t니까 ½∫4t²dt = 2/3. (c)는 길이 √2 ≈ 1.41을 등속으로 가니까 ½ × 2 = 1. (b)가 (a)보다 크네요. 같은 선인데도요.
선생님
자유 입자의 작용을 가장 작게 하는 건 "짧은 길"이 아니라 "등속 직선"이에요. 민준 학생은 문제 1과 같은 함정에 다시 빠졌어요.
이서연
그럼 flow matching의 x_t = (1 − t)x₀ + t x₁은 (a)네요. 모든 쌍이 등속 직선이니까, 학습된 모델도 한 걸음에 정확히 샘플링할 수 있겠네요.
선생님
1차원에서 쌍 두 개를 생각해 봐요. −1에서 +1로 가는 쌍과 +1에서 −1로 가는 쌍. t = 0.5에 둘 다 x = 0을 지나요. 그때 속도는?
이서연
+2와 −2예요. 모델은 위치와 시간만 보고 속도 하나를 내야 하니까… 평균인 0을 내겠네요. 그럼 학습된 경로는 서로 교차하지 않고 휘어서 비켜 가요.
선생님
맞아요. 쌍마다는 등속 직선이지만, 모델이 배우는 평균 속도장은 휘어질 수 있어요. 짝을 최적 수송에 가깝게 맞추면 교차가 줄고 경로가 펴져요.
1차원에서 −1 → +1 쌍과 +1 → −1 쌍(회색 점선)은 t = 0.5에 x = 0에서 엇갈린다. 모델이 배우는 평균 속도장을 따라가면(초록) 경로는 교차하지 않고 휘어서 비켜 간다. 각 끝점 둘레에 표준편차 0.12의 정규분포를 두고 계산했다.
김민준
확산 모델의 노이즈 스케줄은 (b)처럼 같은 선 위를 속도를 바꿔 가며 지나는 거네요. 스케줄만 바꿔도 작용이 달라지고요.
문제 16. 같은 선, 다른 걸음 수
flow matching 모델이 1차원에서 0을 1로 옮기는 경로를 배웠다고 하자. 경로 (a) x = t는 속도가 늘 1이고, 경로 (b) x = t²은 시각 t의 속도가 2t다. 샘플링은 시각 0에서 1까지를 같은 간격 N걸음으로 나눠, 걸음마다 그 걸음을 시작하는 시각의 속도 × 걸음 크기만큼 옮기는 오일러 방법으로 한다. N = 1, 2, 4, 10에서 도착점은 각각 어디인가? (풀어 본 뒤 위젯 4의 「오일러 걸음 수」로 확인해 보자.)
김민준
(b)는 아까 자전거처럼 모자라게 도착하겠죠. 그런데 (a)도 한 걸음이면 틀릴 것 같아요. 걸음이 적으면 늘 오차가 있잖아요.
이서연
(b)는 문제 15의 x = t²이랑 같은 경로네. 거기서도 같은 선인데 작용이 달랐잖아.
선생님
한 걸음이면 시각 0의 속도만 써요. (b)는 시각 0에서 속도가 얼마죠?
김민준
0이요… 그럼 한 걸음이면 제자리예요. 두 걸음이면 0 + 2 × 0.5 × 0.5 = 0.5, 네 걸음이면 0.75, 열 걸음이면 0.9. (a)는 속도가 늘 1이라 한 걸음에도 정확히 1이고요.
이서연
(b)는 도착점이 (N − 1)/N이라 오차가 1/N이네. 오차를 반으로 줄이려면 걸음을 두 배로 늘려야 하고.
선생님
그래서 곧고 속도가 일정한 경로를 배우게 해요. 속도가 변하지 않으면 걸음을 시작할 때의 속도로 끝까지 가도 틀리지 않거든요. 걸음마다 신경망을 한 번 돌려야 하니, 걸음 수가 곧 샘플링 비용이에요.
김민준
아까 자전거 문제랑 같네요. 출발하면서 가속하면 속도계가 늘 늦게 따라와서 한참 못 간 걸로 나오고요. (a)처럼 처음부터 끝까지 속력이 같으면 한 번만 봐도 맞고요.