書籍のレビュー・概要
テキストに対応する画像を生成する――従来は困難であった高次元のデータを創り出す生成モデルの技術が注目されている。現在、最高の性能を発揮し、画像・動画・音声・化合物の生成など、多様な応用が期待されているのが拡散モデルである。その数理の心から課題までを世界に先駆けて解説し、理論のさらなる発展を追究する。 ■爆発的に応用が広がる拡散モデル (本書「はじめに」より抜粋) 拡散モデルはデータを生成できるモデル、いわゆる生成モデルの1つで、注目を集めている。拡散モデルはその生成品質の高さや用途の多様性だけでなく、これまでの生成モデルにはない高い拡張性があり、多くの分野で急速に使われ始めている。 拡散モデルを利用した成果の代表例は、2022年に登場した DALL-E2 やMidjourney、Stable Diffusion であろう。これらのサービス/ソフトウェアは、ユーザーが指定したテキストに対応する画像を生成する。その際、生成対象だけでなく、そのスタイルやテーマを自由に指定することができる。そのため世界中の多くのユーザーの注目を集めており、既に膨大な量の作品が生成されている。自然言語がカバーする膨大な対象、スタイル、テーマに対応する高品質な画像を生成できるこれらのサービスの技術の根幹が拡散モデルであり、そのポテンシャルの高さを示している。 拡散モデルは従来の生成モデルと比べて優れた点が多くある。1つ目は、学習が安定していることである。拡散モデルでは 1つのモデルで安定した最尤(さいゆう)推定を使って学習すればよく、敵対的生成モデル(例えば GAN)のように学習が不安定ではなく、また変分自己符号化器(VAE)のように生成モデルと同時に認識モデルを学習する必要がない。2つ目は、難しい生成問題を簡単な部分生成問題に自動的に分解し、難しいデータ対象も生成できるように学習できることである。拡散モデルの生成過程は、多くの確率層を使った非常に深いネットワークとみなすことができる。この特徴をもとに、拡散モデルは生成モデルとしては初めて、複雑な動画生成の学習にも成功した。3つ目は、様々な条件付き生成を実現できる点である。ガイダンスとよばれる仕組みを使って、後付け(プラグイン)で条件付けを実現でき、さらにその条件付けの強さを自由に設定でき、品質と多様性のトレードオフをとれる。この特徴はエネルギーベースモデルがもつが、学習や推論が難しかった。拡散モデルは初めて大規模なエネルギーベースモデルを実現したといえる。4つ目は、生成における対称性、不変性を組み込むことができる点である。世の中の様々な現象やデータには対称性がみられるが、拡散モデルを使ってこうした対称性を満たすような生成モデルを設計することができる。 拡散モデルでは、データにノイズを徐々に加えていき、データを完全なノイズに変換する拡散過程を考える。そして、この拡散過程を逆向きにたどる逆拡散過程によって生成過程を定義する。すなわち、完全なノイズから徐々にノイズを除去するデノイジングによってデータを生成する。このように、拡散モデルはデータを破壊することで、その生成方法を学習するというユニークなアイディアに基づいている。 拡散モデルは潜在変数モデルに基づく生成モデルとみなすことができる。潜在変数モデルに基づく生成モデルは、はじめに潜在変数を生成し、次に潜在変数から観測データを生成する。拡散モデルでは、最初のノイズや途中のノイズを加えたデータが潜在変数であるとみなせる。 潜在変数モデルは学習の際、観測データからそれを生成している潜在変数を推定する必要があり、これを実現するのが認識モデルである。一般に生成過程が単純であったとしても、観測データに対する潜在変数の事後確率分布は複雑になりやすく、生成モデルより認識モデルの学習のほうが難しい。拡散モデルは、学習の必要がない固定の拡散過程を認識モデルとして使っているとみなすことができ、生成モデルのみを学習する。拡散過程は事後確率分布が潰れてしまう、いわゆるモード崩壊が発生せず、また、入力に対応する任意の深さにある潜在変数の事後確率分布を解析的に求められるという優れた性質をもつ。 拡散モデルの学習は、様々な強さのノイズを加えたデータから、加えられたノイズを推定するデノイジングスコアマッチングとよばれるタスクを解くことで実現される。生成時には、推定されたノイズを使ってデノイジングしていくことでデータを生成することができる。 一方、対数尤度(ゆうど)の入力についての勾配、つまり対数尤度が最も急激に増加する方向を表すベクトルをスコアとよぶ。そして、本書ではデノイジングスコアマッチングによって得られるデノイジングベクトルとスコアが一致することをみる。そして、拡散モデルは様々な強さのノイズを加えた攪乱後分布上のスコアに従ってデータを遷移していくランジュバン・モンテカルロ法を使ってデータを生成しているとみなすことができる。 拡散過程はノイズを加えていくステップを極限まで細かくしていくことにより確率微分方程式(SDE)に変換でき、さらに同じ確率分布を表す常微分方程式(ODE)に変換できることをみていく。このようにして拡散モデルは、SDE、ODEの分野で発展している様々な理論や手法を利用することができる。例えば、ODEに変換することによって、拡散モデルはデータ分布からノイズ分布への決定的な過程で変換される可逆変換を与えることができる。これによりデータの対数尤度を不偏推定することができたり、データの潜在表現を得ることができる。 拡散モデルは登場してまだ間もない。2015年に拡散モデルの最初のアイディアが Jascha Sohl-Dickstein氏らによって発表された。非平衡熱力学に基づく手法であり、まったく新しいアプローチであった。しかし当時は GAN やVAE が大きく成功しはじめた頃であり、また拡散モデルの生成品質も十分ではなく、しばらくは注目されなかった。 2019年に Yang Song 氏が、スコアを使った生成モデルであるスコアベースモデルを提案し、その際に、データに様々な強さのノイズを加えた複数の攪乱後分布上のスコアを組み合わせることにより高品質なデータ生成ができることを示した。2020 年に Jonathan Ho 氏らによって拡散モデルが再発見され、拡散モデルとスコアベースモデルが統一的なデノイジングスコアマッチングの枠組みで扱えること、また、デノイジングに使うモデル(ニューラルネットワークアーキテクチャ)を工夫することにより他の生成モデルに匹敵する生成品質を達成できることが示された。 そして 2021年には拡散モデルの SDE 化や ODE 化が示された。また、実際のアプリケーションにおいて重要である、条件付き生成が示された。こうした発展をみるなかで、拡散モデルの優れた点が注目され、画像や音声、点群、化合物の生成など、多くの問題に対して拡散モデルが急速に使われるようになった。さらに、生成以外にも補完や編集、超解像、データ圧縮、敵対的摂動に対する頑健性向上などにおいても従来手法を凌駕する性能が達成できることが示され、爆発的に応用が広がっていった。 本書では拡散モデルの基本的な考え方から、その発展的な捉え方と、その応用について解説する。なお本書では拡散モデルの考え方や数理的な構造に注目し、発展を支えているもう 1つの重要な柱であるディープラーニングやニューラルネットワークについては詳しく取り上げていない。これらについては他のディープラーニングの文献(例えば拙著の文献 [1] [2] など)などを参考にしてほしい。 本書を通じて、生成モデルの可能性に興味をもっていただけたらと思う。 岡野原 大輔 ◆正誤表 ☞ PDFファイル[52KB] (23.4.5) ◆著者・岡野原 大輔氏による本書のサポートページ https://hillbig.github.io/diffusion-models/