この記事は、修士課程の自分が、大学で受けているflow modles, flow matching, diffusionのdeep generative modelingの授業の学びを深めるために書いている記事で、勉強しながら更新していきます。間違いを見つけた場合は、コメントでフィードバックお願いします。また、関連する興味深いトピックに関してもコメントいただければ学びになります。(これによりリアルタイムでOptimal learningをしていきます。 想定読者は、統計的機械学習をなんとなく知っていて、最新トレンドのFlow matching/diffusionについて知りたい、つまり、私です。)[最終更新 2026-05-25]
各教材とストーリーの違い
主に学習にあたっては、i) 自分のドイツの大学修士課程の授業, ii) MITの教科書を参照している。しかし、しばらく読み進むうちにi)とii)ではストーリーの違いがあることに気づいた。それは、歴史的な背景から入るのか、State-of-the-artのflow matching/diffusionの2つの直感的理解を先に優先して、いくつかの歴史的な背景を省くか、の2つである。
用語を説明せずに大枠をはなすと以下:
RPTU(私の大学の授業):
まだ3回しか授業をうけていないが、確率論まわりのPush-forward measures, normalizing flowsから説明を始めて、flow matchingへの数学的な接続をしている。この途中でODEが出てきて、その後SDEとあわせてdiffusionとの接続をしている。このnormalizing flowsがどうflow matchingとつながるかへの数学的な転換に時間がさかれている。あまり、ODEなどへの接続に関して詳しく述べられないまま、授業が進行しているように思える。いいかえると、ベクトル場、フロー、ODEの解などの関係があまり明瞭に述べられる機会がなかった。おそらく、数学的なボトムアップのストーリーのようだ。
MITの教科書 (Peter Holderrieth and Ezra Erives)
(An Introduction to Flow Matching and Diffusion Models)
https://diffusion.csail.mit.edu/2026/docs/lecture_notes.pdf#page=2.24
こちらでは直感ベースで、「ベクトル場が、解がフローとなるようなODEを定義する」という大枠を提示したあとに、(“vector fields define ODEs whose solutions are flows”)、ODEとは何か、ODEを扱うにはシミュレーションが必要である、として代表的な手法について述べる。つまり、ODE->ODE simulation->flow modelへ接続をした。そこではフローモデルのベクトル場を学習するのにflow matchingが導入された。そのあと、ブラウン運動->ODEと違った確率的な挙動をするSDE->flow modelsとdiffusionからのサンプリングを統一的に見る。一方で、RPTUの授業でよく見たdetかpush forward measureが出てこないのでよくみたら、normalizing flow関連の話は完全にないらしく、Flow matching, diffusionが統一的に紹介されているという、結果的に現在の研究トレンドの最新コミットを追っているようで、そこにキャッチアップするにはこちらのストーリーのほうが便利な気がする。つまり、直感的なトップダウンのストーリーだ。
Metaのサーベイ: Flow Matching Guide and Code (Lipman et al. 2024)
こちらは上述のMITの教科書を書いている人も参加しているサーベイ論文で、 いつもお世話になっているドイツ研究留学界隈・九大博士課程のShumpei Takezakiさんにおすすめされた教材です。(いつもありがとうございます。)
まだ読めていないのですが、構成を見る限り、網羅的な印象を受けます。例えば、RPTUの大学で詳細を扱っているpush-forward measuresなどのトピックは(Section 3.3 Diffeomorphisms and push-forward maps)などに述べられていて、このあたりはMITの教科書には書かれていないので、大学の授業の補完的に読もうと思っています。(大学の授業の数式の多くは黒板にかかれているが、可能なら大学のストーリー形式で、数式がまとめられている教科書があったら勉強しやすいので、TODO: 教授にどの教科書を参考にしてるのか聞いてみる。)
興味深い学び
MITの教科書での統一的な視点:flow modelsでのODE simulationに対して、diffusionでは確率的な微分方程式SDEをsimulationするので、diffusionの特殊なケース(i.e., diffusion constant sigma =0)をflow modelとみることもできるのがおもしろい。小学生の時に図鑑で見た、ブラウン運動がここで役に立つとは知らなかった。以下の2つのアルゴリズムテーブルを見ると、2つはとても似ていることがわかる。
“Algorithm 1 Sampling from a Flow Model with Euler method”
“Algorithm 2 Sampling from a Diffusion Model (Euler-Maruyama method)”
空間のある一定の場所に良い解はあつまっているという考えのManifold hypothesisは興味深い。これが、flow model, flow matchingの文脈でよく聞く。flow modelsにて、ODEとベクトル場を表現するneural netは基本的には別の存在。だから、ODEに物理学・生物学で知られているODEを入れて、シミュレーションすることもできるし、またはODEソルバー自体をNeuralODEでシミュレーションする人もいれば、それにregularizerとして物理学・生物学で知られているODEを足してちょっとラムダ調整して、物理学的な制約をつけることできるのもとても興味深い。
知人から見聞きした話:flow matching, continuous normalizing flowあたりが物理・生物学の制約を例えば正則化として、NeuralODEと組み合わせるのが有効なのはわかった。このあたりはPINN (Physics-informed Neural Network)とも似ているもしくは共通の要素があると思うので、PINNあたりとの違いもまたおいおい確認する。多分混ざり合っている気がする。(physics-informed flow matching) いずれにせよ、この広いパラメータ空間のなかで、そうした物理的な制約をregularizerとして使うのはかなり便利そうだ。またそのうち、TODO: 研究室の友人のJan Tauberschmidtの最近出した論文もみてみて、どのコンポーネントが通常のflow matchingで、どこが違うのかについて知りたい。 (https://openreview.net/forum?id=khBHJz2wcV “Physics-Constrained Fine-Tuning of Flow-Matching Models for Generation and Inverse Problems”)
RPTU授業: flow matchingでは非線形性を導入するために、いろんな活性化関数が議論されていた。Normalizing flowでは可逆でJacobianの行列が計算しやすい関数たちを用いて非線形の様々な操作する。これに対して、flow matchingでは非線形性を導入するのにニューラルネットワークで表現されるベクトル場を考えていて、ここでは活性化関数が役立つことが分かった。とりわけ、活性化関数は理論的にはなるべくどの点も微分可能でないといけないということが分かった。Leaky ReLuというものが例として挙げられていたが、これもよく調べたらx=0で微分できない。実務的にこの辺はしっかり守らないとパフォーマンスが低下するのかは気になるところだ。Geminiに聞いてみると、SiLU, Swish, GELU, Softplusなど別の代替案は何個かあるみたいだ。
まだ理解が深くない箇所
RPTUでの授業でのnormalizing flow vs flow matching の接続の授業では、離散から連続への積分での数学的な接続の回だった。ODEとの接続や、フローとはなにか、みたいなところでつねに教授とTAの間で議論が白熱し、少し混乱した。まだ、自分にとっては数学的な部分のどこがどれに対応するのか(まだ各変数の各概念との対応が混乱する)、が曖昧なので、ここは確実に頭に入れたい。
これもあって3回目の授業で、一旦まとまった教科書を読むことにして、それでMITの教科書をチャプター3まで読むことにした。https://diffusion.csail.mit.edu/2026/docs/lecture_notes.pdf#page=2.24 (一方で冒頭で述べたように、構成が違うことによって混乱した。)
まだmanifold hypothesisやどんなmanifoldがあるのか、それは数学的にどういう種類があって、そのそれぞれにどういう特徴があるのか、それぞれにどのようなアルゴリズムが対応するのか、などもし教科書に出てきたら読んでみたい。
RPTUの授業のストーリーでのpush-forward mesures -> discrete normalising flow -> continuous normalizing flow -> diffusion などの数学的な接続はそんなに自信ない。(テストに向けて。)
その他論文から見聞きした話
従来のベイズ最適化とは少し異なる、Generative Bayesian Optimization (Gen BO)というものがあるらしい。https://arxiv.org/html/2605.10385v1 Generative (e.g., diffusion, flow matching) BOのリグレット解析の論文を見つけた。理論的にdiffusion/flow matching (それのとどまらない) もちいたGenerative BOが解析できるようになったので、今後この分野はホットになりそうということが推察できる。Blackbox optimizationでとりわけ結晶などの構造の問題設定のstrucutre bayesian optmizationでは、latent BOという謎の連続値をあつかうBOが人気らしいが、OODのときに構造がぶっこわれるらしい。かわりに、diffusionを使ったBOも人気だけど、explicitなlatent spaceがないと使いづらい。pre-trained diffusion modelを使ったBOを提案している。RKHSとか情報利得に頼らないリグレットを解析した。acquision strategyをdiffusionでもflow matchingサンプラーでもできるようになると書いている。ここで、提示された指標の Mass liftというもので、BO界隈でも猫も杓子もdiffusion/flow matchingのトレンドが今後一層進みそうだ。
様々な疑問とそれに対するTips
Discrete Normalizing Flowでニューラルネットは使えるのか?
RPTUの授業で最初に説明された、離散的なdiscrete nomalizing flowを直感的にまとめてみる。Normalizing flowは簡単な分布xを謎の関数fで複雑な空間に飛ばす。そのときのz=f(x) を密度にするためにdet Jacobian を計算して、それの逆行列かける。これが "normalizing"という部分だ。この謎の変換を何回もすることができて、f_1, f_2,...みたいなことを考えたときに、最初と最後の変換のdet Jacobian は複数のdet Jacobian の積になる。RPTUの授業ではこの合成関数みたいな操作がflowだと言われていいた。(TODO: この直感的な説明が、他の教科書とちゃんと整合しているかは後で再確認する。)よくnormalizing flow/ flow models/flow matching とdiffusion がよく一緒に比較されるのが気になっていた。この直感的な説明を聞いた時点でこのf_1,f_2..みたいな何回もnormalizing flow関数の操作はdiffusion とかなり似ていることに気づいた。(このあたりは数学的な別の切り口から後々MITの教科書でも統一的に説明されている。)もちろん、調べたところ、diffusionへの接続には、離散的なNormalising flowから連続的なcontinuous normalizing flow, flow matchingなどの議論を経たほうがいいということもわかった。
ただ、この関数fたちに色々仮定、関数f は微分可能& 逆関数が存在する、などがある。実際の謎のニューラルネットfをここに入れるなどの話を聞いたが、ニューラルネットには逆関数が常に存在するとは限らなさそうなので、本当にうまくいくのかわからないのでは?と疑問が出た。実用上はそんなに問題がないのか、もしくはドメインによって、うまくいかないのかな?(Geminiいわく、昔はカーネル関数や比較的単純な関数がfとして使われていて、十年ほど前からニューラルネットを使う流れになったらしい。)
Shumpei TakezakiさんのTips:
基本的にはf differential & invertibleの制約をかける分,学習がうまくいなかったり,生成能力が落ちる印象.ただ,最近はnormalizing flowでも高画質な画像生成くらいならできるらしい.(流行ってはない.やはり,diffusion系が強い)https://arxiv.org/abs/2506.06276」
先程のdiscrete normalizing flowからcontinous normalizing flowのlogつかって対角和を使った数学的な部分はまだそんなに追えていない。離散操作を[0,1]の連続操作に置き換えた部分とかも。(TODO: ここ再確認する。)
Discrete Normalizing Flow計算重いのでは?
あと DNFはdetの計算が重たそう。O(d^3)らしい。なんか、行列が三角チョコパイになるようなトリック?があるらしいけど、よくわからない。実用上はやっぱりdiffusionがまだ便利なのかな?
Shumpei TakezakiさんTips:
detの計算がげきおもだね.normalizing flowが研究され出してからは,このdetを以下に計算しやすくするか見たいな研究が多かった。三角チョコパイに関しては、まさにdet計算の効率化で大きく貢献した研究 。また、実応用上では,diffusionもflow matchingも大差はないね.
Discrete Normalizing FlowとFlow matchingはどう接続される? なぜフローマッチングがもてはやされているのか分からない。
Shumpei TakezakiさんTips:
なんなら,diffusionとflow matchingは数式上同じ.
フローマッチングがもてはやされているのは,計算効率がいいから.そして,開始の分布と終わりの分布を任意に選べるからかな.”計算効率”に関しては,diffusionの計算コスト下げて生成できるバージョン (DDIM)とフローマッチングが等価で,そもそもフローマッチング使えばよくね?という流れ。開始の分布と終わりの分布を任意に関しては.diffusionは基本的にガウス分布からスタートして任意の分布を生成するけど,フローマッチングは開始の分布も任意に選べる(画像変換とかも解きやすい)
Flow matchingとnormalizing flowの接続の論文は:
さらにある仮定を置いて学習しやすく:normalizing floeの途中の分布がガウス分布に従うようにする (これは,diffusionっぽい)と,目的関数がシンプルになる.
Acknowledgement
Shumpei Takezaki先輩にいつもdiffusion/flow models/flow matchingの疑問点や、関連トピックのpointerいただきお世話になっております。今後とも、よろしくお願いします。そのうちdiffusion/flow models/flow matchingの何かしら手一本、論文を書きましょう!
Change log
2026-05-25 とりあえず知っていること、あまり知らないことなど書き出しました。