登場してから何かと世間を賑わせている Stable Diffusion。高品質な画像生成もさることながら、比較的軽量で、メモリの少ない GPU 等でも手軽に動かせたり、モデルとコードが全て OSS として公開されており、カスタマイズ等が可能であったりと、様々な方面にインパクトを与えています。Stable Diffusion は、技術的には、過去2年間ほどで研究開発が急速に進んだ「拡散モデル」の応用ですが、その基礎から理解しようとすると、文献をどこまでさかのぼり、どの論文をどのような順番で読んだら良いか困ってしまう方も多いのではないでしょうか。

本記事では、この Stable Diffusion の背景となる技術を基礎から理解したい方向けの、必読論文のリストとその概要を紹介します。なお、論文自体の解説記事ではないため、各論文の詳細については、リンク先の解説記事や元論文を参照いただければと思います。

ステート・オブ・AI ガイドでは、人工知能・機械学習分野の最新動向についての高品質な記事を毎月5〜6本配信しています。購読などの詳細につきましては、こちらをご覧ください。また、Twitter アカウントの方でも情報を発信しています。

はじめに

本記事で紹介する必読論文のリストは、以下の通りです。

基礎編

まず、前提知識として、機械学習の基礎と、ニューラルネットワークの基礎 (CNN、トランスフォーマー等) はあるものとします。

unet

  • U-Net (Ronneberger et al., 2015) ... U-Net は、画像を同じサイズの別の画像に変換するために良く使われるニューラルネットワークです。多くの画像セグメンテーションモデルや、画像変換でおなじみの pix2pix (Isola et al., 2017) などで広く使われているモデルです。アルファベットの「U」の字のように、エンコーダーで徐々に高抽象度・低解像度の情報を抽出し、デコーダーで元の解像度に戻すという構造をしているためこう呼ばれます。

vit

  • ビジョン・トランスフォーマー (Vision Transformer; ViT, Dosovitskiy et al., 2020) ... ビジョン・トランスフォーマー (ViT) は、トランスフォーマーを画像分類タスクに応用したものです。画像を 16×16 ピクセルのパッチに分割し、それをあたかも言語の「トークン」のようにトランスフォーマーに入力し、高い分類精度を達成しました。
ビジョン・トランスフォーマーはなぜCNNより強い?その仕組みを解明【論文速報】
昨年10月にビジョン・トランスフォーマー (ViT) が画像認識にて最高精度を達成して以来、コンピューター・ビジョンの分野を席巻しています。そもそも、ViT の強さはどこにあるのでしょうか?本記事では、Google Research から発表された最近の論文を論文速報として紹介しながら、CNN (ResNet) とビジョン・トランスフォーマーとの違いを探っていきます。

clip

  • CLIP (Radford et al., 2021) ... CLIP は、入力されたテキストと画像が、どの程度意味的に類似しているか (テキストがどの程度うまく画像を描写できているか) を計算するモデルです。テキスト・エンコーダー (トランスフォーマー) と画像・エンコーダー (ResNet もしくは上述のビジョン・トランスフォーマー) を使い、両者を共通の潜在表現 (ベクトル) に変換し、類似度を計算することによってこれを実現します。CLIP は、Stable Diffusion の「言語理解コンポーネント」(テキストエンコーダー) として使われています。
画像生成にも革命!OpenAI の画像生成モデル DALL·E の技術詳細に迫る
先週、OpenAI から 「DALL·E (ダリー)」と呼ばれる、言語から画像を生成する画像生成モデルが発表されました。ネットでは、「テキストから高クオリティの画像を生成できる」という点が特に取り沙汰されている印象ですが、その技術的詳細については、論文がまだ公表されていないこともあって、あまり議論されていません。本記事では、公式の記事や、CLIP などの関連研究などを紹介し、その技術・モデル等の詳細について速報的に解説してみたいと思います。

拡散モデルの基礎

現在、普及しているテキスト→画像生成モデルのほとんどは、拡散モデル、正確には、「ノイズ除去拡散確率モデル」 (DDPM; denoising diffusion probabilistic models, Ho et al., 2020) に基づいています。拡散モデルで最も重要な論文を一つだけ挙げるとすれば、間違いなくこの論文になるでしょう。

ただ、この論文、いきなり読み始めると、大量の数式と難しい概念が出てきて挫折してしまう可能性が高いため、拡散モデルの概要を他の論文やチュートリアル等でおおよそ理解してから挑戦することをオススメします。

拡散モデルに取り組む前に、概念的に知っておくと役に立つのが、「スコアベースの生成手法 (Song and Ermon, 2019)」です。このモデルは、 NCSM (noise conditional score networks; ノイズ条件付けスコアネットワーク) とも呼ばれています。

画像などの個々のデータは、多次元空間上の点で表されます。高画質な画像を生成するためには、この「点が多くあつまっていそうな領域」から新たな点を生成すると上手く行くと考えられます。このように、現実のデータのあつまり (分布) をどのようにデータから推定し、そこから新たな点をサンプルするか、というのが、生成モデルの本質的な問題です。

score_with_images

スコアベースの手法では、ノイズのような適当なデータから始め、徐々に変形させていくことによりデータを生成します。上の図で言えば、2次元の適当な位置からスタートして、リアルな画像のある領域 (赤色の濃い領域) に行く問題を考えます。

ここで、2次元空間上の各点において、リアルな画像の方向、すなわち、黒い矢印で表されるデータの密度の高い方向に行くベクトルを推定できれば、それを辿っていくだけでデータが生成できます。この「どちらに進んだらリアルな画像に近づくか」を表した方向を「スコア」と呼びます。

現実のデータにノイズを加える (データ空間上でぼかす) ことにより、この「スコア」を推定するのが、「スコアマッチングによる生成手法」の考え方です。後で分かりますが、この「どちらに進んだらリアルな画像に近づくか」という方向は、ニューラルネットワークで推定することができ、ノイズを除去していくことでデータを生成する拡散モデルと、このスコアマッチングによる生成は、数式の係数などの細かい違いを除いて、基本的に等価であることが知られています。

なお、このスコアベースの手法については、著者の一人による非常に分かりやすい YouTube の講演動画があります。

全く新しい生成モデル 勾配ベクトル場とスコアマッチングによる画像・音声生成を解説
データの密度勾配をモデル化しそこからサンプルを生成する「スコアベース手法」。理論的にも興味深く、高品質の画像や音声を生成できることもあり、機械学習業界で盛り上がりを見せていますが、日本語での情報がほとんど無いのがネックになっています。この記事では、スコアベースの生成モデルの基礎と、画像と音声に応用した比較的新しい論文をまとめて解説します。

ここでやっと、「ノイズ除去拡散確率モデル」 (DDPM; denoising diffusion probabilistic models) に移ります。DDPM は、Ho らによって 2020 年 6 月に提案されたモデルで、下画像のように、ノイズ画像 ${\bf x}_T$ から元画像 ${\bf x}_0$ を復元させるステップを何回も繰り返し徐々にノイズを除去していくことによって画像を生成します。

ddpm_original

具体的には、元画像 ${\bf x}_0$ にノイズを乗せる関数 $q$ を $T$ 回適用し、ノイズ画像 ${\bf x}_T$ を生成します。これは、ガウシアン (正規分布) に従うデータを生成して足し算すれば良いだけなので、人為的に簡単に生成することができます。この過程を、前向き過程 (forward process)、もしくは拡散過程 (diffusion process) といいます。

そのノイズを関数 $p$ によって復元する、すなわち、現在の画像から、ノイズとして乗っている部分を推定するニューラルネットワークを学習し、ノイズ成分を引いていくことにより、ノイズからの画像生成が可能になります。上図では、右向きの矢印に相当しますが、これを逆向き過程 (reverse process) と呼びます。

数学的に式変形を進めると、最終的には、「ノイズを人為的に乗せた画像から、元の画像を復元する」という問題に帰着でき、その「復元した実際の画像と予測の差分」という損失関数 (ニューラルネットワークの訓練に使われる「ゴール」) が導かれるという分かりやすいモデルです。

拡散モデルの基礎、および、発展手法のいくつかについては、日本語では、以下の解説動画が丁寧・正確で分かりやすく感じました。数式も含めて、もう少し深く理解したい方にオススメです。

GANを超え、言語にも進出 拡散モデルによる画像言語生成の進歩がすごい
データに徐々にノイズを加え、その過程の逆を学習することにより画像や言語を生成する「拡散確率モデル」。ここ数ヶ月の間に、「画像生成で GAN を超えた」「尤度ベースで SOTA」「言語生成にも適用可」などの非常に画期的な手法・論文が次々と発表され、盛り上がりを見せています。本記事では最近発表された論文等も含め、最新動向を解説します。

拡散モデルの発展

この拡散モデル DDPM については、その後も、改善手法が大量に提案されています。ここでは、Stable Diffusion に至るまでに提案された発展的な論文のうち、重要なものを紹介します。

ddim

  • 高速な生成を可能にした DDIM (Denoising Diffusion Implicit Models; Song et al., 2020)

DDPM の問題点の一つとして、徐々にノイズを除去しながら画像を生成するのに 1,000 ステップなどの長い時間がかかる、という問題があります。そこでこの論文では、DDPM を一般化したモデルを考え (上図)、その中から DDIM と呼ばれる特殊な場合を考えることにより (1) 品質を保ったままのステップ数の削減 (2) 生成を決定的にし、同じノイズから同じ画像が生成できるようなモデルを提案しています。

こちらの論文では、オリジナルの DDPM にいくつかの改良を加えると、高速・高品質の画像生成が可能になることを示しています。具体的には、拡散過程で付加するノイズスケジュールを調整したり、ステップ幅 (時間) のサンプリング方法を改善したり、といった工夫により、尤度 (データがモデルにフィットする度合い) を改善できることを示しています。また、ノイズ除去に使う UNet のサイズを増やすことによって、生成画像の質が予測可能な形で改善することを示しています。

beatsgan

「画像生成において、拡散モデルが GAN を超えた」と題されたこちらの論文では、拡散モデルにさらに複数の変更を加えることにより、BigGAN-deep (Brock et al., 2018) に匹敵するような画像生成の質 (上図参照) を可能にしています。

変更点の一つは、「分類器誘導型 (classifier-guided)」と呼ばれる生成です。これは、画像を入力し、「コーギー犬」「フラミンゴ」「ハンバーガー」のような、その画像のクラスを出力する分類器が利用できる場合、その分類器の出力が大きくなるように拡散モデルを誘導することによって、あるクラスの高品質な画像が生成できるようになるというものです。もちろん、分類器による誘導を使う場合、ラベル (画像の正解クラス) の付いたデータセットが必要になります。

  • 分類器不使用型 (classifier-free) の拡散モデルと GLIDE

glide-figure1

なお、その後ほどなくして、分類器を別途訓練しなくても、生成モデル自体に条件付けの機構を組み込み、希望のクラスの画像を生成することができる「分類器不使用型 (classifier-free)」の拡散モデルが提案されました (Ho and Salimans, 2021)。

さらに、ここまでに紹介した拡散モデルは、条件なしで、もしくはクラスによって条件付けて画像を生成したものが主流でした。ここで、画像とテキストの類似度をとらえる CLIP をテキストエンコーダーとして使い、分類器不使用型の拡散モデルを使うことによって、自由なテキストによる画像生成を実現する GLIDE (Nichol et al., 2021) が発表されました。

拡散モデルと、「テキストからの画像生成 (text2image)」を組み合わせたものは、ネット上のコミュニティによって草の根的に開発されたものが 2021 年の夏頃から既に存在していまいましたが、論文として正式に発表されたものとしては GLIDE が最も代表的なものです。

生成品質で DALL·E を超えた!? 拡散モデルによる画像生成の最新動向
テキストから高品質な画像を生成する OpenAI のモデル DALL·E が 世間を賑わせて1年ほど経ちます。その間に、データに対するノイズを除去して高品質な画像・テキストを生成する「拡散モデル」も急速に発展し、さらに高品質な画像生成も可能になりました。本記事ではまず、拡散モデルの基礎を簡単におさらいした後、ごく最近発表された拡散モデルに関する論文を3本紹介して解説します。

この頃になって、OpenAI および Google の各社から、高品質な「テキスト→画像」生成モデルが次々と発表されました。OpenAI の DALL·E 2 は、基本的に GLIDE と同じ仕組みでテキストから高品質な画像を生成します。また、Google の Imagen も、拡散モデルをベースとしながら、強力なテキストエンコーダーが画像生成の質に重要な役割を果たしていることを示しました。

なお、Google からは、Parti と呼ばれる画像生成モデルもすぐに発表されていますが、これはトークン化した画像を順に生成する自己回帰的なモデルであって、拡散モデルではない点に注意が必要です。以下の表では、これら3つのモデルの簡単に比較しています。

手法 リリース日 タイプ ゼロショット MS COCO FID モデルサイズ 訓練データ
DALL·E2 2021/4/13 拡散モデル 10.39 12B 2.5億のテキスト・画像ペアをWebで収集
Imagen 2022/5/23 拡散モデル 7.27 7.6B LAION-400M + Google社内データ
Parti 2022/6/22 自己回帰 7.23 20.6B LAION-400M, FIT400M,JFT-4B (+ Google社内データ?)
OpenAI の超高品質テキスト→画像生成モデル DALL·E 2 の技術詳細を解説
先週、テキストから画像を高い品質で生成できるモデル「DALL·E 2」が OpenAI が発表されました。初代「DALL·E」から一年あまりで、さらにテキストに忠実でリアルな画像生成を実現し、ネットを賑わせました。本記事では、「DALL·E 2」の技術詳細に注目し、論文を理解するための基礎となる技術を順に追って解説しました。
DALL·E 2 を早くも破る!超リアル画像生成モデル Imagen を解説
5 月末に Google から、テキストに忠実かつ非常に写実的な画像を生成できる Imagen が発表されました。最近発表された DALL·E 2 に続き、テキストをもとに画像を生成する「テキスト→画像 (text-to-image)」タスクが急速に発展しています。本記事では、Imagen に採用されている技術の解説を丁寧に紐解いていきます。
シンプルな自己回帰モデルで最高品質の画像生成を実現! Parti を解説
Google から、自己回帰的トランスフォーマーによってテキストからの画像生成を実現する Parti が発表されました。拡散モデルなどを使っていないシンプルなモデルにもかかわらず、スケール性によってこれまでで最高の生成品質を実現しています。本記事では、この Parti を、技術的な詳細から多手法との比較まで、詳しく解説していきます。

潜在拡散モデルと Stable Diffusion

ここでついに「ラスボス」の登場。Stable Diffusion の元になっている潜在拡散モデル (LDM; latent diffusion model, Rombach et al., 2021) です。

これまでの拡散モデルでは、画像をピクセルの配列として直接扱い、ピクセル単位でノイズの付加と除去を計算しました。しかし、この方法では、知覚的に重要ではない画像のディテールを表現するのにモデルの表現力が使われてしまったり、変数の次元が多く、計算量が多くなってしまったり、という問題があります。

そこで、こちらの論文で提案されている潜在拡散モデルでは、画像をVQGAN (Esser et al., 2020) と同様の仕組みを使い、低次元の潜在表現 (画像の大まかな特徴をとらえたベクトル) へと変換し、その潜在空間内で拡散モデルを適用します。つまり、ノイズから画像を生成する代わりに、ノイズから潜在表現をまず生成し、それを画像へと戻す、という2段階のプロセスを経て画像を生成します。

画像生成 AI の最前線!拡散モデル・画像生成モデルの最新研究を解説
テキストの記述にしたがって高品質な画像を生成する「画像生成 AI」。最近、一般向けのサービスも多く登場し、普及が急速に進んでいますが、指示をテキストで書かなければならず、編集が難しいなどの問題があります。最近の論文では、言語に加えて「物体」「概念」を使って画像を生成したり、プロンプトを使って画像の細かな編集を可能にしたりと、生成される画像の質に加え、その「制御性」に改善を加える方向にシフトしつつある印象です。本記事では、この「テキストからの画像生成」技術に関して、次の発展フロンティアとなる技術を、比較的最近発表された論文から読み解きます。

なお、Stable Diffusion の技術詳細については、公式論文等は出ていませんが、以下のページに詳しい解説があります:

なお、Stable Diffusion は、LAION-Aesthetics と呼ばれる「美しい」画像のみを集めたデータセットを用いて学習されている点も特徴的です。このデータセットは、「美しさ」の人間による判定を模倣するように訓練したモデルを使い、大きい画像キャプションデータセットである LAION から作られているということです。このように、訓練データ自体をキュレーションするというのも、論文にはなりにくいですが、高品質なモデルを開発するためには非常に重要な作業であるといえます。

(なお、本記事の執筆には、birdMan 氏のツイートも参考にさせていただきました。この場を借りてお礼申し上げます)

関連記事

言語にも拡散モデル革命か 離散データを生成する「ビット拡散」を解説
最近、テキストから高品質な画像を生成するモデルが世間を賑わせていますが、その多くは「拡散モデル」に基づいています。画像のピクセルなど、連続値データを生成するのは得意な拡散モデルですが、テキストなどの離散データの生成についてはあまり上手く行っていませんでした。最近になって、離散データをビット列として拡散モデルで生成する「ビット拡散」が発表されました。非常にシンプルながら強力な手法であり、今後の発展が望めます。本記事では、このビット拡散を関連研究と共に紹介します。
画像生成 AI の最前線!拡散モデル・画像生成モデルの最新研究を解説
テキストの記述にしたがって高品質な画像を生成する「画像生成 AI」。最近、一般向けのサービスも多く登場し、普及が急速に進んでいますが、指示をテキストで書かなければならず、編集が難しいなどの問題があります。最近の論文では、言語に加えて「物体」「概念」を使って画像を生成したり、プロンプトを使って画像の細かな編集を可能にしたりと、生成される画像の質に加え、その「制御性」に改善を加える方向にシフトしつつある印象です。本記事では、この「テキストからの画像生成」技術に関して、次の発展フロンティアとなる技術を、比較的最近発表された論文から読み解きます。