Flow matching guide and code 7탄
·
Flow Matching
이번 포스트부터는 Flow Matching을 본격적으로 알아보겠다. 간단한 분포에서 시작해 복잡한 타겟 분포로 부드럽게 연결해주는 확률 경로와, 이를 생성하는 velocity field를 학습하는 것이 목표이다.Flow Matching의 목표FM의 목표는 다음과 같이 요약된다.Source 분포 $p$ 와 target 분포 $q$ 가 주어졌을 때, 시간 $t \in [0,1]$ 에 따라 분포가 $p_0 = p$ 에서 $p_1 = q$ 로 연속적으로 변하는 probability path $p_t$ 를 정의한다.그리고 이 probabiltiy path를 만들어내는 velocity field $u_t^\theta$ 를 학습한다.즉, $p$ 에서 $q$ 로 가는 flow를 한 번에 확률적으로 연결하지 않고, 작은..
Flow matching guide and code 6탄 - Instantaneous Change of Variables
·
Flow Matching
이 글에서는, 연속적 Normalizing Flow 등을 다룰 때 “최종 분포” p1의 밀도를 구하거나, 특히 log p1(x) 값을 계산하고자 하는 과정을 설명한다.차원이 큰 문제에서 Jacobian determinant를 직접 계산하기가 복잡하고 비싸므로, continuity equation과 flow 개념을 활용해 “로그밀도”의 시간 변화를 추적한 뒤, 초기 로그밀도와의 관계로 log p1(x)를 효율적으로 구하는 방법, ODE solver 의 코드까지 살펴보겠다.먼저 Continuity Equation 에서 시작해보자.이렇게 쭉 전개하면 다음과 같은 식이 나온다.최종 식을 해석해보자면, "최종 로그밀도(우리가 구하려고자 하는)” = “초기 로그밀도" - divergence적분인거다. 어느정도 간단..
Flow Matching Guide and Code 5탄 - Continuity Equation
·
Flow Matching
이 글에서는  시간에 따라 변하는 확률분포  \(\{p_t\}\) (확률 경로, Probability Path)을 어떻게 velocity field  \(u_t\)와 연결해 생각할 수 있는지를 살펴보고, 그 과정에서 중요한 역할을 하는 Continuity Equation 을 이해해본다. 최종적으로는 “연속 방정식을 만족하는 velocity field"와 “실제로 그 velocity field가 확률분포 \(\{p_t\}\)를 만들어낸다”는 말이 같은 말임을 보이겠다.  Probability path \(\{p_t\}\)와 Flow \(\psi_t\)Probability Path란, 시간 t가 0부터 1까지 변할 때, 각 시점마다 정의되는 확률분포 \(\displaystyle p_t\)의 모임을..
Flow Matching Guide and Code - (4탄) Solving ODE with Euler Method & Code
·
Flow Matching
이번 포스트에서는 Flow 모델에서 ODE를 풀어 target sample \( X_1 \)을 얻는 과정을 다루며, 이를 해결하는 가장 simple한 Euler Method 에 대한 정리를 다루겠다. 먼저, Flow 모델에서 풀어야 할 방정식은 다음과 같다.\[ \frac{d}{dt} X_t = u_t(X_t) \]즉, 초기 샘플 \( X_0 \) 이 주어지면, 이를 시간에 따라 변형하여 target 샘플 \( X_1 \) 을 얻어야 한다.하지만 이 방정식은 ODE이며, 보통 직접 풀기 어렵다.Euler MethodODE를 풀기 위해 다양한 방법이 있으며, 그중 가장 간단한 방법이 Euler Method 이다.\[ X_{t+h} = X_t + h u_t(X_t) \]즉, 현재 위치 \( X_t \) 에서..
Flow matching Guide and Code - Flow model(3탄)
·
Flow Matching
Flows as Generative Models이 포스트에서는 Flow를 사용하여 확률 분포를 변형하는 과정과 Flow가 Markov Process임을 보이겠다.1. Flow를 이용한 Generative modelsGenerative Model의 목표는 Source Distribution \( p \) 에서 샘플 \( X_0 \) 를 뽑아서, Target Distribution \( q \) 에 따르는 샘플 \( X_1 \) 로 변환하는 것이다.\[ X_0 \sim p, \quad X_1 \sim q \]이 변환을 수행하는 방법 중 하나가 Flow Mapping 이다.\[ X_t = \psi_t(X_0), \quad t \in [0,1] \]여기서 \( \psi_t \) 는 시간 \( t \) 에 따라..
Flow Matching Guide and Code - Flow models (2탄)
·
Flow Matching
Flow matching을 이해하기 위한 알고 가야할 개념이다.1. Random VectorsFlow Matching을 이해하기 위해서는 확률 변수와 PDF를 이해해야 한다.유클리드 공간에서 데이터는 다음과 같이 표현된다.\[ x = (x^1, x^2, ..., x^d) \in \mathbb{R}^d \]이 공간에서 벡터의 크기는 다음과 같이 정의된다.\[ \|x\| = \sqrt{\sum_{i=1}^{d} (x^i)^2} \]확률 변수와 PDF확률 변수 \(X\)의 PDF) \( p_X(x) \)로 표현되며, 특정 구간에서의 확률은 다음과 같이 계산된다.\[ \mathbb{P}(X \in A) = \int_A p_X(x)dx \]Gaussian PDFGaussian Distribution는 가장 많이 ..
Flow Matching Guide and Code _ (1탄)
·
Flow Matching
*Flow Matching Guide and Code( 2412.06264) 를 읽으면서 정리한 내용입니다1. Flow Matching(FM)이란?Flow Matching은 생성 모델의 한 종류로, 데이터를 변형하는 과정을 학습하는 방식이다.이 과정에서 velocity field을 학습하여, 주어진 데이터 분포(source 분포)에서 원하는 데이터 분포(target 분포)로 변환하는 흐름(flow)를 만든다.Flow Matching의 핵심 과정:probability path( pₜ)를 설정하여 소스 분포 → 타겟 분포로 변하는 과정을 정의한다.Velocity Field를 학습하여 이 변환 과정을 모방하는 flow를 생성한다.2. Diffusion Models과는 뭐가 다를까Diffusion 을 잠깐 복습..