AI VIDEO BRIEFING
플로우 매칭이란? 확산 모델과 다른 이미지·영상 생성 원리와 정류 플로우 정리
플럭스·스테이블 디퓨전 3 등이 채택한 플로우 매칭을 물리의 연속 방정식과 최적수송으로 풀어 설명합니다. 조건부·주변 속도장과 정류 플로우까지 정리했습니다.

핵심 메시지
쉽게 이해하기
이미지는 픽셀마다 하나의 차원을 갖는 고차원 신호다. 이를 2차원으로 단순화하면, 밝은 영역은 의미 있는 이미지가 있을 확률이 높고 어두운 영역은 잡음뿐인 '데이터 밀도'로 볼 수 있다. 생성 모델의 목표는 이 알 수 없는 데이터 밀도를 학습해, 학습에 없던 새 이미지를 만드는 것이다. GAN은 이를 한 번에 배우려다 품질이 떨어졌고, 확산과 플로우 매칭은 단순한 밀도에서 시작해 점진적으로 목표 밀도로 옮겨간다.
이 '점진적 이동'을 다루는 열쇠가 물리의 수송(transport) 개념이다. 확률 질량은 전하나 물처럼 보존되는 양이라 갑자기 생기거나 사라지지 않고 시간에 따라 흐른다. 19세기의 연속 방정식은 이 흐름을 시간에 따라 변하는 '속도장'으로 표현한다. 속도장 위에 입자를 놓으면 흐름을 따라 움직이며, 이 움직임은 간단한 상미분방정식(ODE)으로 기술된다. 따라서 속도장을 학습하면, 추론 때 잡음에서 출발한 입자를 밀어 이미지에 도달시킬 수 있다.
플로우 기반 방법의 계보는 2015년 정규화 플로우, 2018년 연속 정규화 플로우(CNF), 2023년 플로우 매칭으로 이어진다. 과거 방법이 주류가 되지 못한 이유는 학습이 어려웠기 때문이다. 정답 속도장이 따로 없어, CNF는 매 학습 단계마다 역방향 여정을 통째로 시뮬레이션하며 우도를 최대화해야 했고 비용이 커서 확장되지 못했다. 플로우 매칭은 지도용 속도 라벨을 만들어내는 방법을 찾아, 한 번의 모델 호출로 끝나는 단순한 MSE 목표로 바꿔 이 문제를 해결했다.
학습 한 번은 놀랄 만큼 단순하다. 학습 이미지 X1과 잡음 X0를 각각 고르고, 둘을 잇는 직선 위 임의 시점에서 속도를 계산하면 라벨은 X1-X0로 간단해진다. 이 라벨과 모델 예측의 평균제곱오차(MSE)를 줄이도록 갱신한다. 직선과 상수 속도가 임의적으로 보이지만, 이는 두 가우시안 사이의 최적수송을 구현한 것이다. 최적수송은 이동 거리 제곱을 최소화하는 방식으로 경로를 고르며, 가우시안 사이에서는 크기 조절과 이동으로 이뤄진 간단한 아핀 사상으로 주어진다.
가장 놀라운 부분은 조건부만 배워도 주변 속도장이 나타난다는 점이다. 서로 다른 학습 경로가 한 점에서 교차하면 같은 입력에 상반된 라벨이 주어지는데, MSE 손실은 이때 라벨들의 가중 평균을 학습한다. 그리고 그 평균이 바로 우리가 원하는 주변 속도장이다. 즉 상반된 라벨 '덕분에' 곡률이 생기고 올바른 장으로 수렴한다. 정류 플로우는 학습된 모델로 X0-X1 짝을 다시 지어 교차를 줄이고, 이를 반복(reflow)해 경로를 곧게 펴서 한 단계 생성에 가까워진다.
주요 인사이트
- 플로우 매칭은 하나의 거대한 수송 문제를, 이미지 하나로 조건화된 여러 개의 쉬운 수송으로 나누는 분할정복이다. 각 단계는 잡음을 특정 이미지 주변의 가우시안으로 옮기는 법만 가르친다.
- '직선·상수 속도'는 임의의 선택이 아니라 두 가우시안 사이의 최적수송을 구현한 결과다. 효율적인 속도장은 더 짧은 경로와 더 빠른 추론으로 이어진다.
- 학습된 속도장의 곡률이 곧 추론 속도를 좌우한다. 경로가 거의 직선이면 한 단계로도 충분하고, 많이 휘면 더 많은 오일러(Euler) 단계가 필요하다.
- 정류 플로우는 플로우 매칭과 별개로 같은 통찰에 도달한 동시대 연구로, 곡률을 줄이는 추가 단계를 제안해 안정적인 학습을 유지하면서도 GAN급 한 단계 생성을 지향한다.
- 플로우 매칭과 확산 모델은 수학적으로 동등함이 증명돼 있어, 같은 현상을 다른 관점에서 바라본 것으로 이해할 수 있다.
자주 묻는 질문
플로우 매칭은 확산 모델과 어떻게 다른가요?
두 방법은 수학적으로 동등함이 증명돼 있지만 관점이 다릅니다. 플로우 매칭은 노이즈를 이미지로 옮기는 속도장을 직접 학습하며, 잘 학습되면 확산보다 적은 단계(예: 10~20 대신 2~3)로 이미지를 다듬을 수 있습니다.
왜 학습에서 X0와 X1을 직선으로 잇고 상수 속도를 쓰나요?
그 직선은 두 가우시안 사이의 최적수송, 즉 이동 거리 제곱을 최소화하는 경로를 구현한 것입니다. 이때 속도는 거리 나누기 시간이라 X1-X0로 단순해지며, 이는 임의적 선택이 아니라 최적수송의 결과입니다.
정류 플로우(rectified flow)는 무엇을 개선하나요?
학습된 모델로 X0와 X1의 짝을 다시 지어 경로의 교차를 줄입니다. 이 과정을 반복하면 경로가 점점 곧아져, 결국 한 번의 단계만으로 생성이 가능한 GAN급 속도에 다가갑니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗