解説:CLIPから拡散モデルまで

参考:https://www.youtube.com/watch?v=iv-5mZ_9CPY

CLIP

2021年2月、OpenAIはCLIPという新しいモデルアーキテクチャを発表しました。このモデルは4億枚の画像とキャプションのペアからなるデータセットで訓練されています。

CLIPは2つのモデルで構成されています:テキストを処理するText Encoderと画像を処理するImage Encoderです。両方のモデルは512次元のベクトル(Embedding)を出力し、同じデータペアの出力ができるだけ近くなるように学習されます。

バッチ学習の際、バッチ内のすべての画像間の類似性を活用するため、ベクトル間の類似度を計算します。

対角線上のベクトルは対応する画像とキャプションのペアで、これらの類似性を最大化します。

対角線以外はすべて対応しないペアで、これらの類似性を最小化します。

CLIPの「C」はContrastive(対比)を表し、モデルが対応するペアと対応しないペアを対比して学習することを意味します。

CLIPはテキストと画像をベクトル空間に変換することしかできず、ベクトルから画像を生成することはできません。

DDPM → DDIM

GPT-3の論文が発表された数週間後、カリフォルニア大学バークレー校のチームがDenoising Diffusion Probabilistic Models(DDPM)の論文を発表しました。この論文は、拡散プロセスを利用して非常に高品質な画像を生成できることを初めて示しました。

拡散モデルの核心的なアイデアは、訓練画像に段階的にノイズを追加して完全にノイズになるまで変化させ、その後ニューラルネットワークを訓練してこのプロセスを逆転させることです。

ノイズの追加と除去は段階的に行われますが、モデルの目標は常に元の画像を復元することです。

画像生成段階でも、各ステップでランダムノイズを追加する必要があります。DDPM論文では、かなり複雑な理論を借用してこれらのアルゴリズムを導出しています。

以下では、拡散モデルを理解するための数学的に等価な方法を紹介し、DDPMアルゴリズムがなぜ効果的なのかを直感的に理解します。

訓練画像がベクトル空間でスパイラル分布を形成していると仮定します。

画像にランダムノイズを追加すると、各ピクセル値がランダムに変化することになり、これはベクトル空間での画像対応ベクトルのランダムウォークに相当します。これは物理学のブラウン運動とも類似しており、拡散モデルの名前の由来でもあります。

ベクトル空間の各点は一枚の画像を表します。

モデルの入力は、データセットの異なる開始点から見た多くの異なるランダムウォークです。モデルが行うべきことは時間を逆転させ、時刻tの位置が与えられたときに時刻t-1の位置を計算することです。

実際の論文では、モデルはウォーク全体で追加された総ノイズを予測するように訓練されます。

数学的に証明できることは、総ノイズをウォークのステップ数で割ったものが最後のステップのノイズに等しいということです。

この効果により、訓練プロセスの分散が大幅に減少し(すべて開始点を指すノイズを直接予測)、モデルがより効率的に学習できるようになります。

座標を関数fとして記述し、ランダムウォークのステップ数に対応する時間変数を渡します。

==tが1からある段階まで減少すると、逆方向のベクトル場は突然データセット中心(平均)を指すことからデータセット自体を指すように変化します==

DDPM論文に戻ると、逆拡散の各ステップでランダムノイズを追加し(モデル出力位置にランダムステップ長を追加、ステップ数の増加とともにステップ長を減少)、これを繰り返すことでデータセット自体に収束できます。

ランダムノイズを除去すると、すべての点は迅速にスパイラルの中心に移動し、その後単一の内側エッジに向かって移動し、データセット全体の多様性が失われます。しかし実際には、画像生成が完全に実際の画像の多様体に入らないため、ぼやけた非現実的な画像が生成されます。

DDPMは拡散モデルを画像生成の実用的な方法にしましたが、拡散モデルはすぐには広く採用されませんでした。

DDPMの主要な問題は、各ステップで完全な巨大なニューラルネットワークを通す必要があり、しかも多くのステップが必要だったことです。

その後、GoogleとStanfordが発表した2つの論文で、ランダムノイズを追加する必要がなく、同じ結果を得ることができることが示されました。

DDIMはより小さなステップサイズを使用するため、軌道がスパイラル分布により良く収束します。

効果の向上

OpenAIは2022年に画像-キャプションペアを使用して拡散モデルを訓練し、CLIP画像エンコーダーの逆として機能させました。これをunCLIPと呼び、商業的にはDALI 2として知られています。

モデルはテキスト情報に基づいてノイズ除去を行うことができ、この技術を「Conditioning」と呼びます。

テキストベクトルを拡散モデルに入力する方法は複数あります。

しかし、テキスト入力「Conditioning」だけで描かれた画像は、テキストのすべての情報を含むことができません。

より強力な方法でモデルを指導する必要があります。

スパイラルの異なる部分が異なるタイプの画像を表すと仮定し、拡散モデルの訓練入力に対応するカテゴリも追加しましたが、実行時の適合度はそれほど高くなく、カテゴリに混乱が生じることがわかりました。

これは、モデルがスパイラルへの適合と対応するカテゴリへの適合という2つの情報を同時に学習しており、点をスパイラルに合わせる力が特定のカテゴリ方向への移動力を上回っているためです。

テキストと生成画像の一貫性を向上させる方法の一つに==Classifier-Free Guidance==があります。この方法は顕著な効果を示し、現在の画像・動画生成モデルの重要な部分となっています。動作方式は以下の通りです:

==最終予測 = プロンプトなし予測 + 指導強度 ×(プロンプトあり予測 - プロンプトなし予測)==

ネガティブプロンプトの手法もあります。希望する画面内容(ポジティブプロンプト)を与えるだけでなく、出現してほしくない内容をモデルに明確に伝えることもでき、動作方式はClassifier-Free Guidanceと類似しています:

著作権表示

著者: Aspi-Rin

リンク: https://blog.aspi-rin.top/ja/posts/%E8%A7%A3%E8%AA%ACclip%E3%81%8B%E3%82%89%E6%8B%A1%E6%95%A3%E3%83%A2%E3%83%87%E3%83%AB%E3%81%BE%E3%81%A7/

ライセンス: CC BY 4.0

This work is licensed under a Creative Commons Attribution 4.0 International License. Please attribute the source.

検索を開始

キーワードを入力して記事を検索

↑↓
ESC
⌘K ショートカット