Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deffusion解説

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for payanotty payanotty
February 09, 2023

 Deffusion解説

Avatar for payanotty

payanotty

February 09, 2023
Tweet

More Decks by payanotty

Other Decks in Technology

Transcript

  1. 自己紹介
 • 名前
 ◦ 早野 康太
 • お仕事
 ◦ 自然言語モデルの改善


    • 冬アニメおすすめ
 ◦ おにいちゃんは
 おしまい!
 (かわいいぞ)
 ◦ もういっぽん!
 (スポ根はいいぞ)
 ◦ 大雪海のカイナ
 (弐瓶勉×SFはいいぞ)

  2. 目次
 • はじめに
 ◦ 前提知識
 ◦ Stable Diffusionとは
 • Latent

    Diffusion Model解説 (論文)
 ◦ Denoising Autoencoder 
 ▪ ノイズ除去で画像生成
 ◦ Text Encoder & QKV Attention Blocks
 ▪ 文章情報の処理方法について
 ◦ Variational Autoencoder
 ▪ 画像をより小さな次元に埋め込む
 • まとめ

  3. 前提知識
 • 数学知識
 ◦ 数式を見ても拒否感がない程度
 • Deep Neural Network (DNN)


    ◦ forwardのしくみがわかる
 ◦ Autoencoderを知っている
 • 自然言語処理
 ◦ 文章のトークナイズ→埋込みの出力が
 ある程度イメージできる
 

  4. プロンプト: kirara jumping girls
 seed: 42
 Stable Diffusionとは
 Steps =

    1
 Steps = 5
 Steps = 10
 Steps = 20
 Steps = 30
 Steps = 40
 NovelAI Diffusionから生成

  5. Stable Diffusionとは
 • モデルを誰でも利用できるため
 Stable Diffusionを使ったサービスや派生モデルの公開など
 さかんに行われている
 ◦ 画像生成bot
 ▪

    Line, Discordなど
 ◦ 派生モデル
 ▪ NovelAI Diffusion
 ▪ Waifu Diffusion
 ▪ ほか、Huggingfaceで検索したら無限に出てくる
 • Models - Hugging Face 
 

  6. • High-Resolution Image Synthesis with Latent Diffusion Models (2022)
 ◦

    Diffusion ModelとCross Attention、Auto Encoderの組み合わせによって
 画像生成においてSOTAを達成
 
 Latent Diffusion Model

  7. • 3つのコンポーネント
 ◦ Denoising Autoencoder
 ▪ 画像からノイズを取り除いていって目当ての画像を得る
 ◦ Text Encoder

    & QKV Attention Blocks
 ▪ 文章をベクトル表現に変換する
 ▪ 画像情報と文章情報を組み合わせる
 ◦ Variational Autoencoder
 ▪ 2次元画像をより小さなサイズの画像に変換する
 Latent Diffusion Model

  8. • 3つのコンポーネント
 ◦ Denoising Autoencoder
 ▪ 画像からノイズを取り除いていって目当ての画像を得る
 ◦ Text Encoder

    & QKV Attention Blocks
 ▪ 文章をベクトル表現に変換する
 ▪ 画像情報と文章情報を組み合わせる
 ◦ Variational Autoencoder
 ▪ 2次元画像をより小さなサイズの画像に変換する
 Latent Diffusion Model

  9. • 基本的なアイデア
 ◦ Deep Unsupervised Learning using Nonequilibrium Thermodynamics
 (2015)


    ▪ マルコフ連鎖を学習させることで複雑な確率分布にモデルを適合
 ◦ Denoising Diffusion Probabilistic Models (2020)
 ▪ 画像生成をマルコフ連鎖と捉えて高品質な画像を生成
 Denoising Autoencoder

  10. Denoising Autoencoder
 • 画像からノイズを取り除いていって目当ての画像を生成する
 
 • 2プロセス
 ◦ Forward Process:

    画像に少しずつノイズを乗せていく
 ▪ 学習段階
 ◦ Reverse Process: 画像からすこしずつノイズを取り除く
 ▪ 推論段階
 

  11. • Forward Process
 ◦ 画像に少しずつノイズを乗せていく
 ◦ 学習段階で行う前処理
 Denoising Autoencoder
 x

    0 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス
  12. • Forward Process
 ◦ 画像に少しずつノイズを乗せていく
 ◦ 学習段階で行う前処理
 Denoising Autoencoder
 x

    0 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス x 1 = x 0 + ε 0
  13. • Forward Process
 ◦ 画像に少しずつノイズを乗せていく
 ◦ 学習段階で行う前処理
 Denoising Autoencoder
 x

    0 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス x 1 = x 0 + ε 0 x 2 = x 1 + ε 1 x 3 = x 2 + ε 2
  14. Denoising Autoencoder
 
 
 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス z 1 =

    z 0 - ε θ (z 0 , 0) z 2 = z 1 - ε θ (z 1 , 1) z 3 = z 2 - ε θ (z 1 , 2) z 0 • Reverse Process
 ◦ 画像からノイズを少しずつ取り除いていく
 ◦ 推論段階で行う処理

  15. Denoising Autoencoder
 
 x 0 x 1 = x 0

    + ε 1 x 2 = x 1 + ε 2 x 3 = x 2 + ε 3 z 1 = x 0 - ε θ (z 0 , 0) z 2 = z 1 - ε θ (z 1 , 1) z 3 = z 2 - ε θ (z 2 , 2) 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス z 0
  16. Denoising Autoencoder
 
 x 0 x 1 = x 0

    + ε 1 x 2 = x 1 + ε 2 x 3 = x 2 + ε 3 z 1 = x 0 - ε θ (z 0 , 0) z 2 = z 1 - ε θ (z 1 , 1) z 3 = z 2 - ε θ (z 2 , 2) 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス z 0 ε θ (z t , t) でtステップ目の画像から
 取り除くノイズを推定する
  17. Denoising Autoencoder
 
 Denoising Autoencoder z t z t+1 出典:ぼっち・ざ・ろっく!

    CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス
  18. Denoising Autoencoder
 
 z t z t+1 後藤ひとり
 y 出典:ぼっち・ざ・ろっく!

    CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス Denoising Autoencoder 文章情報で条件付けしたい 
 → Text Encoder, QKV Attention 

  19. • 3つのコンポーネント
 ◦ Denoising Auto Encoder
 ▪ 画像からノイズを取り除いていって目当ての画像を得る
 ◦ Text

    Encoder & QKV Attention Blocks
 ▪ 文章をベクトル表現に変換する
 ▪ 画像情報と文章情報を組み合わせる
 ◦ Variational Autoencoder
 ▪ 2次元画像をより小さなサイズの画像に変換する
 Latent Diffusion Model

  20. Text Encoder & QKV Attention Blocks
 どこかに後藤ひとりを 表現する点があるはず 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、

    ©はまじあき/芳文社・アニプレックス 画素数次元のある一点 ε θ (z 0 , y) z 1 z 0 「後藤ひとり」という文章情報yによって
 マルコフ過程に条件付けをする
 z T = Πp(z t |z t-1 , y)

  21. Text Encoder & QKV Attention Blocks
 z t z t+1

    φ(・) Model内部の
 中間表現
 後藤ひとり
 τ(y) Text Encoder
 (Transformer)
 τ(y) QKV Attention
 y Denoising Autoencoder
 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス
  22. Text Encoder & QKV Attention Blocks
 q query
 変換したい
 ベクトル


    key, value
 ベクトルを変換する際
 参照する情報
 keyとvalueが辞書的に
 一対一に対応している
 (k 1 , v 1 ), (k 2 , v 2 )
  23. Text Encoder & QKV Attention Blocks
 qT k 1 q

    qT k 2 key, value
 ベクトルを変換する際
 参照する情報
 keyとvalueが辞書的に
 一対一に対応している
 (k 1 , v 1 ), (k 2 , v 2 )
  24. Text Encoder & QKV Attention Blocks
 qT k 1 q

    qT k 2 queryとkeyとの関連度を
 内積を取ることで数値化する
 1.2 3.6
  25. Text Encoder & QKV Attention Blocks
 qT k 1 q

    qT k 2 0-1にスケールした後
 softmaxを取り
 関連度の和を1に正規化
 1.2 3.6 0.4 0.6 scale
 &
 softmax

  26. Text Encoder & QKV Attention Blocks
 qT k 1 q

    qT k 2 1.2 3.6 0.4 0.6 scale
 &
 softmax
 v 1 v 2 正規化した関連度で
 valueに重みをつける

  27. Text Encoder & QKV Attention Blocks
 qT k 1 q

    qT k 2 1.2 3.6 0.4 0.6 v 1 v 2 scale
 &
 softmax
 + q’
  28. k 1 q k 2 Text Encoder & QKV Attention

    Blocks
 v 1 v 2 query
 変換したい
 ベクトル
 key, value
 ベクトルを変換する際
 参照する情報
 keyとvalueが辞書的に
 一対一に対応している
 q’ output
 queryを元に
 key, valueから
 情報を引き出す

  29. Text Encoder & QKV Attention Blocks
 z t z t+1

    φ(・) 後藤ひとり
 τ(y) Text Encoder
 (Transformer)
 τ(y) QKV Attention
 この中身を
 もう少し見てみる
 Model内部の
 中間表現
 y 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス Denoising Autoencoder

  30. QKV
 Text Encoder & QKV Attention Blocks
 φ(・) 後藤ひとり
 Text

    Encoder
 (Transformer)
 Model内部の
 中間表現
 y Self
 Attention query
 key
 value
 Cross
 Attention query
 key
 value
 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス
  31. QKV
 Text Encoder & QKV Attention Blocks
 φ(・) 後藤ひとり
 Text

    Encoder
 (Transformer)
 Model内部の
 中間表現
 y Self
 Attention query
 key
 value
 Cross
 Attention query
 key
 value
 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス QKV Attentionのkey, valueに
 「後藤ひとり」の情報を使うことで
 条件付けした生成過程を実行可能

  32. QKV
 Text Encoder & QKV Attention Blocks
 φ(・) 後藤ひとり
 Text

    Encoder
 (Transformer)
 Model内部の
 中間表現
 y Self
 Attention query
 key
 value
 Cross
 Attention query
 key
 value
 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス QKV Attentionのkey, valueに
 「後藤ひとり」の情報を使うことで
 条件付けした生成過程を実行可能
 Transformerモデル 
 の一種である
 CLIPを使っている

  33. QKV
 Text Encoder & QKV Attention Blocks
 φ(・) 後藤ひとり
 Text

    Encoder
 (Transformer)
 Model内部の
 中間表現
 y Self
 Attention query
 key
 value
 Cross
 Attention query
 key
 value
 出典:ぼっち・ざ・ろっく! CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス QKV Attentionのkey, valueに
 「後藤ひとり」の情報を使うことで
 条件付けした生成過程を実行可能
 Transformerモデル 
 の一種である
 CLIPを使っている

  34. • CLIP (Constractive Language-Image Pretraining)
 ◦ Learning Transferable Visual Models

    From Natural Language Supervision
 ◦ 画像に対して正しいテキストをラベルとして割り当てる
 ▪ 事前学習方法を工夫することで
 zero-shot(初めてみるデータ)でも高い精度を出している
 ◦ テキストエンコーダー部分にTransformerが利用されている
 
 
 
 Text Encoder & QKV Attention Blocks
 

  35. • High-Resolution Image Synthesis with Latent Diffusion Models
 ◦ Diffusion

    ModelとCross Attention、Auto Encoderの組み合わせによって
 画像生成においてSOTAを達成
 
 Text Encoder & QKV Attention Blocks
 Cross Attentionを繰り返し適用して 条件付き確率過程を実現 

  36. Text Encoder & QKV Attention Blocks
 
 z t z

    t+1 φ(・) 後藤ひとり
 τ(y) Text Encoder
 (Transformer)
 τ(y) QKV Attention
 × N Model内部の
 中間表現
 y 画素数が多いと
 要求される計算量が
 膨大になってしまう
 Denoising Autoencoder

  37. • 3つのコンポーネント
 ◦ Denoising Auto Encoder
 ▪ 画像からノイズを取り除いていって目当ての画像を得る
 ◦ Text

    Encoder & QKV Attention Blocks
 ▪ 文章をベクトル表現に変換する
 ▪ 画像情報と文章情報を組み合わせる
 ◦ Variational Autoencoder
 ▪ 2次元画像をより小さなサイズの画像に変換する
 Latent Diffusion Model

  38. 画素数が多いと要求される計算量が膨大になってしまう
 → もっと小さな次元で学習すればよくね?
 Variational Autoencoder
 
 Encoder
 Model
 x 出典:ぼっち・ざ・ろっく!

    CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス 高次元変数を
 低次元の潜在空間へ 
 埋め込む

  39. 画素数が多いと要求される計算量が膨大になってしまう
 → もっと小さな次元で学習すればよくね?
 Variational Autoencoder
 
 Encoder
 Model
 x 出典:ぼっち・ざ・ろっく!

    CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス Denoising Model 高次元変数を
 低次元の潜在空間へ 
 埋め込む
 Denoising Autoencoder
  40. 画素数が多いと要求される計算量が膨大になってしまう
 → もっと小さな次元で学習すればよくね?
 Variational Autoencoder
 
 Encoder
 Model
 x 出典:ぼっち・ざ・ろっく!

    CloverWorks、アニプレックス、芳文社、 ©はまじあき/芳文社・アニプレックス Denoising Model 高次元変数を
 低次元の潜在空間へ 
 埋め込む
 Decoder
 Model
 潜在空間から
 もとの高次元空間に 
 復号する
 Denoising Autoencoder
  41. • High-Resolution Image Synthesis with Latent Diffusion Models
 ◦ denoising

    autoencoderとdiffusionモデルを組み合わせることによって
 画像生成においてSOTAを達成
 
 Latent Diffusion Model
 Variational Autoencoder
 特徴量を潜在空間へ 
 埋め込み&復号
 

  42. • High-Resolution Image Synthesis with Latent Diffusion Models
 ◦ denoising

    autoencoderとdiffusionモデルを組み合わせることによって
 画像生成においてSOTAを達成
 
 Latent Diffusion Model
 Variational Autoencoder
 特徴量を潜在空間へ 
 埋め込み&復号
 
 学習&推論を
 低次元の潜在空間で 
 行い計算量を削減
 

  43. • Stable Diffusion
 ◦ Stability AIが発表した画像生成モデル
 ◦ モデルが公開されており
 誰でも気軽に試すことができる
 →

    Stable Diffusionを使ったサービスや派生モデル
 • Latent Diffusion Model
 ◦ Stable Diffusionの基礎
 ◦ 3つのコンポーネントを組み合わせてText 2 Imageで高いクオリティを 実現
 ▪ Denoising Autoencoder
 ▪ Text Encoder & QKV Attention blocks
 ▪ Variational Autoencoder
 まとめ

  44. • 発展
 ◦ Diffusionは画像だけでなく
 さまざまなデータ分布に応用できる
 ◦ Dance Diffusion - a

    Hugging Face Space by harmonai
 ▪ Harmonaiが公開している音声版Diffusion
 • まだまだクオリティは低いが今後の発展に期待
 ◦ ほかにも色々な分野で応用できる可能性があるかも
 ▪ 可能性は無限大
 まとめ