1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

生成AIを数理物理の視点から眺める : ニューラルネット、VAE、拡散モデル、そして「考える」ということ

1
Last updated at Posted at 2026-03-11

1. はじめに

生成AIは、ここ数年で急速に広まりました。最近、こんな会話をよく聞きます。

「これAIに聞いたら出てきました」
「うーん、便利だよね」

実際、本当に便利です。論文の要約も、コードの雛形も、英語の修正も、かなりできるようになりました。

しかし使っているうちに、気になってくることもあります。それは、

これは結局、何をしているのだろう?

という疑問です。

ツールとして使うだけなら、この疑問は必ずしも必要ありません。
しかし物理をやっている人間は、どうしても

  • どの数式で動いているのか
  • どの数学の上に立っているのか
  • 科学史のどこに位置するのか
  • 何が本当に新しく、何が古い考え方の再構成なのか

を考えてしまいます。

「ニューラルネットって、結局何をしてるんですか?」
「巨大な線形代数だと思えばいい」

などと言われることも多いと思います。

もちろん、それはかなり正しい説明です。
しかし同時に、

本当にそれだけなのか?
その説明だけで、生成AIの本質を説明したことになるのか?

と思うこともあります。

生成AIの内部には

  • 線形代数
  • 非線形力学
  • 最適化
  • 確率論
  • 変分推論
  • 統計力学
  • 確率過程
  • ランダム行列

など、数理物理で見慣れた構造が次々と現れます。

そこでこの記事では、生成AIを 数理物理の視点 から、なるべく短く整理してみます。

特にこの記事では、いきなり現在の大規模言語モデルや画像生成AIに行くのではなく、途中で VAE(Variational Autoencoder; 変分オートエンコーダ) を通ります。

VAEは、現在の巨大な生成AIに比べると小さなモデルですが、

  • 潜在変数
  • 確率分布
  • 変分推論
  • エンコーダ・デコーダ
  • 生成モデル
  • 表現学習

という、生成AIの本質をかなり端的に含んでいます。

以前、Google Colab で動かせる VAE の入門記事も書きました。

この記事は、その VAE の考え方を一つの足場にして、生成AIを数理物理として眺め直すものです。

最後には少しだけ、数学者・岡潔の思想にも触れます。

ただし、偉人の言葉を借りて精神論を述べたいわけではありません。
むしろ、生成AIが非常に強くなった時代に、

人間が考えるとは何か
新しい枠組みを作るとは何か
大学生は何から始めればよいのか

を、できるだけ客観的に考えるためです。

この記事のまとめ

seisei_AI.png


2. ニューラルネットは巨大な線形代数

まず最も基本的な構造から見てみます。

ニューラルネットワークの1層の計算は

h = Wx + b

で表されます。

ここで

  • $x$ : 入力ベクトル
  • $W$ : 重み行列
  • $b$ : バイアスベクトル
  • $h$ : 出力ベクトル

です。

これは単に

ベクトルに行列を掛けて平行移動する操作

です。

さらに実際のニューラルネットでは、この後に

h = \phi(Wx + b)

という 非線形関数 を通します。

ここで、

\phi(\cdot)

は、

  • ReLU
  • sigmoid
  • tanh
  • GELU

などの 活性化関数(activation function) です。

この非線形関数を入れることで、単なる線形変換では表せない複雑な関数を近似できるようになります。

そしてこの計算を、何層も、時には何百層も積み重ねるのが深層学習(Deep Learning)です。

つまり計算の大部分は行列積です。
その意味でニューラルネットの核心は 巨大な線形代数 と言うことができます。

補足
ニューラルネットの計算の大部分は行列積であり、その意味で巨大な線形代数と見ることができます。
ただし、本質的に重要なのは 非線形活性化関数 の存在です。
もし活性化関数が無ければ、多層ネットワーク全体は単なる1つの線形変換に縮退してしまいます。


3. 学習とはエネルギー最小化に似た問題

ニューラルネットでは

L(\theta)

という 損失関数(loss function) を定義します。

ここで $\theta$ は

  • 重み
  • バイアス
  • 正規化層のパラメータ

などをまとめた モデルのパラメータ全体 です。

学習とは

\min_{\theta} L(\theta)

という最適化問題を解くことです。

つまり、

モデルの予測が最も良くなるパラメータを探す

という問題です。

この形を見ると、物理をやっている人は、

これはエネルギー最小化にかなり似ている

と感じるはずです。

形式的には

L(\theta) \leftrightarrow E(\theta)

と対応づけて見ることができます。

もちろん、$L$ は一般には物理的エネルギーそのものではありません。
ただし、

あるスカラー関数を最小にすることで安定な状態を求める

という数学構造は非常によく似ています。

物理では、エネルギー $E$ が低い状態が安定状態として実現します。
機械学習では、損失 $L$ が低いパラメータが、データをよく説明するモデルとして採用されます。

注意
ここでいう「エネルギー」は、物理的エネルギーそのものではなく、数学的に

あるスカラー関数を最小化する問題

という意味での類似です。
ただし Hopfield network や Boltzmann machine のように、統計力学と非常に近い構造を持つモデルも実際に存在します。

関数を最小化する関数を求める、という操作は、変分法や汎関数微分とも関係します。
これについては、別の記事で簡単に紹介しています。


4. 学習は緩和運動として見える

パラメータ更新の最も基本的な式は

\theta_{t+1}
=
\theta_t
-
\eta \nabla L

です。

ここで

  • $\eta$ : 学習率
  • $\nabla L$ : 損失関数の勾配

です。

これは 勾配降下法(gradient descent) と呼ばれます。

もし更新が十分小さく、連続時間極限で考えると

\frac{d\theta}{dt}
=
-\nabla L

となります。

この形は、物理ではポテンシャルに沿って系が低いエネルギー状態へ緩和していく運動と同じ形です。

つまり学習は、

損失地形の中での緩和運動

として理解することもできます。

ここで重要なのは、ニューラルネットの学習は単に「答えを覚える」ことではなく、

高次元パラメータ空間の中で、損失関数の谷を探す問題

だということです。

深層学習の難しさは、この空間が非常に高次元で、しかも非凸であることにあります。
局所最小、鞍点、平坦な谷、鋭い谷など、物理でいう複雑なエネルギー地形のような構造が現れます。


5. 学習と拡散

実際の深層学習では、

  • ミニバッチ学習
  • データのランダムサンプリング
  • dropout などの確率的操作

のために、更新には確率的な揺らぎが入ります。

そのためパラメータ更新は近似的に

d\theta
=
-\nabla L \, dt
+
\sqrt{2T}\, dW

のような確率微分方程式で書くことができます。

ここで

  • $dW$ : Wiener過程(ブラウン運動)
  • $T$ : ノイズ強度に対応する量

です。

この形は物理では Langevin方程式 として知られています。

つまり機械学習の最適化は、

ポテンシャル中の拡散運動

としても見ることができます。

勾配降下法だけであれば、粒子は単にエネルギーの低い方向へ落ちていきます。
しかしノイズが加わると、粒子は局所的な谷から抜け出したり、平坦な領域を探索したりできます。

これは、深層学習で stochastic gradient descent が単なる勾配降下法以上の働きをしている可能性を考える上でも重要です。

注意
SGD が Langevin 方程式に厳密に一致するわけではありません。
ただし、ミニバッチのランダム性やデータサンプリングの揺らぎにより、近似的に

勾配 + ノイズ

という形になり、確率微分方程式として解釈できることが知られています。


6. 生成モデルとは何か

ここまでの話は、主に「学習」や「最適化」の話でした。
次に、生成AIの中心にある 生成モデル を考えます。

生成モデルとは、簡単に言えば、

データそのものではなく、データを生み出す確率分布を学習するモデル

です。

たとえば、手書き数字の画像 $x$ があるとします。
MNIST のようなデータセットでは、たくさんの数字画像が与えられます。

分類モデルであれば、

x \rightarrow y

として、画像 $x$ からラベル $y$ を予測します。

一方、生成モデルでは、

z \rightarrow x

のように、何らかの潜在変数 $z$ から画像 $x$ を生成します。

ここで $z$ は、画像の背後にある低次元の要因を表す変数だと考えることができます。

たとえば手書き数字であれば、

  • 数字の種類
  • 傾き
  • 太さ
  • 丸み
  • 書き癖

などが、潜在的な要因として存在していると考えられます。

もちろん、VAEや拡散モデルがこうした要因を人間に分かる形で必ず分離してくれるわけではありません。
しかし重要なのは、

観測されたデータ $x$ の背後に、より抽象的な潜在表現 $z$ を考える

という発想です。

この考え方は、物理でも非常に自然です。

物理では、観測量そのものだけでなく、その背後にある状態変数、秩序変数、場、ハミルトニアンなどを考えます。
機械学習における潜在変数も、ある意味では「観測データの背後にある自由度」を表していると見ることができます。


7. VAE:生成AIの構造を最小限に含むモデル

ここで VAE(Variational Autoencoder; 変分オートエンコーダ)を見てみます。

VAEは、現在の巨大な生成AIと比べると小さなモデルですが、生成AIの考え方を理解する上で非常に良い入口です。

VAEでは、データ $x$ の背後に潜在変数 $z$ があると考えます。

z \sim p(z)

として、通常は

p(z) = \mathcal{N}(0, I)

のような標準正規分布を仮定します。

そして、潜在変数 $z$ からデータ $x$ が生成されると考えます。

p_\theta(x|z)

ここで $\theta$ は decoder 側のパラメータです。

つまり、VAEの生成過程は

z \rightarrow x

です。

しかし、学習時には逆に、手元にはデータ $x$ があります。
そのため、

x \rightarrow z

という推論も必要になります。

この推論を担うのが encoder です。

VAEでは encoder を

q_\phi(z|x)

と書きます。

ここで $\phi$ は encoder 側のパラメータです。

つまり VAE には、

  • encoder: $q_\phi(z|x)$
  • decoder: $p_\theta(x|z)$

の2つがあります。

構造としては、

x
\rightarrow
z
\rightarrow
\hat{x}

です。

ただし、通常の autoencoder と違って、VAEでは $z$ を一点として決めるのではなく、確率分布として扱います。


8. VAEの損失関数:再構成誤差とKLダイバージェンス

VAEの損失関数は、大きく分けると2つの項からなります。

L
=
L_{\mathrm{recon}}
+
L_{\mathrm{KL}}

1つ目は 再構成誤差 です。

L_{\mathrm{recon}}

これは、入力画像 $x$ と、decoder が再構成した画像 $\hat{x}$ がどれだけ近いかを測ります。

もう1つは KLダイバージェンス です。

L_{\mathrm{KL}}
=
D_{KL}
\left(
q_\phi(z|x)
\| 
p(z)
\right)

これは、encoder が作る潜在変数の分布 $q_\phi(z|x)$ が、事前分布 $p(z)$ からどれだけ離れているかを測ります。

直感的には、VAEは次の2つを同時に満たそうとしています。

  • 入力データをよく再構成したい
  • 潜在空間をきれいな確率分布に保ちたい

もし再構成だけを重視すれば、潜在空間は複雑で不規則になります。
逆に KL 項だけを重視すれば、潜在空間はきれいになりますが、データの情報を十分に保持できません。

したがって VAE は、

データを説明する能力
潜在空間を滑らかに保つ制約

のバランスを取るモデルです。


9. ELBOと変分推論

VAEの背後には 変分推論(variational inference) があります。

本来、生成モデルでは

p_\theta(x)
=
\int p_\theta(x|z)p(z)\,dz

を最大化したいです。

これは「データ $x$ がモデルから生成される確率」を大きくする、という意味です。

しかし、この積分は一般には簡単に計算できません。
そこで、近似分布

q_\phi(z|x)

を導入し、直接扱いにくい真の事後分布

p_\theta(z|x)

を近似します。

このとき重要になるのが ELBO(Evidence Lower Bound)です。

\log p_\theta(x)
\ge
\mathbb{E}_{q_\phi(z|x)}
[
\log p_\theta(x|z)
]
-
D_{KL}
\left(
q_\phi(z|x)
\|
p(z)
\right)

右辺が ELBO です。

第1項は再構成に対応します。

\mathbb{E}_{q_\phi(z|x)}
[
\log p_\theta(x|z)
]

第2項は潜在分布を事前分布へ近づける正則化項です。

D_{KL}
\left(
q_\phi(z|x)
\|
p(z)
\right)

つまり VAE の学習とは、

ELBOを最大化すること

です。

損失関数として最小化する場合は、符号を反転して

L_{\mathrm{VAE}}
=
-
\mathrm{ELBO}

を最小化します。


10. 自由エネルギーとの対応

統計力学では

F = E - TS

という 自由エネルギー が重要です。

ここで

  • $E$ : エネルギー
  • $T$ : 温度
  • $S$ : エントロピー

です。

系は、エネルギーを下げようとする一方で、エントロピーも関係するため、最終的には自由エネルギーが重要になります。

変分推論でも、これと似た構造が現れます。

ELBOは、

\mathcal{L}
=
\mathbb{E}_{q}
[
\log p(x,z)
]
-
\mathbb{E}_{q}
[
\log q(z)
]

のように書けます。

第1項は、モデルのエネルギーに関係する項と見ることができます。
第2項は、近似分布 $q$ のエントロピーに関係する項です。

このため、変分推論はしばしば自由エネルギー最小化と対応づけて理解されます。

もちろん、ここでの自由エネルギーは、熱力学的自由エネルギーそのものではありません。
しかし、

エネルギー的な項とエントロピー的な項のバランスを取る

という構造は非常によく似ています。

この意味で、VAEは統計力学的な視点からも自然に理解できます。


11. 再パラメータ化トリック

VAEで重要なのが 再パラメータ化トリック(reparameterization trick) です。

encoder は、入力 $x$ に対して潜在変数 $z$ の分布を出力します。
典型的には、

q_\phi(z|x)
=
\mathcal{N}
\left(
\mu_\phi(x),
\sigma_\phi(x)^2
\right)

とします。

ここで、

  • $\mu_\phi(x)$ : 平均
  • $\sigma_\phi(x)$ : 標準偏差

です。

普通に考えると、

z \sim \mathcal{N}
\left(
\mu_\phi(x),
\sigma_\phi(x)^2
\right)

というサンプリング操作は、勾配を通すのが難しいです。

そこで、

\epsilon \sim \mathcal{N}(0, I)

を先にサンプルして、

z
=
\mu_\phi(x)
+
\sigma_\phi(x)\epsilon

と書き直します。

これが再パラメータ化トリックです。

この書き換えにより、ランダム性は $\epsilon$ に押し込められ、$\mu_\phi(x)$ と $\sigma_\phi(x)$ には勾配を流せるようになります。

この操作は非常に重要です。

なぜなら、これによって

確率的な潜在変数を持つ生成モデルを、通常のニューラルネットと同じように誤差逆伝播で学習できる

からです。


12. VAEの潜在空間

VAEを学ぶ上で一番重要なのは、潜在空間の考え方です。

VAEでは、画像 $x$ を直接覚えるのではなく、画像を潜在変数 $z$ に写します。

x \rightarrow z

そして、その $z$ から画像を再構成します。

z \rightarrow x

このとき、潜在空間がうまく学習されると、近い $z$ は似た画像を生成します。

たとえば、手書き数字であれば、潜在空間の中で少し移動すると、

  • 数字の傾きが変わる
  • 太さが変わる
  • 丸みが変わる
  • ある数字から別の数字へ連続的に変化する

といったことが起こります。

この意味で、VAEは

データを滑らかな潜在空間に埋め込むモデル

と見ることができます。

これは生成AIの本質を考える上で非常に重要です。

生成とは、単に過去のデータをコピーすることではありません。
学習された潜在空間の中を移動し、そこから新しいサンプルを作ることです。

ただし、ここで注意も必要です。

VAEが生成するものは、基本的には学習データから作られた潜在空間の内部にあります。
つまり、VAEは学習データの分布をもとに、その内部を補間したり、近傍を探索したりします。

この点は、後で「創造性」を考えるときに重要になります。


13. 潜在空間と「考える」ということ

ここまでで、VAEは

データを潜在空間に写し、その潜在空間からデータを生成するモデル

だと見ました。

この見方は、生成AIを理解する上で非常に有用です。

AIは、膨大なデータから表現空間を学習します。
そして、その表現空間の中で、既存のパターンを組み合わせたり、補間したり、変形したりします。

この能力は非常に強力です。
実際、既存の概念、既存の知識、既存の言葉、既存の画像、既存のコードの空間の中では、AIは人間を大きく助けてくれます。

しかし、ここで次の問いが出てきます。

潜在空間そのものは、どうやって拡張されるのか?

VAEは、与えられたデータから潜在空間を学習します。
大規模生成AIも、膨大なテキストや画像から表現空間を学習します。

その空間の中を探索するだけでも、多くの新しい組み合わせは生まれます。
既存の思考や既存の演算子の組み合わせだけでも、実際に新しい発見が生まれる可能性はあります。

しかし、科学史を振り返ると、重要な発見の中には、

既存の空間の中で最適解を探すだけではなく、空間そのものを作り替える

ようなものがあります。

たとえば、負の数が導入される前には、数の世界は正の数を中心に考えられていました。
複素数が導入されると、数直線は複素平面に拡張されました。
量子力学では、状態は位相空間上の点ではなく、ヒルベルト空間のベクトルとして表されるようになりました。
物理量は数ではなく、演算子として扱われるようになりました。

これは単なる計算能力の向上ではありません。
考えるための枠組み自体が変わっています。

この意味で、人間の創造性の一部は、

  • 新しい数を作ること
  • 新しい演算子を作ること
  • 新しい座標系を作ること
  • 新しい状態空間を作ること
  • 新しい問いの立て方を作ること

にあるのだと思います。


14. 岡潔の思想を生成AI時代に読み直す

数学者・岡潔は、数学の発見について、意識的な論理計算だけでは説明できない側面を繰り返し述べています。

ここで注意しておきたいのは、岡潔の言葉を単純な精神論として使いたいわけではない、ということです。
また、この記事では厳密な引用をするのではなく、岡潔の随筆や思想に見られる基本的な姿勢を、生成AI時代の文脈で読み直してみます。

岡潔が重視したのは、論理だけではなく、長い時間をかけて問題を抱え続けること、意識の表面だけではない思考の働き、そして「情緒」と呼んだ深い認識のあり方でした。

現代的な言葉で言えば、これは

既存の記号操作だけではなく、問題の見え方そのものが変わる過程

と言えるかもしれません。

VAEの言葉で比喩的に言えば、通常の生成は潜在空間の中の移動です。
一方、科学や数学における大きな発見は、潜在空間の中の一点を見つけることではなく、

潜在空間そのものを拡張すること

に近い場合があります。

もちろん、これは厳密な数学的対応ではありません。
VAEの潜在空間と人間の創造性を直接同一視することはできません。

しかし、考えるための比喩としては有用です。

AIは、既存のデータから非常に豊かな表現空間を作ります。
その中での探索は、今後ますます強力になるでしょう。

一方で、人間が今後も担うべき重要な役割の一つは、

そもそも何を空間の軸にするのか
何を変数とみなすのか
どの演算を許すのか
どの問いを意味のある問いとみなすのか

を考えることかもしれません。

これは、AIに対抗するという話ではありません。
AIを使いながら、AIが作る表現空間の外側や境界を意識する、ということです。


15. 大学生は何から始めればよいのか

ここで重要なのは、

答えのない問題を考えよう

とだけ言っても、大学生にはあまり役に立たない、ということです。

真面目な学生ほど、考えすぎて動けなくなる可能性があります。
「自分は何を考えるべきなのか」「本当に新しいことをしなければならないのか」と悩んで、手が止まってしまうかもしれません。

しかし、研究における思考は、何もしないで悩むことではありません。

むしろ逆です。

  • コードを書く
  • 実験する
  • グラフを描く
  • 論文を読む
  • 人に説明する
  • 失敗する
  • もう一度やる

という反復の中で、少しずつ自分の問いが育ちます。

最初から新しい枠組みを作る必要はありません。
まずは既存の枠組みを学ぶ必要があります。

線形代数を学ぶ。
確率論を学ぶ。
統計力学を学ぶ。
Pythonを書く。
VAEを動かす。
拡散モデルの式を追う。
論文を読む。
再現実験をする。

その過程で、少しずつ違和感が生まれます。

  • なぜこの仮定を置いてよいのか
  • なぜこの損失関数でうまくいくのか
  • なぜこの分布を仮定するのか
  • なぜこのモデルでは説明できないデータがあるのか
  • なぜこの現象は教科書通りに振る舞わないのか

この小さな違和感を、すぐに消さないことが大事です。

AIに聞けば、多くの答えは返ってきます。
しかし、AIの答えで違和感が消えない場合があります。
その違和感は、単なる理解不足かもしれません。
しかし時には、本当に重要な問いの入口かもしれません。

したがって、大学生がまず始めるべきことは、

手を動かしながら、自分の中に残る違和感を観察すること

だと思います。

これは、精神論ではありません。
研究の方法論として重要です。

情報が多すぎる時代には、情報を集める能力だけでなく、

情報から少し離れて、自分の中で考えを沈殿させる時間

も必要になります。

AIを使わない方がよい、という意味ではありません。
むしろ AI は積極的に使えばよいと思います。

ただし、AIが返してきた答えをそのまま受け取るのではなく、

どこまでが既存の枠組みの中の答えなのか
どこから先がまだ名前のついていない問題なのか

を意識することが重要です。


16. ランダム行列

深層学習では巨大な重み行列

W \in \mathbb{R}^{N\times N}

が登場します。

このとき重要になるのが

固有値分布

です。

もし行列要素がランダムなら、適切な条件のもとで固有値密度は

\rho(\lambda)
=
\frac{1}{2\pi\sigma^2}
\sqrt{4\sigma^2-\lambda^2}

という Wigner半円則 に従います。

これはもともと原子核物理の文脈で発展した考え方ですが、巨大行列のスペクトルを統計的に理解するという発想は、深層学習でも重要です。

ニューラルネットの重み行列は、完全なランダム行列ではありません。
学習によって構造を持ちます。

そのため、学習前と学習後で固有値スペクトルがどう変化するかを見ることで、ネットワークがどのような表現を獲得したかを調べることができます。

これは、

巨大な自由度を持つ系を、個々の成分ではなくスペクトル分布として理解する

という意味で、物理的な見方と非常に相性が良いです。


17. AIと物理の歴史タイムライン

ここで少し歴史を振り返ってみます。
AIの発展は、実は物理の発展とかなり深く絡んでいます。

17.1 Boltzmann(1870s)

統計力学の父 Boltzmann は

S = k \log W

という式を提唱しました。

ここで

  • $S$ : エントロピー
  • $W$ : ミクロ状態数

です。

これは 確率と物理を結びつけた革命的な式 でした。

17.2 Shannon(1948)

Claude Shannon は

H = -\sum_i p_i \log p_i

という 情報エントロピー を導入しました。

Boltzmann のエントロピーと Shannon の情報エントロピーは、数学的に非常によく似ています。

ここで重要なのは、

不確実性を数式で扱う

という発想です。

この発想は、現代の機械学習にも深く関わっています。

17.3 Hopfield(1982)

物理学者 John Hopfield は、ニューラルネットワークをエネルギー最小化系として定式化しました。

Hopfieldネットのエネルギーは

E =
-\frac12
\sum_{ij} w_{ij} s_i s_j

のように書けます。

これは Isingスピン模型 と非常に近い構造を持っています。

つまり Hopfield network は、

記憶をエネルギー地形の安定点として表すモデル

と見ることができます。

17.4 Hinton(1980s–)

Geoffrey Hinton は Boltzmann machine などの確率的ニューラルネットワークの発展に大きく貢献しました。

Boltzmann machine は、確率的スピン系として定式化されたニューラルネットです。

つまり、統計力学の考え方を機械学習に持ち込んだモデルとも言えます。

2024年のノーベル物理学賞は、John Hopfield と Geoffrey Hinton に授与されました。
これは、機械学習と物理学の関係を考える上でも象徴的な出来事でした。

17.5 VAE(2013–2014)

VAEは、生成モデルの中で非常に重要な位置を占めます。

VAEでは、

  • 潜在変数
  • 変分推論
  • ELBO
  • 再パラメータ化トリック
  • encoder-decoder 構造

が一つのモデルの中にまとまっています。

この意味で、VAEは生成AIを理解するための非常に良い中間地点です。

17.6 Transformer(2017)

現在の大規模言語モデルの中心的構造が Transformer です。

Transformer の中心にあるのは attention です。

Attention(Q,K,V)
=
softmax
\left(
\frac{QK^T}{\sqrt d}
\right)V

ここで

  • $Q$ : Query
  • $K$ : Key
  • $V$ : Value

です。

この計算は、

類似度に基づく重み付き平均

と理解できます。

言い換えると、入力トークン同士の関係を計算し、どの情報をどれだけ参照するかを決めているわけです。

17.7 拡散モデル(2020s)

近年の画像生成AIで非常に重要なのが 拡散モデル(diffusion model) です。

拡散モデルは、データに徐々にノイズを加えて壊していく過程と、その逆過程を学習するモデルです。

この背景には、

  • 確率過程
  • Langevin dynamics
  • score function
  • 逆時間SDE

といった、数理物理に近い概念が現れます。


18. 拡散モデルと確率過程

近年の画像生成AIの中心にあるのが

拡散モデル(diffusion model)

です。

名前の通り、このモデルの背景には 確率過程としての拡散 があります。

ただし重要なのは、

物理の拡散方程式をそのまま逆に解いているわけではない

という点です。

拡散モデルは、

確率過程の時間反転を、確率密度の勾配(score)を用いて近似的に構成する方法

です。

以下でその構造を順に見ていきます。


19. 拡散過程

粒子がランダム運動をするとき、その確率密度 $p(x,t)$ は拡散方程式に従います。

最も単純な場合には

\frac{\partial p(x,t)}{\partial t}
=
D \nabla^2 p(x,t)

となります。

ここで

  • $p(x,t)$ : 確率密度
  • $D$ : 拡散係数

です。

この方程式は、

  • インクが水に広がる
  • 花粉が空気中に拡散する
  • 熱が広がる

といった現象を記述します。

確率過程の立場では、この拡散は

dx = \sqrt{2D}\, dW

という ブラウン運動(確率微分方程式) として書くこともできます。

より一般には drift を含む Fokker-Planck 方程式で記述されますが、ここでは最も単純な拡散の場合を考えます。


20. データを拡散させる

拡散モデルでは、この確率過程をデータに対して人工的に適用します。

具体的には、

x_0 \rightarrow x_1 \rightarrow x_2 \rightarrow \dots \rightarrow x_T

と進めていくと、

画像
↓
ノイズが増える
↓
構造が崩れる
↓
完全なノイズ

になります。

数学的には、この過程はガウスノイズを少しずつ足していく過程です。

単純な拡散の場合には、

p_t(x)
=
p_0(x) * G_t

という ガウスカーネルとの畳み込み として理解できます。

つまり、データ分布が時間とともに拡散していく過程です。


21. 逆過程はどうなるか

ここで自然な疑問が生まれます。

もし

ノイズ → データ

という逆過程を構成できれば、データを生成できるはずです。

しかしここで問題があります。

一般に、

拡散方程式の時間反転は不安定で、そのまま解くことはできません。

ノイズによって失われた情報を単純に戻すことはできません。
熱方程式を時間反転して解こうとすると、微小な誤差が爆発するのと同じです。

そこで重要になるのが

\nabla_x \log p_t(x)

という量です。


22. score function

この

\nabla_x \log p_t(x)

score function と呼ばれます。

これは

\nabla \log p(x)
=
\frac{\nabla p(x)}{p(x)}

なので、確率密度が増加する方向を表しています。

直感的には、

データ分布の山がどちらにあるかを示すベクトル場

です。

拡散モデルでは、この score function をニューラルネットで近似します。

s_\theta(x,t)
\approx
\nabla_x \log p_t(x)

つまりネットワークは、

データ分布の勾配場

を学習しています。

ここが、拡散モデルを物理的に見る上で非常に重要です。


23. 逆拡散の構成

研究の重要な結果として、拡散過程の逆時間ダイナミクスは

dx =
\left[
f(x,t)
-
g(t)^2 \nabla_x \log p_t(x)
\right] dt
+
g(t) d\bar W

という 逆時間確率微分方程式 で表されます。

ここで

\nabla_x \log p_t(x)

が必要になります。

しかし、この量は通常未知です。

そこで拡散モデルでは、

s_\theta(x,t)
\approx
\nabla_x \log p_t(x)

をニューラルネットで学習します。

学習が終わると、完全なノイズから出発して、逆SDEを数値的にシミュレーションします。

すると、

ノイズ
↓
構造が現れる
↓
輪郭が現れる
↓
画像

という過程が現れます。

これが画像生成の基本的な流れです。


24. 物理的な見方

ここで確率分布が

p(x) \propto e^{-E(x)/kT}

という Boltzmann 分布だと思うと理解しやすくなります。

このとき

\log p(x)
=
-\frac{E(x)}{kT}
+
const

なので

\nabla \log p(x)
=
-\frac{1}{kT}
\nabla E(x)

となります。

つまり、

score
=
-\frac{1}{kT}
\nabla E

です。

物理では力は

F = -\nabla E

なので、score は力に対応する量と見ることができます。

この構造は Langevin dynamics に非常によく似ています。

この意味で拡散モデルは、

未知のエネルギー関数の勾配場を学習するモデル

と見ることもできます。


25. VAEと拡散モデルの違い

ここで、VAEと拡散モデルを比較しておきます。

VAEは、

z \rightarrow x

という生成過程を明示的に持ちます。

潜在変数 $z$ は、通常は低次元の標準正規分布からサンプルされます。
decoder はその $z$ からデータを生成します。

一方、拡散モデルでは、生成は

ノイズ → 逆拡散 → データ

として行われます。

VAEが比較的明示的な潜在空間を持つのに対し、拡散モデルは多段階の確率過程としてデータ分布へ近づいていきます。

非常に大ざっぱに言えば、

  • VAE : 潜在空間から一気に生成する
  • 拡散モデル : ノイズから少しずつ生成する

という違いがあります。

もちろん実際には、latent diffusion のように、VAE的な潜在空間と拡散モデルを組み合わせたモデルもあります。

重要なのは、どちらも

データ分布をどのように表現し、どのように生成するか

を扱っているということです。

VAEは、生成AIの構造を理解するための非常に見通しの良いモデルです。
拡散モデルは、確率過程と score によって高品質な生成を実現する強力なモデルです。


26. ここまでの流れ

ここまで見てきたように、生成AIの内部には

  • 線形代数
  • 非線形写像
  • 最適化
  • 確率論
  • 変分推論
  • 統計力学
  • 確率過程
  • ランダム行列

といった数理科学の基本概念が現れます。

ニューラルネットは巨大な線形代数として見えます。

学習は損失関数の最小化であり、物理的にはエネルギー最小化に似ています。

SGD はノイズを含む緩和運動として見ることができます。

VAE は、データを潜在空間に写し、その潜在空間から生成するモデルです。

拡散モデルは、データをノイズへ拡散させ、その逆過程を score によって構成するモデルです。

統計力学の視点では

E(x) = - \log p(x)

と定義すると、

score = \nabla \log p(x)

はエネルギー勾配に対応します。

その意味で拡散モデルは、

未知のエネルギー関数の勾配場を学習するモデル

と見ることもできます。

一方、VAEの潜在空間は、

データをどのような表現空間に埋め込むか

という問いを非常に明確に示してくれます。

この「表現空間」や「潜在空間」という考え方は、生成AIを理解する上で中心的です。

そして同時に、生成AI時代の人間の思考を考える上でも重要です。

AIが既存のデータから潜在空間を学習し、その中を探索するなら、
人間の仕事の一部は、

どの潜在空間で考えるべきか
そもそも今の空間で十分なのか
新しい変数、新しい演算子、新しい枠組みが必要ではないか

を考えることにあるのかもしれません。


27. 最後に

生成AIは確かに新しい技術です。

しかし、その背後には

  • 線形代数
  • 確率論
  • 統計力学
  • 変分法
  • 確率過程
  • ランダム行列

といった古い数学や物理があります。

そういう意味で生成AIは、新しい技術であると同時に、

古い数学や物理の再発見の場

とも考えられます。

VAEを学ぶと、生成AIが単に「それっぽいものを出している」のではなく、

データの背後にある潜在空間を学習し、そこから新しいサンプルを生成している

ことが見えてきます。

拡散モデルを学ぶと、

データ分布の score を学習し、確率過程の逆時間発展として生成を行っている

ことが見えてきます。

このように数式で眺めると、生成AIは単なる便利な道具ではなく、数理科学の歴史の中に位置づけられる対象として見えてきます。

一方で、生成AIが強力になればなるほど、人間にとって重要になる問いもあります。

それは、

既存の潜在空間の中で最適解を探すだけでよいのか

という問いです。

AIは、既存のデータから表現空間を作り、その中を非常に高速に探索します。
その能力は今後さらに強くなるでしょう。

しかし、科学や数学の歴史には、既存の空間を探索するだけでなく、空間そのものを作り替えるような発見がありました。

新しい数を導入する。
新しい演算子を導入する。
新しい状態空間を考える。
新しい保存量を見つける。
新しい問いの立て方を作る。

これは、単なる計算速度の問題ではありません。
何を変数と見なし、何を関係と見なし、何を問うべき問題と見なすか、という枠組みの問題です。

岡潔の思想を現代的に読み直すなら、そこには、

意識的な論理操作だけではなく、長い時間をかけて問題を抱え続けること
既存の言葉や枠組みでは捉えられないものを、少しずつ形にしていくこと

の重要性があるように思います。

ただし、それは何もしないで悩むことではありません。

大学生にとってまず大事なのは、手を動かすことです。

コードを書く。
VAEを動かす。
拡散モデルの式を追う。
実験する。
データを見る。
グラフを描く。
論文を読む。
人に説明する。
うまくいかない理由を考える。

その過程で、自分の中に残る小さな違和感を観察する。

この違和感は、最初は単なる理解不足かもしれません。
しかし、時には新しい問いの入口かもしれません。

生成AI時代に必要なのは、AIを使わないことではありません。
むしろ、AIを使い、既存の知識を学び、既存の数式を追い、既存のモデルを動かすことです。

しかし同時に、

その答えは、どの枠組みの中で正しいのか
その枠組みの外側には何があるのか

を考え続けることも必要です。

物理でそうであるように、本質はしばしば数式の中に宿ります。
しかし、新しい数式は、最初から数式として現れるとは限りません。

最初は、うまく言葉にできない違和感として現れます。
その違和感を、手を動かしながら、静かに育てること。

生成AIの時代に、人間が考えるということは、案外そこから始まるのかもしれません。


関連記事

google colab で遊びながらニューラルネットを学ぼうという記事はこちらです。

VAE の Google Colab 入門記事はこちら。(他にも良質なwebコンテンツは多々あります。)

変分法・汎関数微分についてはこちらです。

生成AIと英語論文の修正について考えてみたのはこちら。


参考文献・参考リンク

D. P. Kingma and M. Welling, “Auto-Encoding Variational Bayes”
https://arxiv.org/abs/1312.6114

J. Ho, A. Jain, and P. Abbeel, “Denoising Diffusion Probabilistic Models”
https://arxiv.org/abs/2006.11239

Y. Song et al., “Score-Based Generative Modeling through Stochastic Differential Equations”
https://arxiv.org/abs/2011.13456

Vaswani et al., “Attention Is All You Need”
https://arxiv.org/abs/1706.03762

The Nobel Prize in Physics 2024
https://www.nobelprize.org/prizes/physics/2024/summary/

補足 : 量子AIの時代へ

さらに先には、量子AIという方向もあります。量子AIは、単に現在のニューラルネットを量子コンピュータで高速化する技術、というだけではありません。量子状態はヒルベルト空間のベクトルであり、観測量は演算子として表され、重ね合わせやエンタングルメントによって古典的な確率分布とは異なる表現を持ちます。そのため、量子AIの本質的な面白さは、既存のAIを少し速くすることよりも、データ・確率・生成・最適化を記述するための新しい状態空間や新しい演算子を導入できる可能性にあります。VAEが潜在空間を学習し、拡散モデルが確率分布の勾配場を学習するなら、量子AIは将来的に、古典的な潜在空間では表しにくい構造を、量子状態や量子演算として表現する方向へ進むかもしれません。ただし現時点では、量子AIがすぐに実用的な生成AIを置き換えるというより、むしろ「AIとはどのような空間で情報を表現し、どのような演算で世界を理解するのか」という問いを、より根本から考え直すための研究領域として見るのがよいと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?