$30 off During Our Annual Pro Sale. View Details »

SSII2023 [SS1] 拡散モデルの基礎とその応用 ~Diffusion Models入門~

SSII2023 [SS1] 拡散モデルの基礎とその応用 ~Diffusion Models入門~

More Decks by 画像センシングシンポジウム

Other Decks in Science

Transcript

  1. 拡散モデルの基礎とその応⽤
    ~Diffusion Models⼊⾨~
    2023.6.15
    早川 顕⽣(Sony Research Inc.)

    View Slide

  2. 2
    自己紹介
    早川 顕生 / Akio Hayakawa
    株式会社ソニーリサーチ
    Diffusion Modelsに関する動画も
    多数ございますので是非ご活用ください!
    Youtubeへのリンク
    ソニーリサーチ
    について ⇒
    https://www.ai.sony/ja/articles/sonyai019-jp/

    View Slide

  3. 3
    拡散モデルの爆発的発展(特にtext-to-image)
    DALL-E 2 Imagen
    Stable Diffusion
    “Hierarchical Text-Conditional Image Generation with CLIP Latents,” arXiv 2022.
    https://github.com/CompVis/stable-diffusion
    “Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding,”
    NeurIPS 2022.

    View Slide

  4. 4
    拡散モデルの応用
    “GibbsDDRM: A Partially Collapsed Gibbs Sampler for Solving Blind Inverse
    Problems with Denoising Diffusion Restoration,” ICML 2023.
    “Instruct 3D-to-3D: Text Instruction Guided 3D-to-3D conversion,” arXiv
    2023.
    画像ぼけの推定と除去 言語指示によるNeRFの編集

    View Slide

  5. 5
    拡散モデルの基礎とその応用 ~Diffusion Models入門~
    拡散モデルの原理と学習方法
    実用化に向けた拡散モデルの改善
    Text-to-Imageへの拡張
    動画や3Dへの拡張




    View Slide

  6. 6
    拡散モデルの基礎とその応用 ~Diffusion Models入門~
    拡散モデルの原理と学習方法
    実用化に向けた拡散モデルの改善
    Text-to-Imageへの拡張
    動画や3Dへの拡張




    View Slide

  7. 7
    生成モデルの目的とバリエーション
    画像出展: https://laion.ai/blog/laion-aesthetics/
    学習 生成
    モデル化したいデータ集合
    簡単に
    サンプリング
    できることが
    望ましい
    𝑧
    Diffusion Models
    𝑥!
    𝑥"
    Denoiser 𝑥#
    Denoiser
    𝑝(𝑥)
    生成モデル
    GANs
    Flow
    𝑧 𝑥! 𝑥 Discriminator 0/1
    Generator
    𝑧
    𝑥 𝑥$
    Flow
    𝑓(𝑥)
    Inverse
    𝑓!"(𝑥)
    𝒛 ∼ 𝑁(𝟎, 𝑰)
    などでモデル化
    VAE
    𝑧
    𝑥 Encoder 𝑥$
    Decoder

    View Slide

  8. 8
    異なる生成モデル間での長所短所の比較
    “Tackling the Generative Learning Trilemma with Denoising Diffusion GANs”, ICLR 2022
    それぞれの生成モデルは
    生成の ①品質, ②速度, ③多様

    の観点で長所短所がある
    GANs
    Diffusion Models
    長所: 高品質かつ多様な生成
    短所: 生成が遅い
    長所: 高品質かつ高速な生成
    短所: 多様性が乏しい
    長所:多様かつ高速な生成
    短所:低品質な生成
    VAE / Flow

    View Slide

  9. 9
    拡散モデルの基本的なアイデア
    • 一般に「ノイズ(潜在変数)からデータへの変換」を学習するのは難しい
    ⇒ 容易に実現可能な「データからノイズへの変換」の逆変換と考える
    徐々にノイズを付加(容易に実現可能)
    ノイズからデータへの変換 = 徐々にノイズを除去
    図は以下の論文から引用:“Diffusion Normalizing Flow,” NeurIPS 2021.

    View Slide

  10. 10
    拡散モデルとは
    • 拡散過程(or 類似の過程)に基づく生成モデル
    • 徐々に拡散していく過程を考え、これを逆方向に辿ることによってデータを生成
    • 物理現象とのアナロジーで
    時刻の概念を導入(時刻0がデータ、時刻Tが完全なノイズに対応)
    生成対象のデータ
    ガウシアンノイズ
    微小なノイズを付加
    微小なノイズを(DNNで)除去
    繰り返すことで
    ノイズをデータに変換
    繰り返すことで
    データをノイズに変換
    拡散過程
    データ生成
    “Denoising Diffusion Probabilistic Models,” NeurIPS 2020.
    “Deep Unsupervised Learning using Nonequilibrium Thermodynamics,” ICML 2015.

    View Slide

  11. 11
    Denoising Diffusion Probabilistic Models(DDPM) “Denoising Diffusion Probabilistic
    Models,” NeurIPS 2020.
    生成対象のデータ
    ガウシアンノイズ
    逆拡散過程(→)のポイント


    𝑞 𝑥!
    𝑥"
    拡散過程(←)のポイント
    ① 1時刻の遷移はガウス分布 𝑞 𝑥" 𝑥"#$ ≔ 𝑁(𝑥"; 1 − 𝛽" 𝑥"#$, 𝛽"𝐈)
    ② 𝒙𝒕
    |𝒙𝟎
    の分布もガウス分布 𝑞 𝑥" 𝑥% ≔ 𝑁(𝑥"; 1
    𝛼" 𝑥%, (1 − 1
    𝛼")𝐈) ただし、 %
    𝛼! = ∏%&'
    ! (1 − 𝛽%)
    拡散過程 (データ→ノイズ)
    逆拡散過程 (ノイズ→データ)
    ① 1時刻の遷移はガウス分布
    (十分に微小な時刻変化であれば)

    𝑝! 𝑥"#$ 𝑥" = 𝑁(𝑥"#$; 𝜇!(𝑥", 𝑡), 𝚺!(𝑥", 𝑡))
    適当な定数𝜎!
    "𝑰として固定
    ハイパラ𝛽!
    または $
    𝛼!
    で定まる

    View Slide

  12. 12
    Denoising Diffusion Probabilistic Models(DDPM) “Denoising Diffusion Probabilistic
    Models,” NeurIPS 2020.
    生成対象のデータ
    ガウシアンノイズ
    逆拡散過程(→)のポイント


    𝑞 𝑥!
    𝑥"
    拡散過程(←)のポイント
    ① 1時刻の遷移はガウス分布 𝑞 𝑥" 𝑥"#$ ≔ 𝑁(𝑥"; 1 − 𝛽" 𝑥"#$, 𝛽"𝐈)
    ② 𝒙𝒕
    |𝒙𝟎
    の分布もガウス分布 𝑞 𝑥" 𝑥% ≔ 𝑁(𝑥"; 1
    𝛼" 𝑥%, (1 − 1
    𝛼")𝐈) ただし、 %
    𝛼! = ∏%&'
    ! (1 − 𝛽%)
    拡散過程 (データ→ノイズ)
    逆拡散過程 (ノイズ→データ)
    ① 1時刻の遷移はガウス分布
    (十分に微小な時刻変化であれば)

    𝑝! 𝑥"#$ 𝑥" = 𝑁(𝑥"#$; 𝜇!(𝑥", 𝑡), 𝚺!(𝑥", 𝑡))
    適当な定数𝜎!
    "𝑰として固定
    ハイパラ𝛽!
    または $
    𝛼!
    で定まる
    各時刻で𝜇!
    が推定できればデータ生成が可能

    View Slide

  13. 13
    ノイズ推定二乗誤差の最小化による拡散モデルの学習
    ポイント

    拡散モデルにおける
    負の対数尤度の上界最小化 = 「真のデノイズ結果の平均」の回帰問題
    ポイント

    「真のデノイズ結果の平均」はデータ𝑥"
    とノイズ𝜖 ~ 𝑁(0, I)の線形和で表せる
    ≤ 9
    "&'
    (
    𝔼) 𝑥" 𝑥%
    𝐷*+ 𝑞 𝑥"#$ 𝑥", 𝑥%
    ‖ 𝑝! 𝑥"#$ 𝑥"
    − log 𝑝! 𝑥% + {𝑝! 𝑥(
    と𝑝!(𝑥")に関する項}
    C
    𝜇" 𝑥", 𝑥% = 𝑐%𝑥% + 𝑐$𝑥" =
    𝑐%
    1
    𝛼"
    + 𝑐$ 𝑥" −
    𝑐% 1 − 1
    𝛼"
    1
    𝛼"
    𝜖 𝑐! =
    𝛽"
    1 − 𝛽"#$
    1 − -
    𝛼"
    , 𝑐$ =
    1 − 𝛽"
    (1 − -
    𝛼"#$
    )
    1 − -
    𝛼"
    𝑥"
    = -
    𝛼"
    𝑥!
    + 1 − -
    𝛼"
    𝜖
    実はどちらもガウス分布なので平均パラメタの二乗誤差となる
    ※𝑁(𝑥"#$; 7
    𝜇"(𝑥", 𝑥!), 9
    𝛽"𝑰)と𝑁(𝑥"#$; 𝜇%(𝑥", 𝑡), 𝜎"
    &𝑰)
    1
    2𝜎!
    =
    0
    𝜇! 𝑥!, 𝑥" − 𝜇>(𝑥!, 𝑡) = + const.
    𝒙𝒕
    から𝝐を推定して0
    𝜇!
    に変換することも可能
    ※時刻に応じた係数も無視
    = 𝔼",$ 𝜖 − 𝜖!( *
    𝛼"𝑥% + 1 − *
    𝛼"𝜖, 𝑡)
    &
    最終的に学習に
    利用する損失

    View Slide

  14. 14
    学習の概要
    ノイズを載せた画像からノイズを推定
    • ノイズを推定するモデルは、各時刻で同じモデルを共通して利用
    • DDPMで使われたモデルはself-attention付きのU-net(後述)
    時刻情報
    𝑡~𝑈(1, 𝑇)
    DNN
    + 2乗誤差
    最小化
    学習データ
    𝑥#
    ノイズ
    𝜖~𝑁(0,1)
    推定したノイズ
    𝜖$
    ノイズ付きデータ
    2
    𝛼%
    𝑥#
    + 1 − 2
    𝛼%
    𝜖
    モデルを更新

    View Slide

  15. 15
    よく使われるモデルアーキテクチャ(U-Net)
    ResBlock
    x 𝑁#
    ResBlock
    x 𝑁$
    ResBlock
    + MH-Att
    x 𝑁%
    ResBlock
    + MH-Att
    x 𝑁&
    ResBlock
    + MH-Att
    x 𝑁%
    ResBlock
    x 𝑁$
    ResBlock
    x 𝑁#
    Embed
    + Affine x2
    時刻情報𝑡


    各ResBlockでaffineをかけてチャンネルごとのスケールとバイアスを算出し、抽出した特徴量に適用
    深いところでのみmulti-head attentionをかける
    ノイズ付き
    画像
    推定した
    ノイズ
    Downsample
    Downsample Upsample
    Upsample
    MH-Att: Multi-Head Attention
    Embed: 固定長ベクトルへの埋め込み
    “Diffusion Models Beat GANs on Image Synthesis,”
    NeurIPS 2021.

    View Slide

  16. 16
    拡散モデルの基礎とその応用 ~Diffusion Models入門~
    拡散モデルの原理と学習方法
    実用化に向けた拡散モデルの改善
    Text-to-Imageへの拡張
    動画や3Dへの拡張




    View Slide

  17. 17
    テキスト条件付き生成を行うモデル
    • テキスト情報は、時刻と同様に入力 or/and 注意機構を利用
    Embed
    + Affine x2
    時刻情報𝑡
    Encoder
    (e.g., CLIP)
    テキスト
    Add
    画像トークン テキストトークン
    テキストトークンも使う
    テキスト情報を追加入力

    View Slide

  18. 18
    Diffusion Modelを学習する空間の違い
    基本的には、品質優先のPixel Space vs 生成速度優先のLatent Space
    Enc.
    LatentでのDiffusion
    Dec.

    PixelでのDiffusion

    ノイズ付与
    ノイズ付与
    Pixel
    Diffusion
    Latent
    Diffusion
    学習済み
    VAEなどを利用
    縦横1/2に圧縮すると1/4のデータサイズ → 高速化
    Enc/Decの圧縮性能が品質のボトルネック → 品質劣化

    View Slide

  19. 19
    拡散モデルの基礎とその応用 ~Diffusion Models入門~
    拡散モデルの原理と学習方法
    実用化に向けた拡散モデルの改善
    Text-to-Imageへの拡張
    動画や3Dへの拡張




    View Slide

  20. 20
    Text to Imageに関連する手法の分類と発展
    Imagen
    SUR-Adapter
    Re-Imagen
    eDiff-I
    UPainting
    LatentDiffusion
    ERNIE-ViLG 2.0
    GLIDE
    Dalle-2
    StableDiffusion
    Text → Image
    Latent SpaceのDiffusion
    Text + Spatial Hints → Image SceneComposer
    ReCo
    SpaText
    Text ↔ Image
    Versatile Diffusion
    UniDiffuser
    ※ 離散表現を直接利用












    UniD3
    LLM CLIP 学習
    テキスト特徴
    による分類
    ※ Reco以外はLatentとPixel両方

    View Slide

  21. 21
    ポイント
    Imagen (1/2): モデルの概要
    画像出典: Laion-400m dataset
    “Cute golden
    retriever in the
    autumn park”
    学習済み
    言語モデル
    Unet構造の
    denoiser
    (freeze)
    𝑥,
    𝑥"#$
    𝑐 (condition入力)
    Text入力
    学習済み言語モデル(T5-XXL) によるText特徴を利用したPixel Spaceでの拡散モデル
    +
    • Cascaded diffusion models
    • Efficient U-Net
    Diffusion Modelの性能を向上させる工夫
    Cascaded Diffusionによる
    64 → 256 → 1024の3段階生成
    パラメタを低解像に集中させた
    Efficient U-Net (Upsamplerに利用)
    “Photorealistic Text-to-Image Diffusion Models with Deep Language Understand
    NeurIPS 2022

    View Slide

  22. 22
    Imagen (2/2): テキスト入力を忠実に再現した画像を生成しやすい

    View Slide

  23. 23
    ポイント
    Latent Diffusion Models
    低次元の潜在空間で拡散モデルを学習することで計算コストを軽減
    事前学習済みVAEや
    VQGANなどを用いてデー
    タを潜在空間へ
    条件付けは画像空間での
    拡散モデルの方法を踏襲
    “High-Resolution Image Synthesis with Latent Diffusion Models”, CVPR 2022
    低次元潜在空間で拡散モデル
    を学習し計算効率を向上

    View Slide

  24. 24
    Open SourceとしてのStable Diffusion
    OpenCLIP-ViT/Hを用いてLAION-5Bで学習したLatent Diffusion Model (v2.0)のこと
    https://github.com/Stability-AI/StableDiffusion
    単純なText to Imageだけでなく、Depth Conditionによる性能向上やInpainting等の画像変換を実現
    する機能など種々の最新研究に基づく拡張も含めて公開されている

    View Slide

  25. 25
    拡散モデルの基礎とその応用 ~Diffusion Models入門~
    拡散モデルの原理と学習方法
    実用化に向けた拡散モデルの改善
    Text-to-Imageへの拡張
    動画や3Dへの拡張




    View Slide

  26. 27
    画像生成から動画生成へ: モデル化方針の大別
    動画生成モデルの定式化として、以下の二つの方針が提案されている
    ① 動画を画像の集合とみなして連続した画像群の同時分布を学習
    ② 生成済み(または与えられた)フレームを条件として続くフレームの条件付き分布を学習
    ① Nフレームの動画の分布𝑝(𝑥!:#
    )を学習するタイプ ② 既知のフレーム群𝑓を条件として
    フレーム群𝑥の条件付き分布𝑝(𝑥|𝑓)を学習するタイプ
    〇 比較的大規模なデータセットでの成功報告多数
    × 時間的一貫性を持った長い動画の生成は苦手な傾向
    ※ 部分的に生成済みフレームを入力することで近似的に②の分布を表現可能
    ×比較的小規模なデータセットでの検証(多様性が乏しい?)
    〇時間的一貫性を持った長時間の動画を生成するのが得意
    “Make-A-Video: Text-to-Video Generation without Text-Video Data”, ICLR 2023
    既に生成したフレーム
    を条件として入力
    “MCVD: Masked Conditional Video Diffusion for Prediction, Generation, and
    Interpolation”, NeurIPS 2022
    全てのフレームが
    Unetの入力として
    入ってくる

    View Slide

  27. 28
    画像生成から動画生成へ: 一般的なモデル構造
    時間的な関係性を持った複数のフレームの関係性を扱うために
    2D + 1DのConvolutionやAttentionを導入して、ネットワークを拡張することが多い
    • 3DのConvolutionやAttentionと比較して計算コスト小
    • 初期化を工夫すれば学習済み画像生成モデルを初期重みとして利用可能
    “Make-A-Video: Text-to-Video Generation without Text-Video Data”, ICLR 2023
    2D convolutionの後ろに
    時間方向の1D convolutionを追加
    2D self-attentionの後ろに
    時間方向の1D Attentionを追加

    View Slide

  28. 29
    Imagen Video
    Imagenを正統進化させたPixel Spaceでの拡散モデル
    • 空間/時間的に階層的に生成を繰り返すことで高品質な動画生成を実現
    • 画像テキストペアデータセットも学習に用いて、各フレームの生成結果を高品質化
    • Classifier Free Guidanceによる生成品質とテキスト忠実性のコントロール
    • 段階的蒸留を適用し生成速度の改善
    • ベースとなる動画生成モデル (x 1)
    • 空間的な高解像度化をするモデル (x 3)
    • 時間的な補完をするモデル (x 3)
    の合計7個の拡散モデルによる段階的な生成
    言語モデルによる表現をテキスト特徴量として
    用いるため、文字もうまく反映できる
    Imagen Video: High Definition Video Generation with Diffusion Models, Arxiv 2022

    View Slide

  29. 30
    Stable DiffusionをVideo生成に拡張する手法 (1/3): Magic Video
    Latent Diffusionの計算コストの軽さをなるべく保ったまま動画生成への拡張する手法
    • 学習済みStableDiffusionのモデル構造を動画へ拡張
    • 時間方向の1D convではなく2D conv + modulation (各層で独立したパラメタでFILM)
    • 1D Attentionの方向を過去から未来の方向のみに制限
    “MagicVideo: Efficient Video Generation With Latent Diffusion Models”, arxiv 2022

    View Slide

  30. 31
    Stable DiffusionをVideo生成に拡張する手法 (2/3): Align Your Latents
    Stable Diffusionの重みを固定して、時間的な処理を行うために追加する層のみ学習する手法
    • 動画への対応のために追加した層のパラメタのみ学習する
    • Auto EncoderのDecoder部分のみ動画データでFineTuneして時間的一貫性を向上
    • 階層的な生成を行うことで高品質な画像生成を実現
    “Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models”, CVPR 2023

    View Slide

  31. 32
    Stable DiffusionをVideo生成に拡張する手法 (3/3): 生成結果
    Magic Video
    Align Your
    Latents
    階層的な生成+動画によるDecoder
    のfinetuneで品質が向上
    “Align your Latents: High-Resolution Video Synthesis with Latent Diffusion Models”, CVPR 2023
    “MagicVideo: Efficient Video Generation With Latent Diffusion Models”, arxiv 2022

    View Slide

  32. 33
    拡散モデルを用いた3D生成
    他の3Dモデルを更新 3D表現(に変換できる表現)を生成
    拡散モデルの利用方法による分類
    スコアの蒸留による最適化 (①)
    生成画像で最適化 (②)
    拡散モデルで3D表現を直接生成 (LDM含む)
    Point Cloud Mesh SDF
    3D再構成モデル(の条件)を生成
    Field
    DreamFusion
    SJC Magic 3D
    HiFA
    ProlificDreamer
    Latent-NeRF
    Fantasia3D
    “Debiasing Scores
    and Prompts”
    Perp-Neg
    Zero 1-to-3
    3D Fuse
    SparseFusion
    3D一貫性の改善
    3Dモデルの改良
    3D awareな
    拡散モデル
    の利用
    RGBD2
    Text2NeRF
    SceneScape
    ①や②を補助的に
    利用して既存手法を改善
    DiffusionNeRF
    NerfDiff
    ISS++
    GAUDI
    NeuralField-LDM
    LDM3D
    画像出力
    (RGBD/NVS)
    Dream3D
    3DiM
    RenderDiffusion
    (Triplane含む)
    3Dモデル出力の精緻化に利用
    HoloDiffusion
    LAS-Diffusion
    3DQD
    Wavelet for 3D
    SDFusion
    Diffusion-SDF
    DiffRF
    PVD
    DPM for PC
    LION
    Point・E
    Shape・E
    HyperDiffusion
    3DShape2VecSet
    PDR
    3DDesigner
    DiffDreamer
    NeRFの条件
    NeRFのパラメタ
    SDFStyleGANの条件
    NeRDi
    Meshの更新
    NeRFパラメタの更新
    NeRFの学習の正則化
    NeRF出力の精緻化と蒸留
    SVRのPrior & SDSでFinetune
    nerfで生成したviewを精緻化
    カメラ位置に応じてワープした画像を精緻化
    NVMG
    MeshDiffusion
    ATT3D

    View Slide

  33. 34
    拡散モデルを利用した3D生成手法の大別
    3D表現(に変換可能な表現)を
    生成する拡散モデルを学習する方法
    学習済み
    画像生成
    拡散モデル
    学習対象の3Dモデル
    (NeRFなど)

    ある位置から描画
    (ノイズ付加)
    スコア(∇' log 𝑞"(𝑥))の推定
    or
    精緻な画像の生成
    3Dモデルの更新に利用
    テキスト指示など
    の追加情報
    学習済み拡散モデルを画像のpriorとして
    3Dモデルの最適化を行う方法
    3D表現用
    拡散モデル
    VAE等の
    デコーダー
    (任意)
    3Dデータセット
    学習に利用
    3Dノイズ 3D(潜在)表現
    3D表現
    〇 生成時間が比較的短い
    × 学習時に大規模3Dデータが必要
    〇 学習に3Dデータを必要としない
    × 生成対象ごとに3Dモデルの最適化が必要

    View Slide

  34. 35
    DreamFusion: モデル概要
    ポイント
    学習済みText2Image拡散モデルで推定したスコアでNeRFを学習
    NeRFで適当な視点から
    画像をRendering
    スコアを推定
    (自然画像となる方向)
    画像にノイズを付加して
    学習済みT2I拡散モデルに入力
    学習の流れ
    スコア(のGTとの差分)を勾配としてNeRFのパラメタを更新
    “DreamFusion: Text-to-3D Using 2D Diffusion”, ICLR 2023

    View Slide

  35. 36
    DreamFusion: スコアの蒸留による学習
    ポイント
    学習済みText2Image拡散モデルで推定したスコアでNeRFを学習
    “DreamFusion: Text-to-3D Using 2D Diffusion”, ICLR 2023
    Score Distillation Sampling (SDS)によるNeRFの学習
    ※Score Jacobian Chaining (SJC) というほぼ同等の手法も同時期に提案されている
    “Score Jacobian Chaining: Lifting Pretrained 2D Diffusion Models for 3D Generation”, CVPR2023
    𝑔(𝜃)を時刻tだけ拡散させたときの分布 学習済みT2I 拡散モデルの分布
    𝑔(𝜃): 微分可能レンダラ(NeRF, パラメタ𝜃)からの出力画像
    𝑝-
    (𝑧"
    |𝑦): 学習済みT2I拡散モデル (𝑦はテキスト条件)

    拡散モデルの推定誤差が小さくなるように𝜃を更新

    View Slide

  36. 37
    SDSを用いた手法の発展 “ProlificDreamer: High-Fidelity and Diverse Text-to-3D Generation with Variational Score
    Distillation”, 2023
    DreamFusionの発表から極めて短いスパンで急速に進歩している
    ProlificDreamer
    2022年9月 2023年5月

    View Slide

  37. 38
    拡散モデルの基礎とその応用 ~Diffusion Models入門~
    拡散モデルの原理と学習方法
    実用化に向けた拡散モデルの改善
    Text-to-Imageへの拡張
    動画や3Dへの拡張




    View Slide

  38. SONYはソニー株式会社の登録商標または商標です。
    各ソニー製品の商品名・サービス名はソニー株式会社またはグループ各社の登録商標または商標です。その他の製品および会社名は、各社の商号、登録商標または商標です。

    View Slide