拡散モデルは、主に画像生成やその他のコンピューター・ビジョンのタスクに使用される生成モデルです。拡散ベースのニューラル・ネットワークは、ディープラーニングを通じてトレーニングされ、ランダムなノイズを含むサンプルを徐々に「拡散」させてから、その拡散プロセスを逆に実行することで高品質の画像を生成します。
拡散モデルは、生成AIの最前線であるニューラル・ネットワークの 1 つであり、特にStability AIの Stable Diffusion、OpenAI の DALL-E(DALL-E-2 以降)、Midjourney、GoogleのImagenなどの人気のテキスト画像変換モデルでよく知られています。これらは変分オートエンコーダ(VAE)、生成的敵対ネットワーク(GAN)、またPixelCNNをはじめとする自己回帰モデルなど、画像合成に使用される他の機械学習アーキテクチャの性能と安定性を向上させたものです。
拡散モデルの基本的なアイデアは物理学からインスピレーションを得たもので、時間の経過とともにコップ一杯の水に広がる一滴のインクの分子のようなものとしてピクセルを考えます。インクの分子のランダムな動きが最終的にガラス内に均等に分散するのと同様、画像にノイズをランダムに導入していくと、最終的にはテレビのホワイトノイズのように見えるようになります。その拡散プロセスをモデル化し、それを逆転させる方法を何らかの方法で学習することで、人工知能モデルはランダムなノイズのサンプルを単に「ノイズ除去」するだけで新しい画像を生成できるのです。
拡散モデルは、画像生成の他、加筆や解像度向上などの画像処理タスクに最も顕著に関連するものですが、その用途は音声生成、医薬品設計、分子生成などの他の領域にも及んでいます。わかりやすくするために、この記事では画像生成に焦点を当てます。
拡散モデルを説明し理解するためにまず押さえておくべき点は、現在「拡散」と呼ばれている生成プロセスが、2つの異なる数学的アプローチを通じて、2つの別個の機会に独立して発見されたものであるということです。要するに、概念的には単純ながら数学的には複雑な拡散モデルの「動作」方法は複数存在します。
開発が進むにつれ、両方のアプローチからアイデアを借用し、それぞれの利点を融合させて、最終的に現在画像生成の分野で支配的な最新の拡散モデルが生まれました。したがって、拡散モデルの歴史と理論を簡単に確認するこことで、拡散モデルがどのように機能するかだけでなく、なぜ機能するのかについても理解しやすくなります。
物理学にインスピレーションを得た拡散モデルは、Sohl-Dicksteinらが2015年の論文「Deep Unsupervised Learning using Nonquilibrium Thirdynamics」で初めて紹介しました。彼らのアルゴリズムはランジュバン動力学を応用したものです。これは分子システムの運動をモデル化する手法であり、拡散モデルの基本前提「データをノイズに変換すれば、ノイズをデータに変換できるようになる」を裏付けるものです。
変分オートエンコーダ(VAE)などのほとんどの生成モデルと同様、Sohl-Dicksteinのアルゴリズムは、確率密度、つまりランダムにサンプリングされた変数xが特定の値の範囲内に入る相対尤度をモデル化したものでした。基本的には、トレーニング・データ・セットの確率密度関数をモデル化することで、アルゴリズムはトレーニング・データの分布に適合する可能性の高いサンプルを生成できるようになります。新しい画像を生成する際、モデルは、学習データのパターンから学習した確率分布に基づいて、ピクセル値がある特定の方法で分布する確率が高いと推定しています。
論理的には、確率密度関数ではすべての可能性の合計が1になる尤度が必要です。別の言い方をすれば、すべての可能性の確率の合計は、ちょうど100%にならなければいけません。このため、実用では多くの場合に正規化定数(確率関数に組み込まれ、全確率を1にまで減少させるための値)が必要になります。
すべての可能な変数値に対する有効な正規化定数の計算は、しばしば手に負えない(イントラクタブル)となります。つまり理論上は解決できるものの、計算に無限の時間が必要になるということです。このような場合、尤度ベースのモデルは、特定のモデル・アーキテクチャーに制限するか、正規化定数を解決可能な方法で近似させる優れた次善策を考え出す必要があります。
Sohl-Dickstein氏の研究とは別に、Yang SongとStefano Ermonは、2019年の論文「Generative Modeling by Estimating Gradients of the Data Distribution」で、ノイズ条件付きスコア・ネットワークと呼ばれる一種のエネルギー・ベース・モデルを開発しました。このアルゴリズムは、確率密度関数の対数の勾配 (∇ x)をモデル化したものです(対数:、確率密度関数: )。確率密度関数の勾配は、次のように記述されます。 これはSteinスコア 、あるいはシンプルに「スコア関数」と呼ばれます。
従来の確率密度関数とは異なり、スコア関数は確率密度を直接モデル化したものではない(したがって全確率を 1 に正規化する必要がない)ため、正規化定数が必要ありません。代わりに、スコア・マッチングを通じたトレーニングを行います。 ここではモデルがパラメーターθを学習することで、 スコア(つまり勾配)が学習データのデータ分布 q ( x )と一致する p θ ( x )を得ることができます。
このようなスコアベースの生成モデル(SGM)のもう1つの利点は、尤度ベースのモデルとは異なり、 p θ ( x )のモデル・アーキテクチャーに多くの制限がかからないということです。
SongとErmonは、自分たちのモデルの性能を向上させる方法を模索し、偶然にもSohl-Dicksteinらが採用したのと同じ手法にたどり着きました。彼らの論文では、「ランダムなガウスノイズでデータを乱すと、データ分布はコアベースの生成モデリングにさらに適したものになる」と述べられています。彼らのモデルは、当初は画像セグメンテーションのために開発されたU-Net アーキテクチャを使用して構築され、同様にランジュバン動力学を応用してサンプルを生成していました。
2020年、Hoらは、その画期的な論文「Denoising diffusion probabilistic models」(DDPM)の中で、Sohl-Dicksteinのアプローチを用いて、高品質の画像生成に変分推論を使用することを提案しました。彼らの論文は、証拠下限値(ELBO)を最大化して拡散モデルをトレーニングすること(確率ベースの最適化問題を解決可能な形で書き直す手法のひとつ)が、SGMをトレーニングするために使用されるスコアマッチング目標の組み合わせと本質的に同等であることを示しました。
Hoらはスコアマッチングを用いたSohl-Dicksteinのアプローチを取り入れることで、拡散確率モデルが、当時最先端だったGANに匹敵する画質を達成できることを実証しました。こうしたつながりは、Song、Ermon、Sohl-Dickstein、VAEの創設者であるDieterik P. Kingma氏を含むその他の研究者によって、2021年の論文「Score-Based Generative Modeling over Stochastic Dependial Equations(確率的差分方程式によるスコアベース生成モデリング)」でさらに検討されました。
その後、同年中にDariwalとNicholが前述の論文の洞察を活用して、「Diffusion Models Beat GANs on Image Synthesis」を発表し、拡散モデルを新しい最先端技術として確立しました。
継続的な研究による改良あってこそとはいえ、一般にSGMよりはDDPMが拡散モデルの主流であり続けています例えば、2022年に発表された影響力ある論文「High-Resolution Image Synthesis with Latent Diffusion Models(潜在拡散モデルによる高解像度画像合成)」では、効率性と費用対効果における重要な進歩がありました。
拡散モデルは学習において、ランダムなノイズでデータ点を破壊するまで段階的に徐々に拡散させ、その後、その拡散プロセスを逆行することを学習し、元のデータ分布を再構築します。
訓練された拡散モデルは、純粋なノイズのランダムな初期サンプルをノイズ除去 するだけで、訓練データに似た新しいデータ点を生成することができます。概念的には、これはノイズの多い画像が潜在変数として機能するノイズ除去オートエンコーダに近いものです。
ランダムなノイズを一貫性のある画像に直接変換するのは非常に難しく複雑ですが、ノイズの多い画像を少しでもノイズの少ない画像に変換するのは比較的簡単で単純です。したがって拡散モデルは、拡散を逆行するプロセスを、(ガウスノイズのような)単純な分布から(一貫性のある画像のような)より複雑な分布への、段階的で漸進的な変換として定式化します。
トレーニングとその後の拡散のデプロイのプロセスは、3つの主要なステージに分類できます。
順拡散プロセスの目的は、画像や音声サンプルなどのトレーニング・データセットのクリーンなデータを純粋なノイズに変換することです。最も一般的な方法では、データ分布全体がガウスになるまで、ガウス・ノイズを繰り返し注入します。
数学的にはこの段階的なプロセスはマルコフ連鎖として定式化されます。これは逐次時系列データをモデル化するための確率的プロセス(特定の確率的ルールに従うランダムプロセス)の一種です。マルコフ連鎖では、各時間ステップの結果は、その直前の時間ステップの影響のみを受けます。簡単に言うと、xt 、つまり時間ステップtにおけるマルコフ連鎖xの状態は、xt-1のみによって直接的な影響を受けます。任意のxt からxt+1まで の移行を定義する数学的関数は遷移核と呼ばれます。
各タイムステップtでは、少量のガウス・ノイズがx t-1で追加されています。 これによりランダムなピクセルが継続的に追加されるにもかかわらず、画像は一定のサイズを維持するために再スケーリングされます。 この定式化においてはx0が元のクリーンなデータポイントとなります。またx 1は最初の時間ステップ後のデータ・ポイントであり、少量のガウス・ノイズが生じています。順拡散プロセスの最終状態はx Tです。T が十分に大きい場合、つまり十分なステップの後、xT は純粋なガウス・ノイズに収束します。
順拡散の各ステップは次のように定義されます は、q(xt-1)が与えられるとデータ分布q(xt)の状態を予測します。標準的なDDPMでは、この順拡散プロセスには機械学習は関与しません。マルコフ連鎖の最終結果は常にガウス分布であるため、最適化は必要ありません。
DDPMでは、マルコフ連鎖の各ステップで追加されるガウスノイズは一定でもなければ、恣意的なものでもありません。ノイズは元の画像の構造に由来しており、それが追加される速度は連続するステップごとに着実に増加していきます。
ノイズの量にばらつきを持たせると、2つの競合する優先順位のバランスをとることができ、モデルのトレーニングの安定性が改善され、全体的な性能が向上します。Yang Songは、スコアベースの生成モデルに関するブログ記事で次のように述べています。
ご存じかもしれませんが、ガウス分布(正規分布)には平均 と、分散の2つがあります。さらにもう一つのパラメータβが、順マルコフ連鎖の各ステップを定義する遷移核でのガウスノイズの平均・分散のスケールファクタとして機能します。あるステップでβ値を変えることで、そのステップで加えられるガウスノイズが変化します。β 1 が時間ステップ1における分散です。β tはβTに至るまでのタイムステップtの分散を示します。
各ステップでの βのレート値は、分散スケジュールによって決定されます。
各ステップtで、画像は前ステップの反復から(平均に応じて)わずかに移動し、この移動したバージョンの画像に(分散に応じて)ノイズが追加されます。各シフトとノイズの追加の規模は、βtの値によって決定されます。差異スケジュールに従ってβtが増加するにつれ、結果として、拡散率が着実に増加します。βは常に0~1の間の値を取ります。つまり、0 < β1 < β2 < … < βT <1となります。
βの具体的な分散スケジュールの選択は重要な考慮事項です。通常はハイパーパラメータとして手動で設定し、定数値に固定するか、あらかじめ決められたβの開始値と終了値を持つ数式に従って変動させます。DDPMの論文では、Hoらは β1 = 10-4 、およびβT = 0.02である1,000ステップの線形スケジュールを使用しました。その後の研究では、コサインスケジュール[1]などの他の種類のスケジュールや、スケジュール自体を別の学習パラメータにすることで性能と効率が向上することが分かりました。[2]
βt の値は、ステップtで追加されたガウス・ノイズの平均と分散の両方を決定します。
要約すると、
各ステップ t で、画像は前ステップの反復から(平均に応じて)わずかに移動し、この移動したバージョンのイメージに(分散に応じて)ノイズが追加されます。各シフトとノイズの追加の規模は、 β tの値によって決定されます。差異スケジュールに従ってβが増加するにつれ、結果として、拡散率が着実に増加します。
ガウス・ノイズの追加は少しずつに始まり、ノイズ自体も常に前のステップでの元の画像の基本構造から引き出されるため、元の画像の基本的な性質は多くのステップで保持されます。これにより、逆拡散のプロセスでモデルが元のデータ分布のパターンと構造を意味のある形で学習できるようになります。
この段階的なプロセスの欠点の一つが、煩雑で計算コストが高くつくということです。トレーニングデータセットには何千枚、何百万枚もの画像が含まれている可能性がありますが、順方向の処理ではその一枚一枚の画像について何十、何百もの個別のステップが必要になります。
ノイズを繰り返し加える代わりに、次の式をパラメータ化すること で、準拡散プロセスの式をより効率的なものに書き換えることができます。を、新しいパラメータとしてと書き換えます。マルコフ連鎖の「素晴らしい特性」により、この新しいパラメータはさらに追加のパラメータへと拡張することができます。 が、その時点までのチェーン内の順方向の各ステップでの の反復乗算から導出されます。この追加のパラメーターは、基本的にx tの信号対ノイズ比(SNR)、つまり時間ステップtで元の画像がどれだけ残るかを反映します。
たとえば、x1では、少量のノイズが1回追加されています。の値は、 の値は1に近いため、画像では元の「シグナル」のほとんどが保持されています。x 50などの後のステップでは、何度もノイズが加えられています。なぜなら の値です の値は常に1未満であるためです。それ以降は の値です ステップ50では0にさらに近づき、元の画像の多くがノイズに置き換えられていることを意味します。タイムステップTにおけるxTは完全にノイズであり、 0に近似します。
方程式の複雑な導関数はこの記事の対象範囲を超えますが、この再パラメーター化トリックの重要性を理解するための重要なポイントは2つあります。
拡散モデルでは、逆拡散プロセスで実際の機械学習が行われます。順拡散プロセスの逆のノイズ処理を実行する学習において、モデルは基本的に純粋なガウス・ノイズをクリーンな画像になるまでノイズ除去する方法を学習しています。ニューラル・ネットワークのトレーニングが完了したら、この機能を使用して、段階を踏んだ逆拡散を通じてガウス・ノイズから新しい画像を生成できます。
理論的には、モデルのタスクは順拡散の単純な逆と考えることができます。トレーニング・データ・セットの実データ分布 q ( x )からサンプリングされたデータ・ポイント x0から始まる準拡散プロセスは、次のように定義されます。 :つまり、 を得てを計算します。その反対の逆拡散は、 と定義されます。しかし実際には はイントラクタブルです。
代わりに、トレーニング・タスクは次の2つの次善策を通じて定式化されます。
順拡散に追加されるガウス・ノイズの平均が恣意的なものではないことをもう一度思い出してください。たしかに実際にはランダムですが、ノイズの構造は最初は元の画像x 0の構造から派生しています。したがって、逆拡散を通じてノイズの正確な予測を学習することで、モデルは画像のノイズ除去を学習するだけでなく、暗黙的にx 0の構造も学習します。
拡散モデルに使用される具体的なトレーニング目標は、変分オートエンコーダ(VAE)の最適化に使用される再構成誤差項と密接に関連しています。VAEと同様に、拡散モデルは、複数の誤差項の組み合わせの変分下限(VLB)(証拠下限(ELBO)とも呼ばれます)を最大化することで最適化されます。
VLBの最大化は変分推論で使用され、処理不可能なスコア関数の近似値を出します。 誤差を直接最小化する代わりに、モデル予測精度の最小推定値(または下限値)を最大化する方程式として再定式化します。
使用される誤差項はそれぞれ、 qの順拡散ステップの結果と、p θによって予測された逆方向ステップの結果との間のカルバック・ライブラー情報量(または「KL情報量」、通常はD KLと表記される)を反映します。KL情報量は、2つの確率分布(たとえば、1つの画像のピクセル値の分布と別の画像のピクセル値の分布)の差を測定するために使用されます。
具体的には、拡散モデルの誤差関数は3つの誤差項:L T 、 L t 、L 0を組み合わせています。
その複雑な数学的導出はこの記事の範囲を超えるものの、VLBは最終的にはモデルによって予測されるノイズと 平均二乗誤差(MSE ) に簡略化することができます。 であり、準各線で加えられる真のノイズは各タイムステップで 、 となります。これは、モデルの出力がノイズ除去された画像自体ではなく、各ステップでのノイズの予測である理由を説明しています。
逆伝搬 中に 誤差関数の勾配を計算し、勾配降下法を通じて誤差関数を最小化するようにモデルの重みを調整することで、トレーニング・データ・セット全体にわたるモデルの予測がより正確になります。
拡散モデルが各ステップで除去されるノイズを正確に推定することを学習すると、これを使用して、このモデルが学習したデータ分布からノイズの多いランダムな画像x Tをサンプリングし、Tステップでノイズ除去することで、新しい画像を生成できます。 VAEと同様に、サンプリング・プロセスにわずかなランダム性の要素を導入することで、拡散モデルはトレーニング画像を直接再現するのではなく、トレーニング・データに似た新しい画像を生成することができます。
逆拡散トレーニング・プロセスとは異なり、生成プロセスのステップ量は順方向プロセスで使用されるステップ量と一致する必要はありません。これが可能なのは、各画像ステップで除去すべき特定のノイズ量ではなく、ノイズ全体を 予測するようにモデルが訓練されているからです。
ステップ数が少ないほど速度は上がり、計算要求が少なくなりますが、細部でトレードオフが発生する可能性があります。一般にステップ数が多いほど精度は向上しますが、引き換えに速度の低下と計算コストの増加が起こります。
標準的な拡散モデルは、トレーニング画像の高品質なバリエーションをランダムに生成することができますが、画像生成モデルの実用的な用途では、ほとんどの場合、モデルのアウトプットをある程度制御する必要があります。ガイド付き拡散モデルを使用すると、ユーザーは生成された画像を具体的なガイダンスで調整できます。
最も一般的な形式のガイド付き拡散モデルは、Text-to-Image(テキストから画像へ)の拡散モデルで、ユーザーが「帽子をかぶったキリン」などのテキストによるプロンプトを使用して出力を条件付けすることができます。これは、拡散モデルを別の大規模言語モデル(LLM) と組み合わせてテキスト・プロンプトを解釈するもので、Googleが初めて導入した論文「Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding(深い言語理解を用いたテキストから写実的画像への拡散モデル)」で最初に紹介されました。
標準的な拡散モデルは、無条件スコア関数∇xlogp(x)を予測することを目的としています。つまり、モデルpによって生成された画像xがトレーニングデータxに適合する尤度の対数の勾配です。ガイド付き拡散モデルは、特定の視覚カテゴリーyを導入し、条件付きスコア関数 ∇xlogp(x|y) を予測します。言い換えれば、カテゴリーyに適合する必要があると仮定する画像xの尤度です。
ガイド付き拡散の方法は、次の2つのカテゴリーに分類できます。
従来の拡散モデルには高品質の画像を生成できる最先端の機能があるにもかかわらず、速度が遅いことと計算コストが高いという2つの重大な欠点があります。これらの欠点は、安定拡散に始まる潜在拡散モデルの登場によって大幅に軽減されました。
潜在拡散モデルの前提はシンプルで、やはり変分オートエンコーダー(VAE)とのつながりを利用するものです。モデルは、高次元のピクセル空間に(つまり、インプット画像に直接)拡散プロセスを適用するのではなく、まずインプットを低次元の潜在空間に投影し、そこで拡散プロセスを適用することができます。
本質的に、潜在拡散モデルは、VAEのようなオートエンコーダー・アーキテクチャーを採用してエンコーダーを訓練し、入力データxの潜在表現zを出力します。これらの潜在表現は、通常はU-Netアーキテクチャを使用する標準的な拡散モデルの入力として使用されます。拡散モデルは低次元データを処理しているため、その出力はデコーダー・ネットワークに送られ、目的の最終画像サイズまでアップサンプリングされます。
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。
注:すべてのリンク先は、ibm.comの外部にあります。
[1] 「Improved Denoising Diffusion Probabilistic Models」 arXiv、2021年2月18日
[2] 「Variational Diffusion Models」 arXiv、2023年4月14日最終改訂