拡散(Diffusion)モデルは実は進化計算だった
生成AIといえば、拡散モデルである。
そもそも、最初にブレイクした画像生成AIは、StableDiffusiionだ。そしてこれはもちろん名前の通り「拡散モデル」である。
拡散モデルは、ノイズの入った情報からプロンプトを手掛かりにノイズを除去していく過程を学習して、転じてプロンプトから画像を生成できるようになる。しかし、この学習過程は、実は遺伝的アルゴリズムのような進化計算と同じであるという衝撃的な論文が発表された。
この発見は、非常にプログラマーの直感に反する。
進化的アルゴリズムとは、「アルゴリズム」すなわち計算手順であって、計算式ではない。
拡散モデルの学習過程は単一の計算式として表現できてしまう。つまり、アルゴリズムではない。
しかし、実際にはそこで行われている計算は、進化的アルゴリズムと本質的に等価なのだという。
これは直感には反するが、進化アルゴリズムの信奉者としては、妙に納得感がある。
進化アルゴリズムがなぜ効果的なのかということをこれまで誰も説明できていなかった。
進化アルゴリズムの「元ネタ」は明らかに現実の生物学であり、それはニューラルネットがなぜ有効なのか誰にも説明できなかったのと同じだ。
どちらも、「なぜ有効なのか」はよくわからないが、「確かに有効である」ことは誰でも知っている。
画像生成において驚くような成果が得られた時に、その内部構造が進化アルゴリズムと等価であるということの発見は、「進化アルゴリズム確かに有効である」ことの裏付けにもなる。
今や、拡散モデルが全くダメだという人はいないだろうし、逆にまだ拡散モデルが適用されていない、または適用が極めて難しいとされている高周波領域、例えば言語モデルに拡散モデルを適用する動機づけにもなるかもしれない。
この論文は進化的アルゴリズムと拡散モデルが等価であるという説明を踏まえた上で、拡散進化計算を提案している。加速サンプリングという方法が提案され、従来の進化計算よりも効率的に最適解へたどり着くことができる。それだけでなく、拡散モデルと進化モデルという全く異なる分野に思われていた二つのモデルを統合し、さらなる高みへ行こうとしているところが実に画期的だ。
ソースコードもあるので興味のある人は是非
来月に迫ったAIフェスの僕のセッションでもこの話題に触れるだろう