Midjourney モデルとその他の拡散モデルは、ランダム ノイズからどのように画像を生成するのでしょうか?

Midjourney モデルとその他の拡散モデルは、ランダム ノイズからどのように画像を生成するのでしょうか?

翻訳者 | 朱剛

レビュー | Chonglou

Midjourney や DALL-E 2 などの拡散モデルは素晴らしい画像を生成できますが、そのトレーニングは常に完全なノイズから始まります。

機械学習 (ML) の分野で進歩や小さな変化が起こるたびに、大きな話題になります。人工知能に関しては、誇大宣伝が制御不能になり、あらゆる種類のばかげた情報が伴う傾向があります。最近、Midjourney、ChatGPT、Copilot などのテクノロジーを使用する人が増えていることに気付いたかもしれません。

しかし、これらのシステムに関する真実は、往々にして平凡なものである。機械学習は数学的な科学であり、ML モデルの実際の影響は一部のブロガーが主張するほど大きなものではありません。これらはワークフローの特定の領域にメリットをもたらし、場合によってはワークフローの大部分に革命をもたらすこともありますが、それはユーザー (組織または個人) がその内部の仕組み、制限、機能、可能性を十分に理解している場合に限られます。この場合にのみ効果を発揮します。

この投稿では、人気の Midjourney、DALL-E 2、Stable Diffusion などの拡散モデルの仕組み、特にそのトレーニング プロセスについて説明します。この記事には数式が含まれていますが、各変数が何を表しているかについてもわかりやすく説明しています。

前方拡散

Midjourney を含むすべての拡散モデル (まだこれを説明する論文はありませんが) は、ランダム性によって画像を生成する複数の要素で構成されたニューラル ネットワークです。最初は、画像を徐々にノイズに変換するようにトレーニングされます。このアプローチは、画像が一連の変換を受け、t = 0 での初期純粋状態から最終ステップの t = T で完全にノイズの多い状態へと進化する時間ステップのマルコフ連鎖を構築します。

*マルコフ連鎖とは、ある変数の状態が前の変数の状態にのみ依存する変数のシーケンスです。

各ステップで適用される時間ステップの数は数百から千以上に及ぶ可能性があり、各ステップで適用されるノイズのレベルは事前に決定する必要があります。これをノイズスケジュールと呼びます数学的には、このノイズまたは前方拡散プロセスは次のように表されます。

q(xt|xt-1) = N(xt; √(1-βt) xt-1, βtI)

q(x0)は実際の分布ですが、q(xt|xt−1)はxtが常にxt-1に条件付けられる順方向拡散プロセスを表します。記号 N は、平均 μ と分散 σ^2 によって定義されるガウス分布または正規分布を表します。この場合、平均は√(1-βt)xt-1で表され、βtは分散です。ノイズは各ステップϵ∼N(0,I)で正規分布からサンプリングされ、分散スキームは事前に決定されます。

簡単に言えば、現在のステップでは正規分布があり、平均は前のステップの画像 xt-1 の√(1-βt) 倍で表されます。この再スケーリングに加えて、各反復で画像に小さなノイズ βtI も追加します。 β は、意図的に小さく設定された 0.001 などの小さな正のスカラー値と考えてください。

各タイムステップで、上記の操作を実行します。ただし、シーケンス xt、x2、x3、...、xT で生成されるすべてのサンプルの結合分布を定義することもできます。その形式は次のとおりです。

q(x1:T|x0) = ∏t=1:T q(xt|xt-1)

ご覧のとおり、この結合分布は、初期画像 x0 が与えられた場合に、時間ステップ 1 から T で作成された条件付き分布 q(xt|xt-1) の積 Π によって表されます。

わかりました。しかし、前のすべてのステップを実行せずにチェーン内のリンクをスキップして xt を生成することはできますか?

はい、可能です。

これは、データを拡散するために単純なガウスカーネルを使用するためです。これを行うには、1 - βt に等しいスカラー値 αt を計算し、変数 ᾱt を t1 から t までの αs の積として定義します。順方向拡散分散 βt はプロセス全体にとって重要です。これらは再パラメータ化によって学習することも、ハイパーパラメータとして固定しておくこともできますが、最後のステップ T で ᾱt が 0 に近づくように常に設計されます。これにより、拡散されたデータが正規分布を持つことが保証され、これは逆生成プロセスにとって重要です。

カーネル関数ができたので、xt = √ᾱt x0 + √(1 - ᾱt) のように任意の xt をランダムにサンプリングできます。ここで、ε (ノイズ) は平均 0 および共分散行列 I の正規分布から抽出されます。

簡単に言えば、マルコフ連鎖のランダムステップを表す xt を生成する必要がある場合、x0、ᾱt、ノイズ項 ε があれば問題なく生成できます。

生成プロセス

次に、モデルが新しいサンプルを生成する逆のプロセスについて詳しく見ていきましょう。最初に理解しておくべきことは、データセット内のすべての画像の分布を知る必要があるため、ノイズ除去された分布 q(xt-1|xt) を直接計算することはできないということです。しかし、ベイズの定理を用いると、この分布はステップtにおける周辺データ分布q(xt-1)と拡散カーネルq(xt|xt-1)の積に比例することがわかります。

q(xt-1|xt) ∝ q(xt-1) q(xt|xt-1)

しかし、製品と流通は依然として扱いにくい状態です。したがって、条件付き確率分布を近似する必要があります。幸いなことに、順方向プロセスにおけるノイズ注入 βt は小さいため、近似に正規分布を使用できます。

この条件付き確率分布の近似値はpθ(xt−1|xt)と表すことができます。ここでθはモデルのパラメータであり、勾配降下法によって反復的に最適化されます。

マルコフ連鎖の終点が正規分布であることを思い出すと、逆のプロセスもガウス分布であると想定できます。したがって、ニューラル ネットワークが計算する必要がある平均 μθ と分散 Σθ によってパラメーター化する必要があります。

これはプロセスのパラメトリック表現です: pθ(xt−1|xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))

オリジナルの論文「拡散確率モデルのノイズ除去」では、研究者らは、分散を Σθ(xt, t) = σ^2tI に固定することがサンプル品質の観点から最良の選択であることを発見しました。特に、分散を β に固定すると、分散を βt に固定した場合とほぼ同じ結果が得られることを発見しました。これは、プロセスに拡散ステップを追加すると、β と βt が近いままになるため、分布を決定するのは実際には分散ではなく平均だからです。

注: 後の論文「改良されたノイズ除去拡散確率モデル」では、研究者は分散をパラメータ化しました。これは対数尤度の向上に役立ちますが、サンプル効率は向上しません。

では、平均を導き出すための目的関数をどのように決定するのでしょうか?

q と pθ は、データ分布を潜在空間にエンコードしてから入力空間にデコードすることでデータ分布を近似するモデルである変分オートエンコーダーと見なすことができるため、変分上限 (ELBO) 目的関数を使用してトレーニングできます。 x0 に関する負の対数尤度を最小化します。ここで、変分下限は各時間ステップでの損失の合計であり、各損失項は 2 つのガウス分布間の KL ダイバージェンスです。

* 潜在空間は、入力特徴が異なる次元で表現される圧縮空間であり、モデルがデータ オブジェクト間のパターンや類似性を簡単に発見するのに役立ちます。

**KL ダイバージェンスは、2 つの分布間の距離の尺度です。基本的に、ターゲット分布をモデル分布で近似すると、どれだけの情報が失われるかを示します。

ご存知のとおり、x0 を条件とする任意のノイズ レベルで xt をサンプリングできます。 q(xt|x0) = N(xt;√(α̅t)x0, (1-α̅t)I)なので、x0にノイズを追加してスケーリングすることで任意のxtを取得できます。さらに、α̅t は βt の関数(分散が事前設定)であるため、トレーニング中に損失関数 L のランダム項を簡単に最適化できます。

この特性のもう一つの重要な利点は、ネットワークを平均予測子ではなくノイズ予測子に変えることができることです。具体的には、モデルが εθ(xt, t) を使用して KL ダイバージェンス項に追加されたノイズを近似するように、平均を再パラメータ化できます。例えば:

μθ(xt, t) = (1/√αt) (xt - (βt/√(1-α¯t)) εθ(xt, t))

最後に、損失関数Ltの目的方程式を取得します(ランダムな時間ステップで、ノイズがランダム分布N(0、I)からサンプリングされていると仮定します)。

||ε - εθ(xt, t)||^2 = ||ε - εθ(√α¯t x0 + √(1-α¯t)ε, t)||^2

ここで、x0は破損していない画像、ϵは時間ステップtでサンプリングされた純粋なノイズ、εθ(xt, t)は近似値xtをθでパラメータ化されたニューラルネットワークに渡すことによって得られる予測ノイズです。

ネットワークは、予測されたノイズと実際のノイズ間の平均二乗誤差によって最適化されます。実際の誤差と予測誤差の間の距離を最小化することで、モデルが徐々により正確な近似値を算出するように学習します。要約すると、純粋なノイズから画像を生成できる Midhjourney や Stable Diffusion などのモデルを作成するための一連のトレーニング手順を次に示します。

原論文の画像

翻訳者紹介

51CTO コミュニティ エディターの Zhu Gang 氏は、11 年間の最前線の開発経験を持っています。現在、北京途家健康で医療ソフトウェア開発に従事。

原題: Midjourney とその他の拡散モデルがランダムノイズから画像を作成する方法、著者: Rostyslav Demush

<<:  ChatGPTが新たな著作権紛争に巻き込まれる: ホラー小説作家2人が、訓練のために作品を盗んだとしてOpenAIを訴えた

>>:  Googleはプライバシーポリシーを更新し、インターネット上の公開データをAIの訓練に利用していることを明確にした。

ブログ    

推薦する

ChatGPTはどんどん怠惰になり、代わりにPUA人間を学習しました

GPT-4 が最近少し「怠惰」になっていることにお気づきでしょうか。現在、GPT-4 は常に特定のタ...

...

自動車学校がロボットコーチカーを導入:全行程を通じて優しい音声ガイド、コーチに怒鳴られる必要はもうない

[[356945]]人工知能技術の急速な発展により、SF映画のシーンが現実のものとなった。メディアの...

...

...

データセキュリティリスクのため、米国宇宙軍はChatGPTなどの人工知能ツールの使用を一時停止

ロイターが確認したメモによると、10月12日、米宇宙軍はデータセキュリティに関する懸念から、職員によ...

...

Ant GroupとCVPR22 Workshopが共同でビジュアルインテリジェンスコンテストを開催し、1,300以上のチームが参加した。

6月19日、第17回IEEEコンピュータ協会バイオメトリクスワークショップ(CVPR22)とAnt...

...

開発ボードはこのように使えますか?アメリカの学者は、義肢のサポートと各指の制御に Jetson Nano を使用しています

近年、ディープラーニングベースのニューラルデコーダーは、神経補綴物の器用かつ直感的な制御を実現するた...

この記事ではAIGC(生成型人工知能)の世界を紹介します。

こんにちは、ルガです。今日は、人工知能エコシステムの中核技術である AIGC (「生成型人工知能」の...

Googleが新しい検索方法を正式に発表:円を描く

ChatGPTが登場して以来、長い間息をひそめていたGoogleも、モバイル検索に力を入れ始めていま...

軽量ディープラーニングフレームワーク Tinygrad

Tinygrad は、ニューラル ネットワークを理解して実装するためのシンプルで直感的なアプローチ...

...

AI、機械学習、IoTが健康を改善する7つの方法

[[402211]]画像ソース: https://pixabay.com/images/id-575...