0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

2分で理解した気になれる拡散モデル入門

0
Posted at

ComyUIでお絵描きをしており、そもそもどのような技術でお絵描きできているのか知るために、調べていった内容をまとめていきます。

この記事では、難しい数式については(あまり)記述しないようにします。
そこらへんの詳しい記述、メカニズムは他の方にお任せします。
大まかに概要を2分くらいで掴みたい方向けの記事です。

拡散モデルの名前

Denoising Diffusion Probabilistic Models(略して、DDPM)
ノイズ除去拡散確率モデル
ここから、縮めて「拡散モデル」と呼ばれるようです。

拡散モデルについて

【2つのフェーズ】

  1. 学習時(開発者が実施)
  2. 生成時(ユーザーが実施)

【学習時の核心】
・元画像にノイズを加える
・AIがノイズを予測
・実際に加えたノイズと予測ノイズの差を最小化
・パラメータを最適化(何百万回繰り返し)
→ ノイズ予測能力を獲得

【生成時の核心】
・プロンプトで方向を指定
・学習済みモデルで指向的にノイズ除去
・段階的に繰り返して画像生成

【重要な制約】
プロンプトで指向できるのは学習済み概念の範囲内のみ

学習プロセスの全体

ランダムなパラメータで開始
  ↓
画像を1枚取る
  ↓
ノイズを加える
  ↓
U-Netで予測
  ↓
実際のノイズと比較
  ↓
差(Loss)を計算
  ↓
「どうパラメータを変えればLossが減るか」計算
  ↓
パラメータを少し調整
  ↓
次の画像へ

これを何百万回も繰り返す
  ↓
Lossが十分小さくなる
  ↓
学習完了
  ↓
最適化されたパラメータを保存
  ↓
モデルファイル(.safetensors)

「学習」というイメージ

美術の授業で、絵の描き方を習うようなイメージ。

【学習時】先生(モデル作成者)が何百枚もの絵を見せて、描き方を教える
→ 「りんごとは何か」「猫とは何か」という概念を学ぶ
→ これが「学習」

【生成時】学んだ知識を元に白いキャンバスから新しい絵を描く
→ 「バナナを描いて」という指示(プロンプト)で方向を決める
→ これが「生成」

学習で見た特定の絵をコピーするのではなく、
概念を理解して新しい絵を描く。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?