Flow matching Guide and Code - Flow model(3탄)

2025. 1. 31. 17:59·Flow Matching

Flows as Generative Models

이 포스트에서는 Flow를 사용하여 확률 분포를 변형하는 과정과 Flow가 Markov Process임을 보이겠다.


1. Flow를 이용한 Generative models

Generative 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 \) 에 따라 변하는 매핑이며, 이를 통해 시간이 지나면서 \( X_0 \) 가 점진적으로 \( X_1 \) 로 변환된다.


2. Flow -  Diffeomorphism

Flow \( \psi_t \) 는 다음과 같은 매핑을 수행하는 함수이다.

\[ \psi : [0,1] \times \mathbb{R}^d \to \mathbb{R}^d \]

이 함수는 시간 \( t \) 에 따라 변화하는 Diffeomorphism 이다. 즉, 모든 시간 \( t \) 에 대해 역변환 \( \psi_t^{-1}(x) \) 이 존재한다.

\[ X_t = \psi_t(X_0), \quad t \in [0,1], \quad X_0 \sim p \]


3. Flow는 Markov Process이다?

Flow 모델이 마르코프 과정(Markov Process) 임을 보이려면, 임의의 시간 \( t \) 이후의 상태가 오직 현재 상태 \( X_t \) 에만 의존함을 보이면 된다.

\[ X_s = \psi_s(X_0), \quad 0 \leq t < s \leq 1 \]

이제, \( X_0 \) 를 \( X_t \) 를 이용해 다시 표현하면,

\[ X_0 = \psi_t^{-1}(X_t) \]

이를 대입하면,

\[ X_s = \psi_s(X_0) = \psi_s(\psi_t^{-1}(X_t)) \]

여기서 새로운 매핑 \( \psi_{s|t} \) 를 정의한다.

\[ \psi_{s|t} := \psi_s \circ \psi_t^{-1} \]

이는 \( X_t \) 를 입력으로 받아 \( X_s \) 를 출력하는 변환이며, 역시 Diffeomorphism이다.

\[ X_s = \psi_{s|t}(X_t) \]

즉, \( X_s \) 는 오직 \( X_t \) 만을 기반으로 결정되므로, Flow는 마르코프 과정이다.

더보기

이 부분이 잘 이해가 안 갈 수 있는데 조금 더 직관적으로 생각해보자.

우리는 원래 \( X_s = \psi_s(X_0) \) 라는 식을 가지고 있다. 하지만 우리는 이를 \( X_t \) 를 기준으로 다시 표현하고 싶다.

이를 위해, \( X_t = \psi_t(X_0) \) 의 역변환을 이용하여 \( X_0 = \psi_t^{-1}(X_t) \) 로 바꾸어 준다.

그런 다음 이를 원래 식에 대입하면, 결국 \( X_s = \psi_s(\psi_t^{-1}(X_t)) \) 가 된다.

이제, 우리는 새로운 변환 \( \psi_{s|t} \) 를 정의하여 \( \psi_{s|t} := \psi_s \circ \psi_t^{-1} \) 로 두면, 결국 \( X_s = \psi_{s|t}(X_t) \) 라는 표현을 얻는다.

이 식은 무엇을 의미할까? 바로 미래 상태 \( X_s \) 는 오직 현재 상태 \( X_t \) 에만 의존한다는 것이다. 즉, 과거 상태 \( X_0 \) 가 필요하지 않다.

그래서 Flow 모델은 결국 Markov Process라는것이다


정리하자면

  • Flow 모델을 사용하면, 소스 분포 \( p \) 에서 목표 분포 \( q \) 로 데이터를 변환할 수 있다.
  • Flow 모델은 Continuous-Time Markov Process 로 볼 수 있다.
  • Flow 모델은 Determininstic Markov Process이다.

결과적으로, Flow 기반 generative model의 목표는 다음과 같다

\[ X_1 = \psi_1(X_0) \sim q \]

즉, Flow \( \psi_t \) 를 통해 초기 분포 \( p \) 에서 샘플링한 데이터가 목표 분포 \( q \) 로 변환되도록 하는 것이다.

4. Flow와 Velocity Field

처음 논문 봤을떄 가장 헷갈리는 부분이었는데, 결국 Flow를 통해 Velocity Field를 구할수 있고 Velocity Field 를 통해 FLow를 구할수 있다는 말이다. Flow는 데이터의 전체적인 변형을 나타내고 Velocity Field는 각 지점에서의 순간적인 변화율을 나타낸다.


Flow \( \psi_t(x) \) 는 시간 \( t \) 에 따라 변하는 함수이며, 이 함수는 다음과 같은ODE를 따른다.

\[ \frac{d}{dt} \psi_t(x) = u_t(\psi_t(x)) \]

여기서 \( u_t(x) \) 는 Velocity Field 로, 데이터가 순간적으로 이동하는 방향과 속도를 결정한다.

처음 조건은 다음과 같다.

\[ \psi_0(x) = x \]

즉, \( t = 0 \) 에서는 Flow가 변형되지 않은 원래 데이터를 유지한다.

Velocity Field를 적분하면 Flow를 구할 수 있다.

\[ \psi_t(x) = x + \int_0^t u_s(\psi_s(x)) ds \]

반대로, Flow가 주어졌을 때 순간적인 변화율을 계산하여 Velocity Field를 구할 수 있다.

\[ u_t(x) = \dot{\psi_t}(\psi_t^{-1}(x)) \]

즉, Flow를 미분하고  inverse를 해서 각 위치에서의 순간 속도를 결정한다.

 

직관적으로 해석해보자면

  • Flow \( \psi_t(x) \) → "데이터가 시간에 따라 변하는 전체 경로"
  • Velocity Field \( u_t(x) \) → "각 지점에서 데이터가 순간적으로 이동하는 방향과 속도"

이렇게 생각하면 편하다. 정리하자면

  • Velocity Field가 주어지면, 이를 적분하여 Flow를 구할 수 있고
  • Flow가 주어지면, 미분을 통해 순간적인 변화율(즉, Velocity Field)을 계산할 수 있다.

 

'Flow Matching' 카테고리의 다른 글
  • Flow Matching Guide and Code 5탄 - Continuity Equation
  • Flow Matching Guide and Code - (4탄) Solving ODE with Euler Method & Code
  • Flow Matching Guide and Code - Flow models (2탄)
  • Flow Matching Guide and Code _ (1탄)
happy88
happy88
  • happy88
    happy8825
    happy88
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • NLP (8)
      • Computer Vision Paper Revie.. (57)
      • 이것저것 (5)
      • About me (3)
      • Linear Algebra (7)
      • 개발 (3)
      • Statistics (12)
      • Flow Matching (7)
      • robot (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    D
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
happy88
Flow matching Guide and Code - Flow model(3탄)
상단으로

티스토리툴바