前書き#
この記事では、個人が stable diffusion の研究を進める中で、拡散モデルの仕組みとモデル構造について学んだ過程を簡単に記録しています。
本文#
一、Stable Diffusion モデルの構成#
stable diffusion は、テキスト特徴抽出モデル、画像特徴のエンコード・デコードモデル、ノイズ予測モデルの 3 つの部分から構成されています。
使用される基本的なニューラルネットワーク構造には、Transformer と ResNet が含まれます。
-
テキスト特徴抽出モデル
テキストエンコーダーは、ClipText や BERT などの Transformer ベースの言語モデルであり、入力のテキストプロンプトからトークンの埋め込みを生成します。これは、入力のプロンプトテキスト情報を理解し、高次元の特徴を得て、後続のノイズ予測モデルの予測方向を指示する役割を果たします。
-
画像特徴のエンコード・デコードモデル
ここでは、画像エンコーダーと画像デコーダーのエンコード・デコードが使用されます。これらは、トレーニングおよび推論の段階で使用され、トレーニングの段階では、画像エンコーダーとテキストエンコーダーがペアでトレーニングに使用され、入力のテキストプロンプトと出力の生成画像をマッチングするために使用されます。推論の段階では、画像エンコーダーの逆プロセスが使用され、テキストによってガイドされたノイズ予測器からデコードされ、最終的な画像が生成されます。
-
ノイズ予測モデル
これが本文のメインです:拡散モデルです。ノイズ予測は、画像の予測ではなく、ノイズの予測です。これは stable diffusion の中核コンポーネントであり、Dall-E 2 や Imagen の主要な部分でもあり、ほとんどの大規模な画像生成モデルで拡散構造が使用されています。
二、Diffusion モデル#
1、仕組み#
拡散とは、前のステップで追加された可能性のあるノイズを予測し、予測されたノイズを入力から減算して次の予測を行うという意味です。このようにして一歩ずつ拡散を進めることで、最終的にすべての可能性のあるノイズが取り除かれた画像が得られます。
上記は、推論プロセスの観点から拡散モデルがどのように「拡散」するかを示しています。トレーニングプロセスでは、逆のプロセスが行われます:各ステップで前のステップにノイズが追加され、これによりラベルと出力の両方が得られ、トレーニングと損失の計算が行われます。
2、モデル構造#
全体のフレームワークは UNet を基にしており、内部では ResNet と Transformer が使用されています。Attention は主にテキスト特徴の埋め込みに使用され、テキストベースの拡散構造は次のセクションで説明されていますが、ここでは最も基本的な画像拡散構造のみを分析します。
拡散モデルは、高次元特徴を処理するための潜在空間上で行われるものであり、直接的な画像処理ではありません。これにより、推論効率が向上します。
拡散モデルは、複数の拡散構造の反復に基づいており、各ステップの構造は同じであり、画像のノイズ除去生成の異なる段階で得られる潜在空間特徴をデコードして明示的な画像を生成することができます。一枚の画像がどのように一歩ずつ生成されるかを観察することができます。
三、テキストを含む Diffusion モデル#
拡散の原理はすでに説明しましたが、前のステップで追加された可能性のあるノイズを反復的に予測し、予測されたノイズを減算して最終的に画像を復元するプロセスです。テキストの指示的な特徴情報がない場合、入力はランダムなノイズ画像のみであり、生成される画像は実際には意味を持ちません。特定の画像を生成するためには、ガイド付きの特徴情報が必要です。そのため、テキストの指示的な情報を拡散構造に埋め込む必要があります。
テキストの指示的な情報は、テキスト特徴抽出モデルによって既にテキスト特徴ベクトルに変換されています。拡散モデルの各ステップの後に、アテンションモジュールを追加してテキスト特徴を潜在空間特徴に組み込むだけです。
四、Diffusion VS GAN#
画像生成は、現在の AI 生成コンテンツ領域で最も注目されている分野の一つです。拡散モデルは、画像の品質とモデルの柔軟性のレベルにおいて前例のない進歩を達成し、DALLE 2、Imagen、Stable Diffusion などに応用されています。
拡散モデルは反復計算に基づいており、単純なターゲットを反復的に最適化することで最終的な目標を達成することができますが、計算能力の要件が非常に高いです(DALLE 2、Imagen、Stable Diffusion などのモデルを考えてみてください、どれも巨大なサイズです😂)。
これらのモデルが再現可能かどうかは別としても、一般的な中小企業では十分な装置がないため、最終的には API に頼ることになり、市場はさらに大手企業に独占されることになります。
拡散モデルの前に、敵対的生成ネットワーク(GAN)は画像生成モデルでよく使用される基本的なアーキテクチャです。拡散モデルと比較して、GAN は反復計算を行わず、推論効率が高くなりますが、トレーニングプロセスの不安定性のため、GAN を拡張することは非常に困難であり、ネットワークアーキテクチャとトレーニング要素を細心の注意を払って調整する必要があります。ただし、GAN の画像生成効果は明らかであり、StyleGAN、Pixel2Pixel、PLUSE などのモデルの効果は非常に素晴らしく、モデルのスケールも拡散モデルと比較して非常に小さく、一般的な装置で実現できます。
結論として、GAN フレームワークに基づくモデルと Diffusion に基づくモデルはそれぞれ利点と欠点があり、現在のところ Diffusion モデルが GAN モデルを打ち負かしたとは言えません。ちなみに、最近、GAN ベースの画像生成の拡張に関する研究が行われています。
最後に#
参考文献:
The Illustrated Stable Diffusion
Scaling up GANs for Text-to-Image Synthesis
免責事項#
この記事は個人の学習記録として作成されました。
この記事はHUGHIE Blogと同期しています。