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

Generative Models

Hiroshi Takahashi
June 13, 2024
13k

Generative Models

2024年6月13日に大阪大学大学院 情報科学研究科で行った「情報科学特別講義Ⅰ」の講義資料です。
https://www.ist.osaka-u.ac.jp/japanese/news/newsDetailNews.php?id=308

Hiroshi Takahashi

June 13, 2024
Tweet

Transcript

  1. 1 Copyright 2024 NTT CORPORATION ⾃⼰紹介 • 名前 ⾼橋 ⼤志

    • 経歴 • 2009.4 – 2015.3 東京⼯業⼤学 (学⼠・修⼠) • 2020.4 – 2023.3 京都⼤学 (博⼠) • 2015.4 – 現在 NTT (研究所・ドコモ) • 研究分野 ⽣成モデル・異常検知 特に Variational Autoencoder (VAE) というモデルの研究をしています
  2. 3 Copyright 2024 NTT CORPORATION ⽣成AIについて • ⾔語や画像、⾳声などを⽣成する⼈⼯知能 (AI) の総称

    チャットボット 画像⽣成 DALL-E1 Stable Diffusion2 ChatGPT Gemini Claude tsuzumi 1. https://ja.wikipedia.org/wiki/DALL-E 2. https://ja.wikipedia.org/wiki/Stable_Diffusion
  3. 4 Copyright 2024 NTT CORPORATION ChatGPT (OpenAI) • OpenAIが2022年11⽉に公開したAIチャットボット •

    情報提供や質問回答、⽂章作成、対話、⾔語学習⽀援などが可能 • GPT = Generative Pre-trained Transformer (後述) • ⾮常に⾼い性能から話題となり、ChatGPT公開後にOpenAIの評価額は 290億ドルまで上がった1 (2024年2⽉時点で推定800億ドル超え2) 1. https://www.businessinsider.com/chatgpt-creator-openai-talks-for-tender-offer-at-29-billion-2023-1 2. https://forbesjapan.com/articles/detail/69210
  4. 5 Copyright 2024 NTT CORPORATION DALL-E (OpenAI) • OpenAIが2021年1⽉に公開した画像⽣成AI •

    ユーザが⼊⼒したテキストから画像を⽣成することが可能 • 詳細は不明だがGPTベースとのこと (画像系AIはDiffusion (後述) が主流) https://openai.com/index/dall-e-3/ 例: 桜が咲き誇る静かな⽇本庭園にある、アニメ⾵の静かな鯉の池
  5. 6 Copyright 2024 NTT CORPORATION 本講義の狙い • ⽣成AIは研究開発のスピードが⾮常に速く、キャッチアップが 難しい •

    2024年現在、数ヶ⽉ごとに⼤きな進化が起こっている • その⼀⽅で、⽣成AIの基礎となっている部分は昔からほとんど 変わっていない • 本講義で最初に説明する最尤推定は1912年頃から研究されている • 本講義は、⽣成AIの基礎と応⽤を学び、将来的な⽣成AIの研究 開発の⼀助となることを⽬指す • 最先端の⽣成AIの⼀歩⼿前までの内容を取り扱う
  6. 7 Copyright 2024 NTT CORPORATION ⽣成モデルと⽣成AI • 本講義のタイトルに⽤いている⽣成モデルは機械学習⽤語 • 現在は事実上、画像を⽣成するモデルを指すことが多い

    • ⼀⽅で、⽣成AIはテキスト・画像・⾳声などを⽣成するAI全般を指す • 本講義では、⽣成モデルと⾔語モデル (⾔語の⽣成モデル) を扱う ⽣成AI ⽣成モデル VAE, GAN, Flow, Diffusion, etc. ⾔語モデル Transformer, BERT, GPT, etc.
  7. 8 Copyright 2024 NTT CORPORATION 本講義の内容 • 本講義で取り扱うこと • ⽣成モデルの基礎

    (最尤推定 / ガウス混合モデル) • 深層⽣成モデル (VAE / GAN / Flow / Diffusion) • ⾔語モデル (Transformer / BERT / GPT) • Hugging Face⼊⾨ • ⽣成モデルの問題点 • 本講義で取り扱わないこと • 最適化の詳細について (主にEMアルゴリズムや確率的勾配法など) • ⼤規模⾔語モデル (主にTransformer以外の要素) 主に画像 主に⾔語
  8. 9 Copyright 2024 NTT CORPORATION 講義を始める前に • 数式が多く出てきますが、すべて理解しようとしなくてOKです • 重要な数式は⽬⽴つようにします

    • 講義中に質問する時間を多めに設けます • それ以外でも挙⼿や発声で⽌めていただいてOKです • PCやスマホなどで資料を⾒ながらお聞きください • 3時間と⻑い講義なので、各⾃のペースでお聞きください
  9. 11 Copyright 2024 NTT CORPORATION ⽣成モデルについて • データから学習された確率分布のこと • 例えば、コインの裏表の確率は1/2で、サイコロの⽬の確率は1/6

    • このようなデータが発⽣する「確率」を、データから学習したモデル • 確率分布が分かっていれば、新たなデータを「⽣成」できる • 本講義では、データが従う確率分布を、⽣成モデルで学習する⽅法を学ぶ • 本講義で扱う確率分布は下記の2つ: • データ 𝑥 の確率分布 𝑝(𝑥): コインやサイコロなどはこちら • 出⼒ 𝑦 に対する条件付き確率分布 𝑝(𝑦|𝑥): ChatGPTなどはこちら • NOTE: データ 𝑥 や出⼒ 𝑦 はベクトルまたはスカラ (区別せずに表記)
  10. 12 Copyright 2024 NTT CORPORATION 確率分布について • データ 𝑥 が発⽣する確率を表す関数

    • 例えば、コインの表裏を表す確率は 𝑃 𝑥 = ) 0.5 (𝑥 = 表) 0.5 (𝑥 = 裏) • 離散値の場合は、0 ≤ 𝑃 𝑥 ≤ 1 かつ ∑! 𝑃(𝑥) = 1 をみたす • 連続値の場合は、確率密度関数 𝑝(𝑥) を考える • データ 𝑥 が 𝑎 以上 𝑏 以下である確率は 𝑃 𝑎 ≤ 𝑥 ≤ 𝑏 = ∫ " # 𝑝(𝑥) d𝑥 • 0 ≤ 𝑝 𝑥 < ∞ かつ ∫ $% % 𝑝(𝑥) d𝑥 = 1 をみたす • NOTE: 確率分布 𝑃 と確率密度関数 𝑝 は区別せずに表記
  11. 13 Copyright 2024 NTT CORPORATION ⽣成モデルの仮定 データ 𝑥 は真の確率分布 𝑝∗(𝑥)

    に従う 𝑝&'()* ∗ (𝑥) 𝑝,(-./01 ∗ (𝑥) MNIST CIFAR10 ITmedia: https://www.itmedia.co.jp/ 数字⼀つが データ 𝑥 画像⼀枚が データ 𝑥
  12. 14 Copyright 2024 NTT CORPORATION 最尤推定 (1) • 前提: 真の分布

    𝑝∗(𝑥) は未知の関数だが、𝑝∗(𝑥) に従うデータ セット 𝒟 = 𝑥" , … , 𝑥# が利⽤可能 • ⽬的: データセット 𝒟 を⽤いて、⽣成モデル 𝑝$ (𝑥) を真の分布 𝑝∗(𝑥) に近づけるよう学習したい (𝜃はパラメータ、後述) • ⽅法: カルバック・ライブラー情報量という、2つの確率分布の 差異を計る尺度を導⼊し、最⼩化することでモデルを学習する 確率分布同⼠の距離のようなもの (対称性はない) <latexit sha1_base64="F9CO4wxgrOzh2bHxQwRZvSn+Jm8=">AAADfnicnVLdahNBFD7p+pPGn0Z7I3hTDA1psXEi0hZBKOqFoNI/0xa67TK7nWyG7h+zk5A43RfwBXrRKwUvxMfwxhfwIo9QvKwgiKBndjdKDSp0lt0555vzfefb4diRx2NJyKAwZpw7f+Ficbx06fKVqxPla9c34rAjHNZ0Qi8UWzaNmccD1pRcemwrEoz6tsc27f1H+nyzy0TMw+CF7Edsx6duwFvcoRIhqxybPpVt4aunz5JatKtmk1pv5uAgspQp20xSnc5UH5g8kJaaw60l+8muyoMhwfRC12wJ6qghkqhTEsmwzV7SK1nlCqmTdE2NBo08qEC+VsLyNzBhD0JwoAM+MAhAYuwBhRifbWgAgQixHVCICYx4es4ggRJyO1jFsIIiuo9fF7PtHA0w15pxynawi4evQOYUTJNP5B05IR/Je3JMvv9VS6Ua2ksfdzvjssiaeHVj/et/WT7uEtq/Wf/0LKEFi6lXjt6jFNF/4WT87svDk/X7a9OqSt6Qz+j/NRmQD/gHQfeL83aVrR2hutZ/jKzsDgVGz3MPy6jIENGZvoVZ7GOmNS761B2T/I5dxG//ws6qSKE3ophhekwafw7FaLBxt96Yr8+v3qssPcwHpgg34RbUcCoWYAmewAo00dcAfhSKhXEDjKoxZ9zJSscKOWcSTi1j8SfDw9XI</latexit> KL(p⇤(x)||p✓(x)) = Z 1 1 p⇤(x) log p⇤(x) p✓(x) dx
  13. 15 Copyright 2024 NTT CORPORATION 最尤推定 (2) • カルバック・ライブラー情報量は下記のように変形できる •

    したがって、上記の最⼩化は下記で書き換えられる 定数 (⽣成モデルに関係ない値) 定数を除き、最⼩化を最⼤化に データセットを⽤いて近似 <latexit sha1_base64="kFPFWdBThJaNI6SLjm+pPUKthis=">AAADpnicnVLLbtNAFL2uebTh0dBuKrGJiFrSikZjhNoKCakCFkg8+iJNpbo1Y3fijOqX7EmU4PoH+AEWXYHEAvEZbPgBFv0E1GWRkBAL7thDKURQxFj23HvmnnOPR9eOPJ4IQg60If3M2XPnh0dKFy5eujxavjK2noSd2GENJ/TCeMOmCfN4wBqCC49tRDGjvu2xpr17T543uyxOeBg8Ff2IbfnUDXiLO1QgZJX3TZ+KduynDx9ltWg7nclqvem9vchKTdFmgsp0euqOyQNhpbO4tUQ/205V8INgeqFbOU6U4k7Wm/0n3sleJ8glq1wldZKvymBgqKAKai2H5a9gwg6E4EAHfGAQgMDYAwoJPptgAIEIsS1IEYsx4vk5gwxKyO1gFcMKiugufl3MNhUaYC41k5ztYBcP3xiZFZgkH8lbckQ+kHfkE/n2R60015Be+rjbBZdF1uiLibUvp7J83AW0f7L+6llACxZyrxy9Rzki/8Ip+N3nL4/Wbq9OplPkNTlE/6/IAXmPfxB0PztvVtjqPqpL/fvIKu4wxuix8rCEigwRmclbmME+Zl7jok/ZMVN37CJ+4xj7X0UKvQHFApNjYvw+FIPB+s26MVefW7lVXbyrBmYYrsI1qOFUzMMiPIBlaICjadp1jWiGXtOf6A29WZQOaYozDr8s/dl3mXnkfA==</latexit> KL(p⇤(x)||p✓(x)) = Z 1 1 p⇤(x) log p⇤(x)dx Z 1 1 p⇤(x) log p✓(x)dx <latexit sha1_base64="YSdoxOtWeF/RDSW5OY9vHDy6hjI=">AAADynicnVJLaxRBEK7J+IjrI6teBC+Ly4bdoEuPSBQhENSDkKh5bRLIJEPPpHe2ybzs6V127czNk3/AgycFD+KP8ODFP+AhP0E8RhDEgzWPJGwWDdjDdFd9Vd9X1U3ZkcdjScieNqafOn3m7Pi50vkLFy9NlC9fWY3DrnBYywm9UKzbNGYeD1hLcumx9Ugw6tseW7N3HqbxtR4TMQ+DFTmI2KZP3YC3uUMlQlb5k+nzwFKm7DBJE9OnsiN8NTef1KMtNZXU+43d3egwjm5jcgaz+kcUHkhL3cKjLQfJliqMA7bphW5lSOCgxnbSN2Pus+fDcm1BHWUk6mlixl3fUsGMgaroHRfCUNIoWeUqaZJsVUYNozCqUKyFsPwLTNiGEBzogg8MApBoe0Ahxm8DDCAQIbYJCjGBFs/iDBIoIbeLWQwzKKI7uLvobRRogH6qGWdsB6t4+AtkVqBGvpIPZJ98IR/JN/L7r1oq00h7GeBp51wWWROvri3/PJHl4ymhc8T6Z88S2nAv65Vj71GGpLdwcn7vxev95ftLNTVJ3pHv2P9bskc+4w2C3g/n/SJbeoPqqf4jZOVvKNB6UvTwDBUZIqmXvsIU1jGzHBf7TCsmxRu7iN88xP5XkUJ/RDHH0jExjg/FqLF6u2lMN6cX71RnHxQDMw7X4QbUcSruwiw8hgVogaPVtDltRWvp87rQB7rKU8e0gnMVhpb+8g9fZPVv</latexit> min ✓ KL(p⇤(x)||p✓(x)) = max ✓ Z 1 1 p⇤(x) log p✓(x)dx ' max ✓ 1 N N X n=1 log p✓(xn)
  14. 16 Copyright 2024 NTT CORPORATION 最尤推定 (3) • この学習⽅法を最尤推定と呼ぶ •

    ⽣成モデル以外の機械学習分野でも幅広く⽤いられている学習⽅法 • 本講義で説明するモデルは⼀つ (GAN) を除いて全て最尤推定で学習する データセット 𝒟 = 𝑥7, … , 𝑥8 に対して、下記の対数尤度関数を 最⼤化することで、⽣成モデル 𝑝$ (𝑥) を学習できる <latexit sha1_base64="I4MdGucLbIwF9iVghi2LKIfXplU=">AAADSHicnVJNT9VAFD0URXwoPHRj4uaFFwwa8zI1BowJCUEXbpAvH5BQbKZ1XmnoV9p5L0DTP+AfcOFKDQvjz2CDLiEs+AnGjQkmRMOCO22D0Rc1cZrO3HvmnjNnJteKPDeRjB31aL0XLvZd6r9cGbhydXCoOnxtKQnbsS2aduiF8YrFE+G5gWhKV3piJYoF9y1PLFsbj9T+ckfEiRsGz+RWJNZ87gRuy7W5JMisTho+3zRTQ64LyTOjFXM71bP0aWYkbd9Mg0k9e64yL3Rq0XndGFGC7HbFrNZZg+Wj1h3oZVBHOebC6g8YeIEQNtrwIRBAUuyBI6FvFToYIsLWkBIWU+Tm+wIZKsRtU5WgCk7oBs0OZaslGlCuNJOcbdMpHv0xMWsYZYfsPTtme+wD+8xO/6iV5hrKyxatVsEVkTn08sbiyT9ZPq0S6z9Zf/Us0cKD3KtL3qMcUbewC35n+9Xx4sOF0fQWe8u+kP837Ijt0g2Czjd7Z14svCZ1pf+YWMUbxhTNlB5mSVEQojL1CnfoHCOvccinOjEr39gh/O459r+KHJtdigWm2kT/vSm6g6V7DX28MT5/vz41XTZMP25iBGPUFROYwhPMoUm+3uEj9nGgfdK+aifa96JU6yk51/HL6NXOAPwAxWo=</latexit> max ✓ 1 N N X n=1 log p✓(xn)
  15. 17 Copyright 2024 NTT CORPORATION 例: コインの裏表の確率は︖ (1) • 表が1、裏が0として、

    𝒟 = 1, 0, 1, 0, 1, 1, 0 からコインの裏表 の確率を最尤推定したい • ⼆値データをモデル化する時は、ベルヌーイ分布が⽤いられる • ここで、パラメータ 𝜃 は表が出る確率を表す • パラメータとは、確率分布を特徴付ける変数のことを呼ぶ • この場合は1次元の変数だが、後述する深層⽣成モデルでは、ニューラル ネットワークの各層の重みやバイアスがパラメータとなる <latexit sha1_base64="eqOhREEWMumhXAv/f58x/MfB+Cc=">AAADN3icSyrIySwuMTC4ycjEzMLKxs7BycXNw8vHLyAoFFacX1qUnBqanJ+TXxSRlFicmpOZlxpaklmSkxpRUJSamJuUkxqelO0Mkg8vSy0qzszPCympLEiNzU1Mz8tMy0xOLAEKxQvoBMRXx5RkpJYk1mpU2GZrqtlCeHHV2bUahroQjmZctaFudi1XvICygZ4BGChgMgyhDGUGKAjIF/jFEMOQwpDPkMxQypDLkMqQx1ACZOcwJDIUA2E0gyGDAUMBUCyWoRooVgRkZYLlUxlqGbiAekuBqlKBKhKBotlAMh3Ii4aK5gH5IDOLwbqTgbbkAHERUKcCg6rBVYOVBp8NThisNnhp8AenWdVgM0BuqQTSSRC9qQXx/F0Swd8J6soF0iUMGQhdeN1cwpDGYAF2aybQ7QVgEZAvkiH6y6qmfw62ClKtVjNYZPAa6P6FBjcNDgN9kFf2JXlpYGrQbKDpIPNdgLogYVgEZPlC3eAPNDEVKALigUJBC2hPDFhNOtCdIBtroWGcDhTXgYuRa2IiQwWGiRAxUDIxRE8UmIwwIz1DMz2zQBNlBydoguFgkGZQYtAApgpzBgcGD4YAhlCguyYx7GA4yHCIaSfTfaZnTC8gSpkYoXqEGVAA00cAYdO9QA==</latexit> P✓(x = k) = ✓k(1 ✓)1 k
  16. 18 Copyright 2024 NTT CORPORATION 例: コインの裏表の確率は︖ (2) • このモデルのパラメータ

    𝜃 を最尤推定で学習する • ⽬的関数は下記の通り • この場合は微分を⽤いて閉形式で最適な 9 𝜃 が求められる 出た値の平均値になっている <latexit sha1_base64="0mXVoY9YjV6OtfW9Q+LYMdw/UfA=">AAAD6nicnVLLahRBFL2d9hHHRya6EdwMDpEozlAtIYowEHyAi6h5OEkgFYfqtma6meoH1dVjYlM/4NKNSFaKLsTPcOMPuMjKtbiMIIgLbz8wE4dEsJruuvfce06dLq4dCS9WhOwYY+aRo8eOj5+onDx1+sxEdfLsShwm0uFtJxShXLNZzIUX8LbylOBrkeTMtwVftfu3s/rqgMvYC4NHaiviGz7rBV7Xc5hCqFP9QruSOSmNmFQeE9RnynWYSOf1NHWZSqlyuWL6st5rGYJ1q6BbOn2gaZz4nTRoWfpxlgneVTStFQ2bWNCoMcxtlNxGWbQa+8pUej1XUV1rETqPWnnKpAyfDrcdbCBXrXSqddIk+aqNBlYZ1KFcC2H1J1B4AiE4kIAPHAJQGAtgEOOzDhYQiBDbgBQxiZGX1zloqCA3wS6OHQzRPn57mK2XaIB5phnnbAdPEfhKZNZginwm78ku+UQ+kK/k14Faaa6RednC3S64POpMPD+//OOfLB93Be4e61DPCrpwI/fqofcoR7K/cAr+4NnL3eWbS1PpJfKGfEP/r8kO+Yh/EAy+O+8W+dI2qmf6d5BV3KHE6H7p4SEqckSyLLuFK3gOzXt66DM7UZd33EP86h/sfxUZbI4oFlg2JtbfQzEarFxrWrPN2cWZ+tytcmDG4QJchGmciuswB/dgAdrgGHeNvqGMxBTmC/OVuV20jhkl5xzsW+bb34p1BSA=</latexit> @L(ˆ ✓) @ˆ ✓ = 1 N N X n=1 ⇢ xn ˆ ✓ 1 xn 1 ˆ ✓ = 0 , ˆ ✓ = 1 N N X n=1 xn <latexit sha1_base64="r/Vme82TeHqOFyBTUx6zFGTG09Q=">AAADpHicnVLdatRAFD5p/KnrT1d7I3gTXHbZVbtORFoRFop64UXVbddtC00bJulsNmz+mMwurSEv4AuIeKXghfgY3vgCXvQRxMsKggh6ZhIUXazghGTO+c75vvkyHCcJ/FQQcqDN6MeOnzg5e6py+szZc3PV8xfW03jMXdZ34yDmmw5NWeBHrC98EbDNhDMaOgHbcEZ3ZX1jwnjqx9FjsZ+w7ZB6kT/wXSoQsqvPrQGnbmbm2cPcSsehnUUdM9+RWRB7RtfOLDFkgubNPSzlnVGr0TmCwgbCygzVKvkF92rTXFBQS2KYFHDL4r43FFZudKyQiqFLg2wlb5bFil2tkTZRy5gOzDKoQbm6cfUrWLALMbgwhhAYRCAwDoBCis8WmEAgQWwbMsQ4Rr6qM8ihgtwxdjHsoIiO8OthtlWiEeZSM1VsF08J8OXINKBOPpA35JC8J2/JR/Ltr1qZ0pBe9nF3Ci5L7LmnF3tf/skKcRcw/MU60rOAAdxSXn30nihE/oVb8CdPnh32bq/VswZ5RT6h/5fkgLzDP4gmn93Xq2ztBapL/XvIKu6QY/Sg9PAIFRkiMpO3cAXPsVSPhz7liXl5xx7i135i/6tIYW9KscDkmJh/DsV0sH6jbS62F1dv1pbvlAMzC5fgMjRxKpZgGe5DF/ro67tW19radb2hr+g9vV+0zmglZx5+W/rODyb744Y=</latexit> 1 N N X n=1 log P✓(xn = k) = 1 N N X n=1 {xn log ✓ + (1 xn) log(1 ✓)} = L(✓)
  17. 20 Copyright 2024 NTT CORPORATION 例: コインの裏表の確率は︖ (4) • 𝒟

    = 1, 0, 1, 0, 1, 1, 0 を⽤いて計算すると、 , 𝜃 = 4/7 • コインの出た値の平均が最適なパラメータとなるため、直感と⼀致する • 偏りが⼀切ないコインであれば、データセットのサイズを⼤きくすれば、 9 𝜃 = 1/2 に収束する • 最尤推定で得られたパラメータを最尤推定量と呼ぶ • このように、下記の⼿順を⾏うことで⽣成モデルは学習できる 1. データセット 𝒟 = {𝑥0 , … , 𝑥2 } に対して、適切なモデル 𝑝3 (𝑥) を選択する 2. 対数尤度関数 0 2 ∑450 2 log 𝑝3 𝑥 を計算する 3. パラメータ 𝜃 に関する微分を⽤いて最適化する
  18. 21 Copyright 2024 NTT CORPORATION ガウス分布 (1) • データ 𝑥

    が連続値の場合は、ガウス分布やガウス混合モデルを ⽤いることが多い • 1次元のガウス分布は平均 𝜇 と分散 𝜎% をパラメータにもち、 下記で表される °4 °2 0 2 4 x 0.0 0.2 0.4 0.6 0.8 pµ (x) µ = 0, æ2 = 1.0 µ = 0, æ2 = 0.2 µ = 0, æ2 = 5.0 µ = °2, æ2 = 0.5 標準ガウス分布 <latexit sha1_base64="ukh9tll3oaC1VxUaJ0lhmoE3AfU=">AAADe3icnVLdahNBFD7J2lrjT6PeCN4UQ0tS0jAbtIoiFPXCG7U/pi10apgdJ5uhsz/OTkLqsi/gC3jhlYIX4mN44wso9BHEywqCVPDsDwYNKjjLzpz5zvm++WY4TqhkZAg5KJWtY1PTx2dOVE6eOn1mtnr23GYUDDQXHR6oQG87LBJK+qJjpFFiO9SCeY4SW87e7TS/NRQ6koH/0OyHYtdjri97kjODULcaUo+ZPmcqvp/URzeoN2jSSLoeexS3k8bCTdrTjMd2EtPoiTZxm4ZynE8SKkYhVaJn6kt5ZX20hBqNLIvV41Kqpds3jUq3WiMtko25ycAughoUYzWofgMKjyEADgPwQIAPBmMFDCL8dsAGAiFiuxAjpjGSWV5AAhXkDrBKYAVDdA9nF3c7BerjPtWMMjbHUxT+GplzME8+kDfkkLwnb8kncvRHrTjTSL3s4+rkXBF2Z59d2Pj6T5aHq4H+mPVXzwZ6cC3zKtF7mCHpLXjOHz59frhxfX0+XiCvyGf0/5IckHd4A3/4hb9eE+svUD3Vv4Os/A01RvcKDw9QUSCS7tJXWMRzaFbjos/0xKR4Yxfx5k/sfxUZjCYUcyxtE/v3ppgMNtste7m1vHa5tnKraJgZuAiXoI5dcRVW4C6sQgd9fYSj0lRpuvzdqlmLVjMvLZcKznn4ZVhXfgAZ1NTW</latexit> N(x; µ, 2) = 1 p 2⇡ 2 exp ✓ (x µ)2 2 2 ◆
  19. 22 Copyright 2024 NTT CORPORATION ガウス分布 (2) • データセット 𝒟

    = 𝑥" , … , 𝑥# が与えられた場合、ガウス分布の 各パラメータの最尤推定量 2 𝜇 と 2 𝜎% は下記で計算できる • ベルヌーイ分布の場合と同様に、微分を⽤いて閉形式で求められる • 様々な好ましい性質 (計算のしやすさ等) があるため、連続値 データをモデル化する時に良く⽤いられる • 後述する深層⽣成モデルは全てガウス分布を⽤いる データの平均 データの分散 <latexit sha1_base64="9NMgrtGLOZNaIMT8AVubRK5wJgI=">AAADeXicnVLLahRBFL0zHTWOj4y6EdxEh8gY4lAdJYoQCOrCjZqHkwTScaju1HSK9Mvu6iGx6R/wB1y4UnAhfoYbP0AX+QRxGUGILjzV3UR0MEKq6ap7T91z6lRx7ciTiWJst1Y3Ro4dPzF6snHq9JmzY81z55eTMI0d0XVCL4xXbZ4ITwaiq6TyxGoUC+7bnlixt+7p/ZWBiBMZBk/UTiTWfe4Gsi8drgD1moG1yVVm+Wk+a/Vj7mRmnj3KrST1e1kwa+ZPkW0jzKesZynfKKsT6focW9OHkNoF6/qB/DVd3ug1W6zDijE+HJhV0KJqzIfNfbJog0JyKCWfBAWkEHvEKcG3RiYxioCtUwYsRiSLfUE5NcBNUSVQwYFuYXaRrVVogFxrJgXbwSke/hjMcZpgn9k7tsc+svfsC/v5T62s0NBedrDaJVdEvbEXF5e+/5flY1W0+Zt1qGdFfbpdeJXwHhWIvoVT8gfPX+4t3VmcyK6yN+wr/L9mu+wDbhAMvjlvF8TiK6hr/ftglW8YI3pYeXgMRQFEZ/oVJnGOVdS48KlPzKs3doFPHWBHVeS0PaRYYrpNzL+bYjhYnu6YM52ZhZutubtVw4zSJbpCbXTFLZqjBzRPXfj6RPs1ozZS/2FcNtrGZFlar1WcC/THMG78Ak6v1ak=</latexit> ˆ µ = 1 N N X n=1 xn, ˆ2 = 1 N N X n=1 (xn ˆ µ)2
  20. 23 Copyright 2024 NTT CORPORATION ガウス分布 (3) • 𝐷& 次元のガウス分布は、平均

    𝜇 と共分散⾏列 ∑ をパラメータ にもち、下記で表される °3 °2 °1 0 1 2 3 °3 °2 °1 0 1 2 3 pµ(x) 0.02 0.04 0.06 0.08 0.10 0.12 0.14 <latexit sha1_base64="9EqNPDiYq2FkQKRCMEZHyph1ODE=">AAADfHicnVLdahNBGP2S1bbGn8Z6I3hTjC2JNmE2lCiKULQX3qht07SFbhtmx8l26P51dxJSp/MCvoAXXil4IT6GN76ASB9BvKwgiIrf/qhoUMFZduebM+ecOTt8duiKWBJyWCgax46PjU+cKJ08dfrMZPns1Foc9CPGOyxwg2jDpjF3hc87UkiXb4QRp57t8nV793ayvz7gUSwCf1Xuh3zLo44veoJRiVC3vGd5VO4w6qp7ujq8YXn9OastHI/WZm9avYgyZfFhWK1ntalVE2l1pNW21arOqNuqbn5Ha1pZ8V4kVbVphQJJi1011PogYx5oXeqWK6RB0jE9Wph5UYF8LAXlT2DBAwiAQR884OCDxNoFCjE+m2ACgRCxLVCIRViJdJ+DhhJq+8jiyKCI7uLXwdVmjvq4TjzjVM3wFBffCJXTMEPekBfkiLwmL8k78vmPXir1SLLs42xnWh52Jx+db3/8p8rDWcLOT9VfM0vowbU0q8DsYYokf8Ey/eDh46P29ZUZNUuekfeY/yk5JK/wD/zBB/Z8ma88QffEfxFV2R1GWN3NM9xHR45Iskpu4TKeY6UcB3MmJ+r8jh3E535g/+tIYTjimGFJm5i/N8VosdZsmK1Ga3m+snArb5gJuAAXoYpdcRUW4A4sQQdzvYUvhbHCePGrccm4YtQzarGQa87BL8NofQMT29Qj</latexit> N(x; µ, ⌃) = exp( 1 2 (x µ)T ⌃ 1(x µ)) p (2⇡)Dx |⌃| > 2次元のガウス分布を3Dプロットする コードをPythonで書いてください ChatGPTを使ってプロットしてみよう
  21. 24 Copyright 2024 NTT CORPORATION ガウス混合モデル (1) • ガウス分布は単峰の分布のため、多峰の分布は表現できない •

    そこで、ガウス分布を 𝐾 個混合したガウス混合モデルを考える • 積分して1になるように、重み 𝜋6 ∈ [0,1] を係数としてかける °5.0 °2.5 0.0 2.5 5.0 7.5 10.0 12.5 15.0 x 0.000 0.025 0.050 0.075 0.100 0.125 0.150 0.175 0.200 pµ (x) µ = 0, æ2 = 1, º = 0.5 µ = 5, æ2 = 0.5, º = 0.3 µ = 10, æ2 = 2, º = 0.2 GMM <latexit sha1_base64="6SSSumH08y0jIHP+UU7XVU8+TDQ=">AAADVXicnVLLahRBFD2ZiTGOj5noRnATHBISCUN1CFGUQFAXoqh5OEkgnTTVbaWnmH7RXTMkNv0D/oALVwouxI3/4MYfUMlKt+IygiAK3upuFB2MYDVdde+pe06dKq4deTJRjO0PVarDR0aOjh6rHT9x8lS9MXZ6LQl7sSPaTuiF8YbNE+HJQLSVVJ7YiGLBfdsT63b3mt5f74s4kWFwT+1FYsvnbiB3pMMVQVbjZmSlpuoIxbOp3enJBTPp+VbaXTCy7fRWZkaSksz0ueo43EvvUNEV0+9pcMZMpOtzHW6ns9l0zWo0WYvlY3wwMMqgiXIshY2vMHEfIRz04EMggKLYA0dC3yYMMESEbSElLKZI5vsCGWrE7VGVoApOaJdml7LNEg0o15pJznboFI/+mJjjmGBv2HN2wF6zF+wj+/ZXrTTX0F72aLULrois+sOzq1/+yfJpVej8Yh3qWWEHl3KvkrxHOaJv4RT8/oNHB6uXVybSSfaUfSL/T9g+e0U3CPqfnWfLYuUxqWv968Qq3jCm6Hbp4S4pCkJ0pl/hAp1j5jUu+dQnZuUbu4TP/MT+V5Fjd0CxwHSbGH82xWCwNtsy5lvzy3PNxatlw4ziHM5jirriIhZxA0tok6+XeIv3+FB5V/leHa6OFKWVoZJzBr+Nav0HetfIUA==</latexit> p✓(x) = K X k=1 ⇡k N(x; µk, 2 k ) <latexit sha1_base64="lEjW+b00afrMDcPOca9BexsQhQ4=">AAADaHicnVLLahRBFD2Z9hHHR9q4UHETMiREGYbqIIkEhGBcCEHMw0kC6clQ3al0ivSL7pohsZkf8AdcZKXgQvyMbPwBF/mE6M4RBHHhre7GEAcVrKa77j33nlOni+vEvkwVY8dDFePc+QsXhy9VL1+5em3EvD66lkadxBVNN/KjZMPhqfBlKJpKKl9sxInggeOLdWdvQdfXuyJJZRQ+VwexaAXcC+WOdLkiqG22bLUrFJ98OGXHsp1Zvbrtb0cqrefpIqVB5wysUw2n0gu4rmxl06fVEl3M0bvVtlljDZavscHAKoMayrUUmd9hYxsRXHQQQCCEotgHR0rPJiwwxIS1kBGWUCTzukAPVeJ2qEtQByd0j74eZZslGlKuNdOc7dIpPr0JMccwwT6yd6zPPrD37IT9+KNWlmtoLwe0OwVXxO2Rl7dWv/2TFdCusHvK+qtnhR08yL1K8h7niP4Lt+B3X7zqr86tTGST7A37TP5fs2N2RH8Qdr+6b5fFyiGpa/3HxCruMKHoaenhGSkKQnSmb+EenWPnPR751Cf2yjv2CK//wv5XkWN/QLHA9JhYvw/FYLA23bBmGjPL92vzj8qBGcYdjGOKpmIW83iCJTTJ1xFO8AX9yifDNG4at4vWylDJuYEzyxj/CXuMzig=</latexit> ✓ = (⇡1, . . . , ⇡K, µ1, . . . , µK, 2 1 , . . . , 2 K )
  22. 25 Copyright 2024 NTT CORPORATION ガウス混合モデル (2) • この場合のパラメータ 𝜃

    は、閉形式で求めることができない • EMアルゴリズム [A1] や変分ベイズ [A2] を⽤いて最適化する (省略) • 混合数 𝐾 の決定が難しいため、変分ベイズを⽤いるのがおすすめ [A3] EM Algorithm Variational Bayes 𝐾 = 5 の場合 EMアルゴリズムの場合、クラスタ を無理やり分割してしまう 変分ベイズの場合、適切なクラスタ 数を選択することができる
  23. 26 Copyright 2024 NTT CORPORATION まとめ: ⽣成モデルの基礎 • 従来の⽣成モデルは、データに対して適切なモデルを選択し、 最尤推定を⾏う

    • 例えばコインのような⼆値データであれば、ベルヌーイ分布が最適 • 連続値データならガウス分布やガウス混合モデルを⽤いることが多い • 理想的には、𝐾 = ∞ のガウス混合モデルで何でも表現できるはず • では、より複雑なデータに対して適切なモデルはあるのか︖ • 画像のような複雑なデータになると、ガウス混合モデルでは対応できない • 深層学習の登場以降、⽣成モデルは⾶躍的に発展し、画像のような複雑な データのモデリングが可能になった • 以降では、深層学習を⽤いた⽣成モデルを紹介する
  24. 27 Copyright 2024 NTT CORPORATION 参考⽂献 A 1. "Expectation–maximization algorithm",

    https://en.wikipedia.org/wiki/Expectation%E2%80%93maximi zation_algorithm 2. Blei, David M., and Michael I. Jordan. "Variational inference for Dirichlet process mixtures." (2006): 121-143. 3. "2.1. Gaussian mixture models", https://scikit- learn.org/stable/modules/mixture.html
  25. 29 Copyright 2024 NTT CORPORATION 深層⽣成モデルについて • 深層学習を⽤いて⽣成モデルを学習する⼿法の総称 • ガウス混合モデルなどの従来⼿法と⽐べ、画像のような複雑で

    ⾼次元のデータの分布を学習することが可能となった • 本講義ではまず深層学習とその最適化について説明し、続いて 下記の4つのモデルを説明する • Variational Autoencoder (VAE) [B1] • Generative Adversarial Network (GAN) [B2] • Flow-based Model (Flow) [B3] • Diffusion Model (Diffusion) [B4] Diffusionによる⽣成例 [B4]
  26. 30 Copyright 2024 NTT CORPORATION 深層学習について • 任意の関数 𝑦 =

    𝑓$ (𝑥) を近似するための⼿法 • 例えば、隠れ層が2層のニューラルネットワーク (NN) は下記 𝑥 𝑦 ℎ0 ℎ7 𝑊8 , 𝑏8 𝑊7 , 𝑏7 𝑊0 , 𝑏0 <latexit sha1_base64="wO8HJ0LurT1j1dT6WmIXDOCGSK8=">AAADOXicnVJNSxtBGH7cWmuj1dheCl7EoFgJYdaKLYWCqAcv4ldjBCNhdx3j4mZ32Z2E2pA/0LPgwZOCB/Ef6FEP/gEPHr35cUxBKD30ndlFaYMKzrIz7zzzPs888/KavmOHgrHzJu1F88uWV62vE23tbzo6k11vF0KvHFg8a3mOFyyaRsgd2+VZYQuHL/oBN0qmw3Pm+rg8z1V4ENqe+01s+Hy5ZBRde9W2DEFQIZnJizUujP6vA7lCVa+laR5S88da2lSIqRBTIh8ShWSKZZgaPY2BHgcpxGPGS/5GHivwYKGMEjhcCIodGAjpW4IOBp+wZVQJCyiy1TlHDQnilimLU4ZB6DrNRdotxahLe6kZKrZFtzj0B8TsQR87Y/uszk7ZAbtifx7UqioN6WWDVjPicr/Q+fP9/O2TrBKtAmv3rEc9C6zis/Jqk3dfIfIVVsSv/Niqz3+Z66v2s112Q/532Dk7phe4lV/W3iyf2yZ1qT9BrKiGAUVTsYdpUuSEyJ2swiDdk1c5RfIpb6zFNS4Snr7Dnqto4HuDYoTJNtH/b4rGYGEoo49kRmaHU6NjccO0ohu9GKCu+IRRTGIGWfK1iUMc40Q70i60S+06StWaYs47/DO0+l/CY71X</latexit> ✓ = (W1, W2, W3, b1, b2, b3) ここで、パラメータは下記 活性化関数 (シグモイド関数など) <latexit sha1_base64="dOUfHrMO0Nuh9QrziLrd4wKGCZk=">AAADdXicnVJNa9RAGH52o7auH13rRRChuHaprWwn21JFKBT14EXsh9stNGVJ4mx2bDYJk9ml65I/4B/w4EnBg/gzvHj04qE/QTxWLIig7yTBousHOCGZd555nmeeDK8T+SJWjO0Xisax4yfGxk+WTp0+c3aifG5yMw570uUNN/RDueXYMfdFwBtKKJ9vRZLbXcfnTWf3tt5v9rmMRRg8UIOI73RtLxBt4dqKoFb5Uac1NJPqstW3ZdQRls/baqapsb05R0+WFF5HXbUsItZ/Q6wnqYMm14/Ig+oy7S0kqUjvLSSlVrnCaiwdU6OFmRcV5GM1LH+BhYcI4aKHLjgCKKp92Ijp2YYJhoiwHQwJk1SJdJ8jQYm0PWJxYtiE7tLXo9V2jga01p5xqnbpFJ9eScopTLP37BU7YG/Za/aBff2j1zD10FkGNDuZlketiScXNg7/qerSrNA5Uv01s0IbN9KsgrJHKaL/ws30/cdPDzZurk8Pq+wF+0j5n7N99ob+IOh/cl+u8fVn5K7975Aqu0NJ1b08w31y5ITolb6FWTrHSjke5dQnJvkde4Rf+4H9r6ONvRHHDNNtYv7aFKPFZr1mLtWW1hYrK7fyhhnHRVzGDHXFdazgLlbRoFzv8BnfCigeGpeMK0Y1oxYLueY8fhrG/Hdz0tHv</latexit> h1 = ' (W1x + b1) h2 = ' (W2h1 + b2) y = W3h2 + b3
  27. 32 Copyright 2024 NTT CORPORATION 確率的勾配法について • NNは閉形式で最適なパラメータを求めることができないため、 確率的勾配法 (stochastic

    gradient descent, SGD) を⽤いて 最適なパラメータを求める 1. データセット 𝒟 からランダムにミニバッチ (部分集合) ℬ を選ぶ 2. ミニバッチ ℬ に対し、損失関数 ℒ(𝜃; ℬ) の値を計算する 3. 損失関数の微分 ∇3 ℒ(𝜃; ℬ) を⽤いて、パラメータ 𝜃 を下記で更新する 4. 上記を収束するまで繰り返す <latexit sha1_base64="f6Q8UJX8UA4F6XLyWpgQoBg5j9U=">AAADVnicnVLLahRBFD2ZSUwcH+noRnATHBKi6FAjkojZhJhFQMW8Jgmkw1Dd1sw0qX5QXTMxNv0D/oCLrBRciCu/wY0/IJqdLsVlBCGIeKu7ieiggtV01a1T95w6dblOJL1YM3YwUCoPDp0YHjlZOXX6zNlRa+zcehx2lSsabihDtenwWEgvEA3taSk2IyW470ix4ezcNucbPaFiLwzW9F4ktn3eDryW53JNUNO6Y+uO0HzSlqKluVLhbg5cs2myA+5I3kxyKLV9rjsul8nddCqHZo+h+fRypWlVWY1lY7w/qBdBFcVYCq0j2HiAEC668CEQQFMswRHTt4U6GCLCtpEQpijysnOBFBXidilLUAYndIfmNu22CjSgvdGMM7ZLt0j6FTHHMcHeshfskL1hL9kn9u2PWkmmYbzs0erkXBE1Rx9fWP36T5ZPq0bnJ+uvnjVauJl59ch7lCHmFW7O7z16crh6a2UimWTP2Gfy/5QdsNf0gqD3xX2+LFb2Sd3oLxArr6Gi6F7h4T4pCkLMzlThCt1jZzlt8mluTIsatwm/eoz9ryLHwz7FHDNtUv+9KfqD9eu1+nRtevlGdW6+aJgRXMQlTFFXzGAOi1hCg3y9wjt8wMfS+9L38lB5OE8tDRSc8/hllK0f7cXJIw==</latexit> ✓ ✓ ⌘r✓ L(✓; B) 更新率 例: 負の対数尤度関数
  28. 33 Copyright 2024 NTT CORPORATION Variational Autoencoder (1) • Variational

    Autoencoder (VAE) [B1] は、データ 𝑥 の確率 𝑝$ (𝑥) を、低次元の潜在変数 𝑧 を⽤いて下記で推定する • 𝑥 が連続値の時、デコーダと事前分布は下記で定義される <latexit sha1_base64="qbhTgZfdRQCxj0XVlf4KJ8YjDpE=">AAADPnicnVLLahRBFD1pH0nGRyZmE3AzOCTMiAw1URIRAsFk4UbMw0kC6TBUdyozRfpFd82QTGd+ID8gwVUCWYgfoeAmfoCL/IAgIi4iKOLCW92Nr8EIVtNVt07dc+rU5VqBIyPF2Emfce78hYv9A4O5S5evXB3KD19bjvxWaIua7Tt+uGrxSDjSEzUllSNWg1Bw13LEirU1q89X2iKMpO89VjuBWHd5w5Ob0uaKoHr+dlCPTdUUindL2+XpcVN6qvArttspB6VO2XS5aoZuvNHt5Or5IquwZBR6g2oWFJGNeT//FSY24MNGCy4EPCiKHXBE9K2hCoaAsHXEhIUUyeRcoIsccVuUJSiDE7pFc4N2axnq0V5rRgnbplsc+kNiFjDG3rBn7JQds+fsHfv2V6040dBedmi1Uq4I6kN7o0uf/8lyaVVo/mSd6VlhE3cTr5K8BwmiX2Gn/HbnyenSvcWxeJwdsvfk/4CdsFf0Aq/9yT5aEItPSV3rzxErrWFI0cPMwyNSFITona7CTbrHTHIa5FPf2M1q3CD81g/sfxU5tnsUU0y3SfXPpugNlicq1cnK5MKd4sz9rGEGcB03UKKumMIMHmAeNfK1jxc4xmvjpfHW+GB8TFONvowzgt+G8eU71bvBQA==</latexit> p✓(x) = Z p✓(x|z)p(z)dz 事前分布 デコーダ 標準ガウス分布 <latexit sha1_base64="7AePElT1asmPp5Kc5CP6wtAYlKU=">AAADb3icnVLLahRBFL2ZVpOMj4xxkYAgg0NkJgzDnSCJGAIhutCFmoeTBNLJUN1T6SnSL7urh2Q68wP+gAtXCi7Ez3Aj7l3kE8SNEkEMLrzV3SSYQYVU01W3Tt1z6tTlGr4tQol4MJDTzp2/MDg0nL946fKVkcLV0dXQiwKTN0zP9oJ1g4XcFi5vSCFtvu4HnDmGzdeMnXvqfK3Dg1B47lO55/NNh1mu2BYmkwQ1Cy2/GeuyzSXrlXf3u5U53WGybTI7fkzArO5EJ+fdSlUPheWwY2grnlIw4c8i1ir65VMC3VmsPqzkm4US1jAZxf6gngUlyMaiVzgCHVrggQkROMDBBUmxDQxC+jagDgg+YZsQExZQJJJzDj3IEzeiLE4ZjNAdmi3abWSoS3ulGSZsk26x6Q+IWYQJ/IRv8RA/4Dv8jL/+qhUnGsrLHq1GyuV+c+T5+MqP/7IcWiW0T1j/9CxhG+4kXgV59xNEvcJM+Z3ui8OVu8sT8S18jV/I/ys8wPf0Arfz3XyzxJdfkrrSv0+stIYBRY8yD09IkROidqoKk3SPnuRY5FPd2MtqbBFePcbOqshgt08xxVSb1E83RX+wOlWrT9eml26X5heyhhmC63ATytQVMzAPD2ARGuTrI3yFn3CU+6aNaTe0YpqaG8g41+CPoVV+A5FV0EI=</latexit> p✓(x|z) = N(x; µ✓(z), 2 ✓ (z)), p(z) = N(z; 0, I) ガウス分布の平均と分散を推定するNN この部分をモデル化 <latexit sha1_base64="mlo1doEB46TIvPIo5TET+TL04lE=">AAADLHicnVJPSxtBHH2uttq01rS9FLzEBiWREiZSrBQEUQ9eiv8aFYyE3XWMg/uP3UnQxJwFv4AHTwoepLTH9gN48QO0Bym9FsSjgiAe/M3uYqnBFjrL7rx583tv3g4/w7NEIBk7adFa2x48bO94lHj8pPNpV/LZ87nArfgmL5iu5foLhh5wSzi8IIW0+ILnc902LD5vrI2p/fkq9wPhOh/khseXbL3siBVh6pKoUrLHy6xn+4aLwpEpgpu1rJepZYu2Lld9u77cqCVKyTTLsXCkmkE+BmnEY8pNXqGIZbgwUYENDgeSsAUdAT2LyIPBI24JdeJ8QiLc52ggQdoKVXGq0Ildo2+ZVosx69BaeQah2qRTLHp9UqbQy76zQ3bOjtlHdsqu7/Wqhx4qywbNRqTlXqlr++Xs5T9VNs0Sq79Vf80ssYKhMKug7F7IqL8wI321tnM++26mt97H9tkZ5d9jJ+yI/sCpXpgH03xml9yV/zipojv0Cb2PM0ySIydGrdQt9NM5xbCmTDnViY34jsvEv77l/tdRx3qTY8SpNsnfbYpmMDeQyw/mBqffpEdG44bpQDdeIUNd8RYjmMAUCpRrC5/wBV+1z9o37Yf2MyrVWmLNC/wxtF835Im4+g==</latexit> p(x) = Z p(x|z)p(z)dz
  29. 34 Copyright 2024 NTT CORPORATION Variational Autoencoder (2) • VAEは無限個のガウス混合モデルとみなせる

    • 事前分布 𝑝(𝑧) からのサンプル Q 𝑧ℓ ごとにガウス分布が決まる • 積分は 𝐿 → ∞ のため、無限個のガウス混合モデルとみなせる • この対数尤度を計算したいが、積分を含むため計算が難しい • 正確に計算するためには⼤量に Q 𝑧ℓ をサンプルする必要があり、計算効率 が⾮常に悪い <latexit sha1_base64="Kyn66BgbQmOFLF7/lSAr8weQMWQ=">AAADj3icnVJLa9VAGP3S+KjXR1Pd+NgULy29Ui6TIq0oykVdKPjow9sWmvYySefmDp08TCaXtkN2rvwDLlwpuBB/hhv/gIv+BHVZQRAXfpOEFr1WwQnJfHPmnDMnw+fGgqeSkF1jyDxy9Njx4RO1k6dOnxmxRs8upVGWeKztRSJKVlyaMsFD1pZcCrYSJ4wGrmDL7uYdvb/cZ0nKo/CJ3I7ZWkD9kHe5RyVCHetZ3FGO7DFJ88mtxoST8oA9dboJ9ZSdqwe5k2YBMpgQN+18XQMBlT2PCvUIBTecIDvQO5KLDaZ2Sn6eN6bQzg/oPmNdTf+B1ah1rDppkmKMDRZ2VdShGnOR9R0c2IAIPMggAAYhSKwFUEjxWQUbCMSIrYFCLMGKF/sMcqihNkMWQwZFdBO/Pq5WKzTEtfZMC7WHpwh8E1SOwTj5SN6SPfKBvCOfyI9DvVThobNs4+yWWhZ3Rp6fX/z2T1WAs4TegeqvmSV04VqRlWP2uED0X3ilvr/zYm/x+sK4miCvyRfM/4rskvf4B2H/q/dmni28RHftfxdV5R0mWD2sMjxGR4aIXulbuILnOAXHx5z6xLy6Yx/xqX3sfx0pbA04lphuE/v3phgslqab9kxzZv5qvXW7aphhuASXYRK7YhZacA/moI25PhuWccG4aI6as+Yts1VSh4xKcw5+Geb9nw4s3MQ=</latexit> p✓(x) ' 1 L L X `=1 N(x; µ✓( ˜ z`), 2 ✓ ( ˜ z`))
  30. 35 Copyright 2024 NTT CORPORATION Variational Autoencoder (3) • そこで、対数尤度関数の代わりに下記の変分下界を最⼤化する

    <latexit sha1_base64="DH4scxozcXRW91F4Sw9kLDja2Us=">AAAE63icnVJLaxNRFD6Jo9b4aKobwU0wtGS0hjsiVZRAfSJYsQ+TFjo1TKY3k0vnlXmENJP7B9y6ENSNQhfiz3DjH3DRlWtxWUEQF547M2rTxBZ6h5k597vf951zLqfhmswPCNnOZI9IR48dHzuRO3nq9Jnx/MTZmu+Enk6rumM63kpD86nJbFoNWGDSFdejmtUw6XJj4644X+5Qz2eO/TTYdOmapRk2azJdCxCqT2S+qKZjFNx6pAYtGmi81JWnKgJTmR0M4P2e7JZ6smppQcuzonXeU9Vd1DZS3RbjpV6/K6tNT9OjEWoeDfD4oJtq0PYIM5HicIaV0W57+9olurxv/oM78JmFPcRshUdzXPVDC/nUNCsKfyaA4fzJOZev/PF6NMdLA1n6fZFaFgloO2SdmKhrJvohLVXVbt/n6HcrcZ4WajlXzxdJmcSrMBwoaVCEdM07+Z+gwjo4oEMIFlCwIcDYBA18fFZBAQIuYmsQIeZhxOJzChxyqA2RRZGhIbqBXwN3qylq4154+rFaxywmvh4qCzBJPpP3ZId8Ih/IV/Lrv15R7CFq2cR/I9FStz7+/PzSjwNVFv4DaP1T7VtzAE24EdfKsHY3RkQXeqLv9F7uLN1cnIymyDvyDet/S7bJR+zA7nzXtxbo4mt0F/73UJXcoYfR47SGJ+hIERE7cQuXMI8acwysU2Tk6R0biE//xQ7rqEF3yDHBxJgoe4diOKhdLSsz5ZmFa8XZO+nAjMEFuAglnIrrMAsPYR6qoGcfZM1smO1IlvRCeiW9SajZTKo5BwNL2voNk85l0A==</latexit> log p✓(x) = log Z p✓(x|z)p(z)dz = log Z q (z|x) p✓(x|z)p(z) q (z|x) dz Z q (z|x) log p✓(x|z)p(z) q (z|x) dz = Z q (z|x) log p✓(x|z)dz + Z q (z|x) log p(z) q (z|x) dz ' 1 L L X `=1 log p✓(x|z`) KL(q (z|x)||p(z)) ⌘ LVAE(x; ✓, ) エンコーダ 𝑞! (𝑧|𝑥) による importance sampling Jensenの不等式: 対数と和の交換 Reparameterization Trick (後述) <latexit sha1_base64="HYUhYk0AYg8JfT3MmaluLmJoBkI=">AAADJ3icnVK/SxxBGH1uNNGLxjNpBC2OHIoGOeaCGLEStbCR+OtU8OTYXcdzcPZHdvcOvcs1lv4DFlYKgpIq+Rds7FIlxNJSLBWEkMJvdhfFHIngLDvzfW++9+bN8BmuFH7A2FmD9qyx6fmL5pbEy9a2V+3JjtcLvlPyTJ4zHel4S4bucylsngtEIPmS63HdMiRfNDbG1f5imXu+cOz5YMvlK5ZetMWaMPWAoEKyu1Ko5rmUtd68L6zUJ8rcdVHrq3ze7E8UkmmWYeFI1QfZOEgjHtNO8jfyWIUDEyVY4LARUCyhw6dvGVkwuIStoEqYR5EI9zlqSBC3RFWcKnRCN2guUrYcozblStMP2SadIun3iJlCD/vBjtkVO2Vf2AX780+taqihvGzRakRc7hbadzrnbh5lWbQGWL9n/ddzgDUMh14FeXdDRN3CjPjlyu7V3MhsT7WXHbBL8r/PztgJ3cAuX5uHM3x2j9SV/gSxojf0KJqKPXwkRU6IytQrvKNz8mFNkXyqE2vxGxcJH7jDnqqoY7NOMcJUm2T/bor6YOF9JjuUGZoZTI+OxQ3TjC68RR91xQeMYhLTyJGvbRzhK75px9p37af2KyrVGmLOGzwY2vktO7S3uQ==</latexit> z` ⇠ q (z|x) ガウス分布同⼠だと 閉形式で計算可能
  31. 36 Copyright 2024 NTT CORPORATION 補⾜: importance sampling • 分布

    𝑝(𝑥) による関数 𝑓(𝑥) の期待値を計算したい時、提案分布 𝑞(𝑥) を⽤いることで、計算効率を上げる⼿法 • 適切な 𝑞(𝑥) を選択することで、計算効率が⼤幅に向上する °4 °2 0 2 4 x 0.0 0.2 0.4 0.6 0.8 1.0 1.2 f(x) p(x) q(x) 𝑞で積分したほうが 計算効率が良い <latexit sha1_base64="9O49RdGc2MmYb/D948GTy6Bidzw=">AAAD5XicnVLLahRBFL2d9hHHR0bdCG4Gh4RRZKgWiSIEBh/gQjEPJwlMjUN3p7qnSPUj3TXDxKZ+QHAnunAhCi7Ez3DjD7iIfyAuIwjiwlvdnQxmUMFquuvcc+85dbu4Tix4KgnZMabMQ4ePHJ0+Vjl+4uSpmerpM6tpNEhc1nYjESXrjp0ywUPWllwKth4nzA4cwdaczVs6vzZkScqj8KHcjlk3sP2Qe9y1JVK96mca2LLvONkd1cvixuiiooJ5suMhpAn3+7I7t0B5KGs6mbNakATZhhpRWua2NK91DeoltlsYZZpVY6MDSprygG0V9ZbK7imaDoJeRpkQC5Z6pIk9r4JVheV+4I0xpXswt837qfSqddIk+apNAqsEdSjXYlT9ARQ2IAIXBhAAgxAkYgE2pPh0wAICMXJdyJBLEPE8z0BBBbUDrGJYYSO7iV8fo07JhhhrzzRXu3iKwDdBZQ1mySfyjuySj+Q9+UJ+/tEryz10L9u4O4WWxb2ZJ+dWvv9TFeAuoT9W/bVnCR5cz3vl2HucM/ov3EI/fPxid+XG8mw2R96Qr9j/a7JDPuAfhMNv7tsltvwS3bX/bVQVd5ggul/28AAdGTI60rdwCc+heY2PfeoTVXnHPvKX97n/dbRhNOFYcHpMrINDMQlWrzSt+eb80tV662Y5MNNwHi5AA6fiGrTgLixCG1yjZXhGZMSmbz41n5nPi9Ipo9Schd+W+eoXFH/9Pg==</latexit> E p(x) [f(x)] = Z p(x)f(x)dx = Z q(x) ✓ p(x) q(x) f(x) ◆ dx ' 1 L L X `=1 p(x`) q(x`) f(x`) x` ⇠ q(x)
  32. 37 Copyright 2024 NTT CORPORATION 補⾜: Jensenの不等式 • 分布 𝑝(𝑥)

    による log(𝑥) の期待値は下記の上界を持つ: 証明: log(𝑥) の 𝑥∗ = 𝔼: ! 𝑥 における接線 𝑔(𝑥) = 𝑎 + 𝑏𝑥 を⽤いて下記が成⽴1 <latexit sha1_base64="bFj735oJvoIR54VG0u7GBBHyiGk=">AAADW3icnVJNaxNBGH6a9aPGaqNSKPRSDC2tlDARqeKpVAu9iGlr2kI2hN11shk6++HuJKQu+QP+AQ+eWuihePcPePEPeCjoUUE8VigUD76zuygaquAsO/O+z7zPM88Mrx1KESvGjkYKxrnzFy6OXipeHrtydbx07fpmHHQjh9edQAbRtm3FXAqf15VQkm+HEbc8W/Ite+eB3t/q8SgWgf9E7Ya86VmuL9rCsRRBrVLN9CzVse1kZdBKwrn+/MCUvK0apgxcysxIuB3VnCXwWQqdUd7PC+eLrVKZVVg6poeDah6UkY9aUDqFiacI4KALDxw+FMUSFmL6GqiCISSsiYSwiCKR7nMMUCRul6o4VViE7tDsUtbIUZ9yrRmnbIdOkfRHxJzGDHvPDtkxe8desy/s+5laSaqhvezSamdcHrbGX0xunPyT5dGq0PnF+qtnhTbupV4FeQ9TRN/Cyfi95y+PN+6vzySzbJ99Jf977Ii9pRv4vW/OwRpff0XqWv8hsbI3jCh6lHt4TIqcEJ3pV7hF55hpjUs+9YmD/I1dwhd+Yv+raKE/pJhhuk2qfzbFcLB5u1JdrCyu3SkvLecNM4op3MQcdcVdLGEVNdTJ1xt8wCd8Lnw0DKNojGWlhZGccwO/DWPiBwuqyX4=</latexit> E p(x) [log(x)]  log(E p(x) [x]) <latexit sha1_base64="Di3Cp2YdwmUIFLKycwTfGzbZpmU=">AAADzXicnVJNaxNBGH63W9satY31IvRSGhrSVsJEpIogFG3Bi/YzTSAbwux2shk6+9HdSUhd02vBP+DBk4KH4r/Qi3/AQ3+CeKwgSA++s7v40ZAGnGV33veZ53nm2WFMX/BQEnKqjeijV8bGJ65mrl2/MTmVvTm9G3rtwGJlyxNeUDVpyAR3WVlyKVjVDxh1TMEq5v4TtV7psCDknrsjD31Wd6jt8ia3qESokf1oOFS2TDNa6zUiv9Bd6BmCNWXNEJ6NnRFwuyXreQQPBjDpktlNaYaRf4TtAOLfLLswhLSgWHGIYcRMI5sjRRKP2f6ilBY5SMeGl/0JBuyBBxa0wQEGLkisBVAI8alBCQj4iNUhQizAisfrDHqQQW0bWQwZFNF9/NrY1VLUxV55hrHawl0EvgEqZ2GefCEn5Ix8Jh/IV3I+0CuKPVSWQ5zNRMv8xtSr29s/hqocnCW0/qguzSyhCQ/irByz+zGi/sJK9J0Xr8+2H27NR3nyjnzD/G/JKfmEf+B2vlvvN9nWG3RX/quoSs4wwOpZmmEdHRkiqlOnsIj7GDHHxpxqx156xjbid35j/+tIodvnmGDqmpQuXor+YvdusbRcXN68l1t5nF6YCZiBOSjgrbgPK/AUNqAMllbQnmsVraqv6239pX6UUEe0VHML/hn68S/id/O0</latexit> E p(x) [log(x)]  E p(x) [a + bx] = a + bE p(x) [x] = g(E p(x) [x]) = log(E p(x) [x]) <latexit sha1_base64="nPUw+gSXaaxHMagsQJkTwzvjfzE=">AAADFHicnVJNKwVRGH6M7+vrYqNs5Ea+up0rIaWEhY18XtQlzYxjTObOTDNzb5ebP2CPhSLKQv6CnZSVnYWfIEtKycJ7ZibihnKmmfOe57zPc57zzqvYhu56jN0XScUlpWXlFZWRquqa2rpofcOCa2UclSdVy7CcJUV2uaGbPOnpnsGXbIfLacXgi8rmmNhfzHLH1S1z3tuy+Upa1kx9XVdlj6CU1pHrbB+Wu5VcZDUaY3Hmj5bCIBEGMYRj2oq+YhlrsKAigzQ4THgUG5Dh0pNCAgw2YSvIE+ZQpPv7HDuIEDdDWZwyZEI36avRKhWiJq2FpuuzVTrFoNchZgva2B07Z0/shl2wB/b2o1be1xBetmhWAi63V+t2m+Ze/mSlafaw8cn61bOHdQz6XnXybvuIuIUa8LPbB09zQ7Nt+XZ2yh7J/wm7Z1d0AzP7rJ7N8NlDUhf648QKauhQNBl6mCJFTohYiSp00TnLfo5GPsWJO2GNNcJ7PrD/KsrIFSgGmGiTxPemKAwWeuOJ/nj/TF9sZDRsmAo0oxUd1BUDGMEEppH0/+sejnAs7UuX0pV0HaRKRSGnEV+GdPsOsrGvXg==</latexit> g(x) = a + bx <latexit sha1_base64="S2mBPnunjvCHg1K+mXhi5OvYlEI=">AAADIXicSyrIySwuMTC4ycjEzMLKxs7BycXNw8vHLyAoFFacX1qUnBqanJ+TXxSRlFicmpOZlxpaklmSkxpRUJSamJuUkxqelO0Mkg8vSy0qzszPCympLEiNzU1Mz8tMy0xOLAEKxQuIxeTkp2tUxFVr1Wqq2cJYXPECygZ6BmCggMkwhDKUGaAgIF/gF0MMQwpDPkMyQylDLkMqQx5DCZCdw5DIUAyE0QyGDAYMBUCxWIZqoFgRkJUJlk9lqGXgAuotBapKBapIBIpmA8l0IC8aKpoH5IPMLAbrTgbakgPERUCdCgyqBlcNVhp8NjhhsNrgpcEfnGZVg80AuaUSSCdB9KYWxPN3SQR/J6grF0iXMGQgdOF1cwlDGoMF2K2ZQLcXgEVAvkiG6C+rmv452CpItVrNYJHBa6D7FxrcNDgM9EFe2ZfkpYGpQbOBpoPMdwHqgoRhEZDlC3WDP9DEVKAIiAcKBS2gPTFgNelAd4JsrIWGcTpQXAcuRq6JiQwVGCZCxEDJxBA9UWAywoz0DM30zAJNlB2coAmGg0GaQYlBA5gqzBkcGDwYAhhCge6qYVjEsJphDdNippNMF5guQZQyMUL1CDOgAKbbAM1vs/4=</latexit> log(x⇤) = g(x⇤) 1. https://x.com/daiti_m/status/1798336240858849432 <latexit sha1_base64="sz+tla+x79Cc8WwggE6/VDrYSs0=">AAADMnicnVLPa9RAGH2NWuuq7VYvgpfSpbWWssxKqSIIxSp4Kf3ltoXNdknibHZofpHMLltD/gGhZw+eFDyIx/ZYT178B3pob+JJ9FZBEA9+kwTFLrXghMx88+Z7b958fGbgiEgydtCnnTl7rv/8wIXCxUuXB4eKw1dWI78dWrxq+Y4frptGxB3h8aoU0uHrQcgN13T4mrk5p87XOjyMhO89llsBr7uG7YmmsAxJUKN4o7sRTybj93TXkC3TjB8mjTiY6N5MdIc3Za2rh8JuyXqhUSyxMkvHSG9QyYMS8rHoF39AxxP4sNCGCw4PkmIHBiL6aqiAISCsjpiwkCKRnnMkKBC3TVmcMgxCN2m2aVfLUY/2SjNK2Rbd4tAfEnMEY2yfvWFH7AN7yz6znydqxamG8rJFq5lxedAYenZt5fupLJdWidYf1j89SzRxJ/UqyHuQIuoVVsbvPH1+tHJ3eSweZ6/YF/L/kh2w9/QCr/PNer3El1+QutJ/QKyshiFF87mHBVLkhKidqsIk3aOnOTb5VDcmeY1twqd+Y/+raKDbo5hhqk0qx5uiN1i9Va7MlGeWpkuz9/OGGcB1jGKCuuI2ZvEIi6iSr23sYA/vtF3tUPuofcpStb6ccxV/De3rL2vvvFE=</latexit> x⇤ = E p(x) [x] <latexit sha1_base64="SxBAmJOuU27OPvAaBstXJdbyL/w=">AAADEXicnVJNL8RQFD3qa4yvwUZiIyYEkckbEcRKsLARn8MkRqStpxqdtmk7k2HiD1iysGBDYiF+gZ2wkVhb+AliSSIRC/e1DWGCxGv63n3n3XPeeTdXsQ3d9Ri7L5PKKyqrqiM10dq6+obGWFPzomvlHJWnVMuwnLQiu9zQTZ7ydM/gadvhclYx+JKyOS7Ol/LccXXLXPC2bL6SlTVTX9dV2SMonTEsrbvQE12NxVmC+aO9NEiGQRzhmLFir8hgDRZU5JAFhwmPYgMyXPqWkQSDTdgKioQ5FOn+OccOosTNURanDJnQTZo12i2HqEl7oen6bJVuMeh3iNmOTnbHztgTu2Hn7IG9/ahV9DWEly1alYDL7dXG3db5lz9ZWVo9bHyyfvXsYR3DvledvNs+Il6hBvz89sHT/MhcZ7GLnbBH8n/M7tk1vcDMP6uns3zukNSF/gSxgho6FE2FHqZJkRMidqIKvXRPxs/RyKe4cSessUZ43wf2X0UZhRLFABNtkvzeFKXBYn8iOZgYnB2Ij46FDRNBGzrQTV0xhFFMYgYp39ceDnEk7UsX0qV0FaRKZSGnBV+GdPsOuGaurg==</latexit> log(x)
  33. 38 Copyright 2024 NTT CORPORATION Variational Autoencoder (4) • エンコーダはガウス分布でモデル化される

    • この時、エンコーダからのサンプルは下記で計算できる • Reparameterization Trickと呼ばれる⼿法 [B1] • エンコーダを勾配法で最適化するために必要 <latexit sha1_base64="tOHLPpFqgkzwySGpv3j4M4IfTHY=">AAADTHicnVLLahRBFD3paIxjNKPZCG6CQ0JGwlATJIoSiI+FGzUPJwmkk6G6rfQU6ZfdNcMk7fyAP5BFVgmIiJ/hxo3uVPIJkmUCghrIre5W0UEFq+mqW6fuOXXqcq3QlbFibK/H6D1xsu9U/+nCmYGz5waL5y8sxEEzskXNDtwgWrJ4LFzpi5qSyhVLYSS4Z7li0Vq/o88XWyKKZeA/UhuhWPG448s1aXNFUL1460k9McOG7IxtPm2XR6dMj6uGzd3kASE3Ta/5/bhdHjdj6Xg8B1aTCQ2WC/ViiVVYOoa7g2oelJCPmaD4BSYeI4CNJjwI+FAUu+CI6VtGFQwhYStICIsokum5QAcF4jYpS1AGJ3SdZod2yznq015rxinbpltc+iNiDmOEvWcv2QF7w16xT+zbH7WSVEN72aDVyrgirA8+uzj/+Z8sj1aFxk/WXz0rrOF66lWS9zBF9CvsjN/a3DqYvzE3koyyXbZP/nfYHntNL/Bbh/bzWTG3Tepa/y6xshpGFN3PPTwkRUGI3ukqXKF7zDTHIZ/6xk5eY4fw8R/Y/ypytLsUM0y3SfX3pugOFiYq1cnK5OzV0vTtvGH6cQmXMUZdcQ3TuIcZ1MjXC7zFB3w03hmHxlfjKEs1enLOEH4ZvX3H0v3FlQ==</latexit> q (z|x) = N(z; µ (x), 2(x)) <latexit sha1_base64="g74yVo3Q44BOehuK7uDVCS6fwFc=">AAADe3icnVLdatRAGP1209a6VbvWG8Gb4tJlW5dlttgqilDUC72w9sdtC526TNJpdugkGZLZpW3IC/gCXnhVwQvxMbzxBSz0EYqXFQSp4DdJVOyihU5I5psz55w5GT5bSRFpQg4LRWtgcOjC8MXSyKXLV0bLV8dWoqAbOrzlBDII12wWcSl83tJCS76mQs48W/JVe/uR2V/t8TASgf9C7yq+4THXF1vCYRqhdlnttWPKpUyqD6jXxVp1RFLbmbxFuYqEREq2TYPNQNNIuB7LSS/jaUOk9BSziiyPekx3HCbj+aT2a/8+qT+dLLXLFdIg6RjvL5p5UYF8LATl70BhEwJwoAsecPBBYy2BQYTPOjSBgEJsA2LEQqxEus8hgRJqu8jiyGCIbuPXxdV6jvq4Np5RqnbwFIlviMpxmCCfyXtyTD6RD+SInPzTK049TJZdnO1My1V79NX15W9nqjycNXT+qP6bWcMW3E2zCsyuUsT8hZPpe3uvj5fvLU3EVfKWfMH8++SQfMQ/8HtfnXeLfOkNuhv/x6jK7jDE6lme4Tk6ckTMytzCFJ5DU46LOc2JSX7HLuL139h5HRns9DlmmGmT5umm6C9WphvN2cbs4u3K3MO8YYbhBtyEGnbFHZiDJ7AALcx1ACeFwcJQ8YdVsaasekYtFnLNNfhrWDM/Abf31Vc=</latexit> z` = µ (x) + ✏` 2(x) ✏` ⇠ N(✏; 0, I)
  34. 39 Copyright 2024 NTT CORPORATION Variational Autoencoder (5) 𝑥 𝜇;

    𝑥 𝜎; 7 𝑥 𝜎3 7 𝑧 𝜇3 𝑧 𝑧 𝑞; 𝑧 𝑥 = 𝒩 𝑧; 𝜇; 𝑥 , 𝜎; 7 𝑥 𝑝3 (𝑥|𝑧) = 𝒩 𝑥; 𝜇3 𝑧 , 𝜎3 7 𝑧 𝑝 𝑧 KL 𝜙 𝜃 NN NN
  35. 40 Copyright 2024 NTT CORPORATION Variational Autoencoder (6) データセット 𝒟

    = 𝑥7, … , 𝑥8 に対して、 下記の変分下界を最⼤化することでVAEを学習できる <latexit sha1_base64="ZzGhmHwgsSY1GJCGPaCJADaplKI=">AAADqnicnVLLbtNAFL2uKS3h0QAbJDYRUSsbQjSuSkEgpPKSkCiiTUlaFJdo7E4cq+NH7HGUxvEP8AMsWCCQWCA+gw0/wKKfgFgWCQmx4PoBCCJAYizP3HvmnjNnRtfwuR0KQvalKfnQ9OGZ2SOlo8eOn5grnzzVCr0oMFnT9LgXbBk0ZNx2WVPYgrMtP2DUMTjbNHZvpfubAxaEtuc+FHs+23ao5dpd26QCoU75ue5Q0TMpj1eTTpwlgRO3btxJEmV4TRc9JmhN93u2uqCzfmQP9G5AzVhLsF4PIwc5jPPrWvI4BbhnVXyEMhoKjEf5fqJe/C59bzVR+oiiZKKMxkN1PPaVkarqnPUn+GqpU66SOslGZTLQiqAKxVjzyl9Ahx3wwIQIHGDggsCYA4UQvzZoQMBHbBtixAKM7GyfQQIl5EZYxbCCIrqLs4VZu0BdzFPNMGObeArHP0BmBebJe/KaHJB35A35QL7+USvONFIve7gaOZf5nbknZzY+/5Pl4Cqg95P1V88CunAl82qjdz9D0luYOX8wenqwcbUxHy+Ql+Qj+n9B9slbvIE7+GS+WmeNZ6ie6t9GVv6GAUb3Cw8PUJEhkmbpK5zHc/SsxkKf6YlJ8cYW4rUf2P8qUhhOKOZY2iba700xGbQW69pyfXl9qbpys2iYWTgL50DBrrgMK3AX1qAJpjQtXZCWpEtyTW7Ij+R2XjolFZzT8MuQd74By9zmPw==</latexit> LVAE(x; ✓, ) ⌘ 1 L L X `=1 log p✓(x|z`) KL(q (z|x)||p(z))  log p✓(x) <latexit sha1_base64="EeaVX6J2AJ6EkN8Plg6wZDFKtkI=">AAADZXicnVLLahRBFL2Z9hFHY8YHIrgwOCRECUO1SBRFiC9w4SMPZxJMJ011WTNTpF9U1wyJRf2AP+DClYIL8ScEN/6Ai/yAIi4UIgjiwlvdjUYHFVJNV9176p5Tp4obpKHIFCGbQxVn1+49e4f3VfcfGDk4Wjt0uJUlPcl4kyVhIpcCmvFQxLyphAr5Uio5jYKQLwZr1+z+Yp/LTCTxPbWR8pWIdmLRFowqhPzafS+i6772VJcrOuWlXWEmvLakTLtG3zFe1ot8HV92zarNIqq6jIb6lkGKTWSkW1duGDOJGrG5tE3mdNWv1UmD5GNsMHDLoA7lmE1q38CDB5AAgx5EwCEGhXEIFDL8lsEFAiliK6ARkxiJfJ+DgSpye1jFsYIiuoZzB7PlEo0xt5pZzmZ4Soi/ROYYjJO35AXZIm/IS/KBfP+rls41rJcNXIOCy1N/9NHxha//ZUW4Kuj+Yv3Ts4I2XMi9CvSe5oi9BSv4/YePtxYuzo/rCfKMfET/T8kmeY03iPtf2PM5Pv8E1a3+dWQVbygxul16uIuKHBGb2Vc4g+d4eU0HfdoTTfnGHcSnfmI7VaSwPqBYYLZN3D+bYjBonW24043puXP1matlwwzDCTgFk9gV52EGbsIsNNHXK3gHn+Bz5b0z4hx1jhWllaGScwR+G87JH1DIzoc=</latexit> max ✓, 1 N N X n=1 LVAE(xn; ✓, ) • 深層⽣成モデルは対数尤度の計算が難しい • VAEのように、いかに効率的に対数尤度を計算するかが重要 ガウス分布同⼠だと 閉形式で計算可能
  36. 41 Copyright 2024 NTT CORPORATION Variational Autoencoder (7) VAEで⽣成したMNIST (⼿書き数字)

    の画像 (2013年時点) [B1] ⽣成⼿順: 1. 事前分布 𝑝(𝑧) から 𝑧ℓ を ⽣成 2. デコーダ 𝑝3 (𝑥|𝑧ℓ ) から データを⽣成する <latexit sha1_base64="5B1iKI8lH5QMfzab+v1oQAAvFlc=">AAADZ3icnVLLahRBFD2Z9hHHx0wUJOAmOiQkEoaaEKIoQlAXbtQ8nCSQjkN1W+kpUv2gu2ZI0s4P+AMuXCm4EP9CN/6Ai/yBwZVGEMSFt7qbiTqoYDXdde+595w6XVwnUjLRjO0NlawjR48dHz5RPnnq9JlKdeTsShJ2Ylc03VCF8ZrDE6FkIJpaaiXWolhw31Fi1dm6ZeqrXREnMgwe6J1IbPjcC+SmdLkmqFW1o1Zq67bQvDe5/XiXEqFUb2rihu1z3Xa5Su9R4brtdw77+l3TdiI9n/crD9OZn6pT5Va1xuosW2ODQaMIaijWQlj9BhuPEMJFBz4EAmiKFTgSetbRAENE2AZSwmKKZFYX6KFM3A51CerghG7R16NsvUADyo1mkrFdOkXRGxNzDOPsPXvFDtg79prts+9/1EozDeNlh3Yn54qoVXkyuvz1nyyfdo32IeuvnjU2cTXzKsl7lCHmL9yc3919erB8bWk8nWAv2Efy/5ztsbf0B0H3i/tyUSw9I3Wjf5tY+R3GFN0tPNwnRUGIycwtXKZz7KzHI5/mxF5xxx7h033sfxU5tgcUc8yMSeP3oRgMVmbqjbn63OJsbf5mMTDDuIBLmKSpuIJ53MECmuTrDT7gEz6X9q2Kdd4azVtLQwXnHH5Z1sUfxvbO9g==</latexit> p✓(x|z`) = N(x; µ✓(z`), 2 ✓ (z`)) NOTE: VAEは学習しやすいが、他のモデルと⽐べて⽣成品質は低い
  37. 42 Copyright 2024 NTT CORPORATION Generative Adversarial Network (1) •

    Generative Adversarial Network (GAN) [B2] は、2つの ニューラルネットワーク (Generator と Discriminator) を互い に競わせることで、⽣成モデルの学習を⾏う https://sthalles.github.io/intro-to-gans/ Generator: ノイズからデータを ⽣成する Discriminator: データと⽣成された データを識別する Discriminatorを騙すように Generatorを学習する
  38. 43 Copyright 2024 NTT CORPORATION Generative Adversarial Network (2) •

    真の分布を 𝑝∗(𝑥)、低次元の標準ガウス分布を 𝑝(𝑧) とする • また、Generator を 𝐺(𝑧)、Discriminator を 𝐷(𝑥) とする • この時、𝐺 と 𝐷 は下記の⽬的関数の最適化で学習できる • 𝐷 に関する最⼤化と 𝐺 に関する最⼩化を交互に⾏う <latexit sha1_base64="nVne0TW9h0ZDq29BJ43w4zgE4LQ=">AAADfXicnVJbaxNBFD7Jqo3x0rS+CL4EQ8qmpmFWSlsEoehKfBF7MWkhmy6762QzdPbC7iSkXfYP+Ad88EnBB/Fn+OIfEOxPEB8rCCLq2YuXGlRwlp0555vzffPNcEyfs1AQclQoSqdOn5kpnS2fO3/h4mxlbr4beqPAoh3L416waxoh5cylHcEEp7t+QA3H5HTH3L+d7O+MaRAyz30gDnzadwzbZQNmGQIhvRJoDnP1qB1rjjHRIzXuymqz3Vi4ibkYmmZ0J9Yjfy9ajOVJI9Y4HYiexj27qmKuBcweiv61E7Xy4a91srKkym3EGt+ry3qlRlokHdXpQMmDGuRjw6t8Ag0eggcWjMABCi4IjDkYEOLXAwUI+Ij1IUIswIil+xRiKCN3hFUUKwxE93G2MevlqIt5ohmmbAtP4fgHyKxCnbwhL8gxeU1eknfk8x+1olQj8XKAq5lxqa/PPrq8/fGfLAdXAcOfrL96FjCAtdQrQ+9+iiS3sDL++PDx8faNrXq0QJ6R9+j/KTkir/AG7viD9XyTbj1B9URfRVb2hgFG93IP91GRIpJkySss4jlaWmOjz+TEOH9jG/HmD+x/FQ2YTClmWNImyu9NMR10r7eUldbK5nJt/VbeMCW4AldBxq5YhXW4CxvQQV9v4UthplAqfpXqUlNqZaXFQs65BCeGtPoNBAHS6g==</latexit> min G max D V (D, G) = E p⇤(x) [log D(x)] + E p(z) [log(1 D(G(z)))] 2クラス分類の⽬的関数 データ 𝑥 と⽣成データ 𝐺(𝑧) を識別できるように学習 𝐷 を騙すように 𝐺 を学習
  39. 44 Copyright 2024 NTT CORPORATION Generative Adversarial Network (3) •

    𝐺 が⽣成するデータの分布を 𝑝- (𝑥) とした時、最適な 𝐷(𝑥) は 下記で与えられる: • この時、⽬的関数 𝑉(𝐷∗, 𝐺) は、𝑝- (𝑥) と 𝑝∗(𝑥) のジェンセン・ シャノン情報量となる <latexit sha1_base64="vxE+7b6eliMvwsyI3j752oz3/J4=">AAADOHicSyrIySwuMTC4ycjEzMLKxs7BycXNw8vHLyAoFFacX1qUnBqanJ+TXxSRlFicmpOZlxpaklmSkxpRUJSamJuUkxqelO0Mkg8vSy0qzszPCympLEiNzU1Mz8tMy0xOLAEKxQvousRVa9VqVGiq2cakFSUmVxdA+bVwlnZBfLU7WIgrXkDZQM8ADBQwGYZQhjIDFATkC/xiiGFIYchnSGYoZchlSGXIYygBsnMYEhmKgTCawZDBgKEAKBbLUA0UKwKyMsHyqQy1DFxAvaVAValAFYlA0WwgmQ7kRUNF84B8kJnFYN3JQFtygLgIqFOBQdXgqsFKg88GJwxWG7w0+IPTrGqwGSC3VALpJIje1IJ4/i6J4O8EdeUC6RKGDIQuvG4uYUhjsAC7NRPo9gKwCMgXyRD9ZVXTPwdbBalWqxksMngNdP9Cg5sGh4E+yCv7krw0MDVoNtB0kPkuQF2QMCwCsnyhbvAHmpgKFAHxQKGgBbQnBqwmHehOkI210DBOB4rrwMXINTGRoQLDRIgYKJkYoicKTEaYkZ6hmZ5ZoImygxM0wXAwSDMoMWgAU4U5gwODB0MAQyjQXZMZdjIcYjjMtIvpAdNzppcQpUyMUD3CDCiA6RMAT+W9Ng==</latexit> D⇤(x) = p⇤(x) p⇤(x) + pG(x) 𝑝< (𝑥) を 𝑝∗(𝑥) に近づけるよう学習している <latexit sha1_base64="1SZb5ar7gCOLEs9JmgBnbcQnPpk=">AAADuXicnVLLahRBFL2dVhPHR8bHQnAzOCTMJDJUB4kSEYIJKD4wyThJIJUM1W1NT5t+UV0zJFb6B/wBF64UXIjgT7jxB1zkE8RlBEFceKu7R42DClbTVbdO3XPuqeLase8lkpB9Y8Q8cvTY6Njx0omTp06Pl8+cXU2innB4y4n8SKzbLOG+F/KW9KTP12PBWWD7fM3eXtDna30uEi8KH8rdmG8GzA29jucwiVC7/JYGTHZFoO4001q8pabS2k59by9uq1s6qk/eoB3BHGWlaialPu9IqioDzt17OfQLMcCZCs/tyvr0cFqheigtX2haoVSjg4IDyekBSRsotctV0iDZqAwHVhFUoRhLUfkrUHgEETjQgwA4hCAx9oFBgt8GWEAgRmwTFGICIy8755BCCbk9zOKYwRDdxtnF3UaBhrjXmknGdrCKj79AZgUmyAfymhyQ9+QN+Ui+/VFLZRrayy6uds7lcXv86YXml3+yAlwldH+y/upZQgeuZV499B5niL6Fk/P7T54dNOdWJtQkeUk+of8XZJ+8wxuE/c/Oq2W+8hzVtf4isvI3FBjdLzw8QEWOiN7pV5jCOjTLcdGnrpgWb+wifvkH9r+KDHaGFHNMt4n1e1MMB6szDWu2Mbt8pTp/s2iYMbgIl6CGXXEV5uE2LEELHOO8MWcsGIvmdZOZXfNxnjpiFJxzcGiYyXcOPuk4</latexit> JS(p⇤(x)||pG(x)) = 1 2 {KL (p⇤(x)||m(x)) + KL (pG(x)||m(x))} m(x) = p⇤(x) + pG(x) 2
  40. 45 Copyright 2024 NTT CORPORATION Generative Adversarial Network (4) GANで⽣成したMNISTとCIFAR10

    (2014年時点) [B2] NOTE: • GANはデータの⽣成はできるが、データの確率は推定できない • また、⽣成品質は⾼いが、学習が不安定という問題がある
  41. 46 Copyright 2024 NTT CORPORATION Flow-based Model (1) • VAEとGANにはそれぞれ下記のような問題がある

    • VAEは変分下界を計算するため、厳密な確率を計算できない • GANは⽣成品質は⾼いが、データの確率を計算できない • そのため、品質が⾼く、厳密に確率を計算できる⽣成モデルの 需要が⾼まっていた • Flow-based Model [B3] は、データ 𝑥 と同次元のガウス分布 𝑝(𝑧) を⽤意し、全単射関数 𝑓$ (𝑥) を⽤いて分布を推定する <latexit sha1_base64="T7qr/YOkdG1cbu2a2WkfulN0Mxs=">AAADNnicSyrIySwuMTC4ycjEzMLKxs7BycXNw8vHLyAoFFacX1qUnBqanJ+TXxSRlFicmpOZlxpaklmSkxpRUJSamJuUkxqelO0Mkg8vSy0qzszPCympLEiNzU1Mz8tMy0xOLAEKxQtoV9mmxVfHlGSkliTWalRo6sQUliamKFQgicZV6xrWalRpcsULKBvoGYCBAibDEMpQZoCCgHyBXwwxDCkM+QzJDKUMuQypDHkMJUB2DkMiQzEQRjMYMhgwFADFYhmqgWJFQFYmWD6VoZaBC6i3FKgqFagiESiaDSTTgbxoqGgekA8ysxisOxloSw4QFwF1KjCoGlw1WGnw2eCEwWqDlwZ/cJpVDTYD5JZKIJ0E0ZtaEM/fJRH8naCuXCBdwpCB0IXXzSUMaQwWYLdmAt1eABYB+SIZor+savrnYKsg1Wo1g0UGr4HuX2hw0+Aw0Ad5ZV+SlwamBs0Gmg4y3wWoCxKGRUCWL9QN/kATU4EiIB4oFLSA9sSA1aQD3QmysRYaxulAcR24GLkmJjJUYJgIEQMlE0P0RIHJCDPSMzTTMws0UXZwgiYYDgZpBiUGDWCqMGdwYPBgCGAIBbprIsN2hgMMB5l2MN1jesr0HKKUiRGqR5gBBTB9AABDNL07</latexit> z = f✓(x), x = f 1 ✓ (z)
  42. 47 Copyright 2024 NTT CORPORATION Flow-based Model (2) • 全単射

    𝑧 = 𝑓$ (𝑥) と 𝑝(𝑧) を⽤いて、確率 𝑝$ (𝑥) は下記で書ける • ヤコビアンが計算できれば最尤推定が可能 • ⼀般的な関数のヤコビアンを計算するのは難しい • ヤコビアンが計算しやすく、表現⼒の⾼い関数を考えるのがFlowの研究 <latexit sha1_base64="PR4yOW6FNUg0EKiL+V2mZ3Id04w=">AAADfnicnVLdahNBGP3S9SeNP416U/AmGBoSrXFSSi2FQlEvvBH7Y9pCp4TZ7exm6GR3mZ2E1O2+QF/AC68UvBAfwxtfwIs8gnhZQRBBv9ldjBpUcJbdOXPmO2fODp8dShFpQkaFKevM2XPni9OlCxcvXZ4pX7m6HQV95fC2E8hA7dos4lL4vK2Flnw3VJz1bMl37MP7Zn9nwFUkAv+JPgr5fo95vnCFwzRSnXJEZeBVwk5MdZdrltSHjdpqxtXdn9nGLcNSyV19TA+4TlGduoo5MQ2Z0oLJyliRjMlhQpXwurqRTcelTrlKmiQdlUnQykEV8rEelL8AhQMIwIE+9ICDDxqxBAYRPnvQAgIhcvsQI6cQiXSfQwIl1PaximMFQ/YQvx6u9nLWx7XxjFK1g6dIfBUqKzBH3pPX5JS8I2/IB/L1j15x6mGyHOFsZ1oedmZOZrc+/1PVw1lDd6z6a2YNLiynWQVmD1PG/IWT6QdPn51urWzOxTXyknzE/C/IiLzFP/AHn5xXG3zzObob/weoyu5QIXqUZ3iMjhwZszK3cBPPoWmNhznNiUl+xx7y8z+4/3VkMJxwzDjTJq3fm2ISbC80W0vNpY3F6tq9vGGKcB1uQB274i6swUNYhzbmGsG3QrEwbYFVs25bd7LSqUKuuQa/DGv5O11R1VU=</latexit> log p✓(x) = log p(f✓(x)) + log det ✓ @f✓ @x ◆ ヤコビアン (ヤコビ⾏列の⾏列式)
  43. 48 Copyright 2024 NTT CORPORATION Flow-based Model (3) • 全単射の例として、下記のCoupling

    Layers [B3,B5] を考える • この時、ヤコビ⾏列は下記で計算できる • 下三⾓⾏列となるので、⾏列式が簡単に計算できる <latexit sha1_base64="DhZQ0Wc77/i+y+dUb7bE2JQrr14=">AAAErnicnVLLbtNAFL0xBtrwaAobJDYWUasEUBgjVEokpAq6gAWiD5JWqiNr7EycUf3SeBIltfwD/AALVlRigfgMNvwAi34CYlkkJMSCa8eioWmg6li275y559xzR9cKXR5JQg4Kyjn1/IWLM7PFS5evXJ0rzV9rRkFP2KxhB24gti0aMZf7rCG5dNl2KBj1LJdtWbtP0/OtPhMRD/xXchiylkcdn3e4TSVC5nxh3+gIasdGSIXk1NX2kqN4kDw2XNaRO4bFHO7HVAg6TGLbTrTjLDPW6+1knJsj2uKpctt39PqqGQ+SJDGMExhj56esMY0xhmsG89t5V4bgTle2pjb8HJlpIXI2ex6VXeHFbU6dpGKwQViJzNiQXSZpUskTq9XqCY6KRbNUJjWSLW0y0POgDPlaC0o/wYA2BGBDDzxg4IPE2AUKET47oAOBELEWxIgJjHh2ziCBInJ7mMUwgyK6i18Hdzs56uM+1Ywyto1VXHwFMjVYIF/IB3JIPpOP5Cv5NVUrzjRSL0P8WyMuC8251zc2f/yX5eFfQveI9U/PEjqwnHnl6D3MkLQLe8Tv77053KxvLMSLZJ98Q//vyAH5hB34/e/2+3W28RbVU/1VZI3uUGD0IvfwEhUZIukuvYXbWMfIchz0mVZM8jt2EL/7BzurIoXBhOIIS8dEPz4Uk0Hzfk1fqi2tPyivPMkHZgZuwi2o4FQ8hBV4BmvQAFuZVe4py8ojlahNtaWao1SlkHOuw19L7f4GKi5H/A==</latexit> @z @x = " @z1:d @x1:d @z1:d @xd+1:Dx @zd+1:Dx @x1:d @zd+1:Dx @xd+1:Dx # =  Id 0 @zd+1:Dx @x1:d diag(exp(s✓(x1:d))) この⾏列式の計算だけでOK ℝ= → ℝ= の任意NN データ 𝑥 を次元 𝑑 で2つに区切る <latexit sha1_base64="azAlitT8BpOFQ92gXxQcRQSsy6Y=">AAADbHicnVLdatRAGD3dVFu3alfrhVCE4tJl+8MyEWllQShtL7yR/rltoSlhkp1uQ7NJSGaXbUNewBfwwqsKXoiP4YW+gBd9BBG9aWlBvPCbJFh0UcEJmfm+M985c2b4rMB1IsnYyUBBG7xydWj4WnHk+o2bo6VbtzcjvxPaomH7rh9uWzwSruOJhnSkK7aDUPC25Yot62BJ7W91RRg5vvdMHgZit81bnrPn2FwSZJb4kRnr9WZSedzLAsMgpDmj15fNuJdk+GVq+E1fGqIXVCMzNuS+kDyp5sypqRnZDxbNUpnVWDom+gM9D8rIx6pf+gYDTfiw0UEbAh4kxS44Ivp2oIMhIGwXMWEhRU66L5CgSNwOVQmq4IQe0NyibCdHPcqVZpSybTrFpT8k5gQm2Uf2hp2yD+wt+8S+/1ErTjWUl0NarYwrAnP0+d2Ni3+y2rRK7F+y/upZYg+PUq8OeQ9SRN3CzvjdoxenG/X1ybjCXrHP5P+YnbB3dAOve2a/XhPrL0ld6S8TK3vDkKKnuYcVUhSEqEy9wjSdY6Q1LfKpTkzyN24RPvsT+19Fjl6fYoapNtF/b4r+YPNBTZ+rza09LC8s5g0zjHHcR5W6Yh4LeIJVNMjXe3zBOS4KX7U72rh2LystDOScMfwytMoPRw/O+g==</latexit> z1:d = x1:d zd+1:Dx = xd+1:Dx exp(s✓(x1:d)) + t✓(x1:d) <latexit sha1_base64="LTd5rYpsKKmGycSrYiVh4q23xDs=">AAADjHicnVJNa9RAGH638aOutl0VVPCyuLRsRZaJlCoVoaiIF7EfblvYWcJkMpsdmk3CZHbZNeTg1T/gwZOCB/FnePEPeOgvEPFYQRAPvpMERRcrOENm3nnmfZ73yfC6cSATTchBZcY6dvzEydlT1dNn5uYXamfP7STRUHHR5lEQqT2XJSKQoWhrqQOxFyvBBm4gdt39u+Z+dyRUIqPwsZ7Eojtgfih7kjONkFN7SgPR0x3qCl+GKVOKTbKUc57VqRjHzcRJqe4LzbLm2EntNS9bXsY9qy/hJJTiSj0v0gmGJAePoHlGNPTKKlRJv6+7VafWIC2Sj/p0YJdBA8qxEdW+AQUPIuAwhAEICEFjHACDBGcHbCAQI9aFFDGFkczvBWRQRe4QswRmMET3cfXx1CnREM9GM8nZHKsE+Clk1mGRfCBvyCF5T96ST+T7X7XSXMN4meDuFlwROwvPLm1//SdrgLuG/i/WkZ419OBm7lWi9zhHzF/wgj968vxwe21rMV0ir8hn9P+SHJB3+Afh6At/vSm2XqC60b+HrOINFUYPSw+PUFEgYk7mFa5iHZrn+OjTVMzKN/YRv/YT+19FBuMpxQIzbWL/2RTTwc71lr3aWt1caazfKRtmFi7DFWhiV9yAdXgAG9BGXx8rc5ULlYvWvLVi3bJuF6kzlZJzHn4b1v0fCwvWqw==</latexit> 2 6 4 exp(s✓(x1:d))1 0 ... 0 exp(s✓(x1:d))d 3 7 5
  44. 49 Copyright 2024 NTT CORPORATION Flow-based Model (4) • よって、log

    𝑝$ (𝑥) は下記で計算でき、最尤推定が可能 • データ⽣成は、逆関数を⽤いてノイズ 𝑧 ~ 𝑝(𝑧) から変換する <latexit sha1_base64="dYwZZxPlqS6yfvrxCUQpZgQyCIU=">AAAED3icnVLLahRBFL2d9hHHRya6EdwMDgndKkO1SJSAENSFGzEPJwmkQlPTU9NTSb/orhkmdvoHXOlK1JWCC/ED3IngRj/ART5BXEYQxIW3uluNmSSC1XTVrVP3nHOruK3IE4kkZEsb0Q8dPnJ09Fjl+ImTp8aq46cXk7AXO7zphF4YL7dYwj0R8KYU0uPLUcyZ3/L4Umv9pjpf6vM4EWFwT25EfNVnbiA6wmESIXtc06kXurXITqnscskyY2BOXi8wo7MTNS8qlHq8Izdpm8s8MqjPZDf207ZgbmZQPoiMZAfLTq3pdmaaJo2F25XlsknpQR6FzC9lGWe7XPY0QIv9RZOeb6dr2R5EBVfsap00SD5qw4FVBnUox2xY/Q4U2hCCAz3wgUMAEmMPGCT4rYAFBCLEViFFLMZI5OccMqggt4dZHDMYous4u7hbKdEA90ozydkOunj4x8iswQT5RF6RbfKBvCafyY99tdJcQ9WygWur4PLIHntwduHbP1k+rhK6f1gH1iyhA9fyWgXWHuWIuoVT8Pv3H28vTM9PpJPkBfmC9T8nW+Q93iDof3VezvH5Z6iu9G8hq3jDGKM7ZQ13UZEjonbqFS6gD81zXKxTOWblG7uIX/qN/a8ig8GQYoGpNrF2N8VwsHi5YU01puau1GdulA0zCufgPBjYFVdhBm7DLDTB0da0h9oT7an+SH+jv9XfFakjWsk5A38N/eNPMAELWw==</latexit> log p✓(x) = log p(f✓(x)) + log |det (diag(exp(s✓(x1:d))))| = log p(f✓(x)) + log(exp(tr(diag(s✓(x1:d))))) = log p(f✓(x)) + X j s✓(x1:d)j <latexit sha1_base64="DSjpodDpskC/F5uX/kvZDy72a9g=">AAADL3icnVLLShxBFD22iY8x0VE3QjbiRBmDDDUiKoKgJotsxFdGBVuG7rYcG/tFdc2gDvMD/oALVwlkEdyYpW7d5AeCuBG3kqWBQHDhre4mIQ5GsJruOnXqnlOni2sGjh1Kxi4atMZnz5uaW1pTbS9etnekO7uWQ78sLF6wfMcXq6YRcsf2eEHa0uGrgeCGazp8xdx+q/ZXKlyEtu99kLsBX3eNkmdv2pYhiSqmX+sbXGZ1vhNkpwcHByYjpLuG3BJuVYqaYlPFdIblWDR660E+ARkkY95P/4aODfiwUIYLDg+SsAMDIT1ryIMhIG4dVeIEITva56ghRdoyVXGqMIjdpm+JVmsJ69FaeYaR2qJTHHoFKXvRz76zL+yGfWNH7JrdPuhVjTxUll2azVjLg2LHfs/Sr0dVLs0SW39V/80ssYnxKKtN2YOIUX9hxfrK3sHN0sRif3WAfWI/KP9HdsHO6A+8yk/r8wJfPCR35f+OVPEdCkKzSYY5cuTEqJW6hTd0jh7VlCinOrGW3HGJ+KE/3FMdDezUOcacapP8/aaoB8vDufxobnRhJDM1kzRMC16hD1nqijFM4T3mUaBc+zjGCU61r9q5dqldxaVaQ6Lpxj9Du74DThK5Zw==</latexit> det(exp(A)) = exp(tr(A)) <latexit sha1_base64="3qEGTt73nIfhhgX79WR2jOHK9h4=">AAADb3icnVLLahRBFD2Z9hHHR0aziBCQwSFhJjFDtUgSBoQQs3Aj5uEkgXRo+lGZNOnpbrprhsk0/QP+gAtXCbgQP8ONuHeRTxA3SoSQ4MJb3Y2v8QFW01X3nrrn1KnimoHrRIKxo6GCcu78hYvDl4qXr1y9NlK6fmM98juhxZuW7/rhpmlE3HU83hSOcPlmEHKjbbp8w9x7IPc3ujyMHN97IvYDvt02Wp6z41iGIEgv2T09Vht2Mnm/nwWaRog9rTaW9LiXEF7t/5jPCD3WxC4XRlLNqbWa5tu+0HgvqM5Ev9ku6qUKq7N0lAcDNQ8qyMeyXzqDBhs+LHTQBocHQbELAxF9W1DBEBC2jZiwkCIn3edIUCRuh6o4VRiE7tHcomwrRz3KpWaUsi06xaU/JGYZE+wde8mO2Rv2ir1nX/6oFaca0ss+rWbG5YE+8vTm2sk/WW1aBXa/s/7qWWAH86lXh7wHKSJvYWX8bv/Z8VpjdSKeZIfsA/k/YEfsNd3A6362Xqzw1eekLvWXiJW9YUjRo9zDY1LkhMhMvsIUnaOlNS3yKU9M8jduEX7nG/a/igZ6A4oZJttE/bUpBoP1u3V1tj67cq+ysJg3zDDGcRtV6oo5LOAhltEkX2/xEac4K3xSxpRbSjkrLQzlnFH8NJTaV102z5g=</latexit> x1:d = z1:d xd+1:Dx = (zd+1:Dx t✓(x1:d)) exp( s✓(x1:d))
  45. 50 Copyright 2024 NTT CORPORATION Flow-based Model (5) Real NVPで⽣成したCelebAとCIFAR10

    (2017年時点) [B5] NOTE: • FlowはVAEよりも性能が⾼く、厳密に確率を求められるので注⽬されていた (GAN or Flow という流れだった) • ⽋点として、全単射1つだけでは表現能⼒が低く、多段にする必要があるため、 計算量が膨⼤になることがあげられる
  46. 51 Copyright 2024 NTT CORPORATION Diffusion Model (1) • Diffusion

    Model [B4] は、𝑇 ステップかけて元のデータ 𝑥. に ノイズを徐々に加え、ガウス分布に従うノイズに変換する⼿法 • ノイズを加える順⽅向の過程を拡散 (Diffusion) と呼ぶ • その逆変換を⾏うことで、ノイズから元のデータを復元できる • ノイズを除去する逆⽅向の過程をノイズ除去 (Denoising) と呼ぶ ! <latexit sha1_base64="7yFrn0YPyuP5dVIvc7Tl2zcbS/g=">AAAB+HicbVBNSwMxEJ2tX7V+dNWjl2ARPJXdKuix6MVjBfsB7VKyaXYbmk2WJKvU0l/ixYMiXv0p3vw3pu0etPXBwOO9GWbmhSln2njet1NYW9/Y3Cpul3Z29/bL7sFhS8tMEdokkkvVCbGmnAnaNMxw2kkVxUnIaTsc3cz89gNVmklxb8YpDRIcCxYxgo2V+m65x6WIFYuHBislH/tuxat6c6BV4uekAjkafferN5AkS6gwhGOtu76XmmCClWGE02mpl2maYjLCMe1aKnBCdTCZHz5Fp1YZoEgqW8Kgufp7YoITrcdJaDsTbIZ62ZuJ/3ndzERXwYSJNDNUkMWiKOPISDRLAQ2YosTwsSWYKGZvRWSIFSbGZlWyIfjLL6+SVq3qn1drdxeV+nUeRxGO4QTOwIdLqMMtNKAJBDJ4hld4c56cF+fd+Vi0Fpx85gj+wPn8AXOGk5o=</latexit> xT ! · · · ! xt ! xt 1 ! · · · ! x0 <latexit sha1_base64="l4LvSgM7PR7I/kkuy5soikK4gpU=">AAAEoXictVLditNAFE7XqGv92a5eejOYLexKLU0VFKRQ9EYvhCrb3YUklOlk2g6dnzBzYrcb8zK+lU/gazhJK6atuiB4YODM+T/n+8YJZwY6nW+1vRvuzVu39+/U7967/+CgcfjwzKhUEzokiit9McaGcibpEBhwepFoisWY0/Px/G3hP/9MtWFKnsIyoZHAU8kmjGCwplHjeygwzAjThNM4Kz/jSXaZj05zFHIlp5pNZ4C1VgsUkliB2TX/oQLYCpe/4rJwZhJM6NPMJyLPt9IM0SwBA0tOUaVGBs/8/J8mWVRH6eSjhtdpd0pBu4q/VjxnLYPR4d7XMFYkFVQC4diYwO8kEGVYA7P183qYGmr3meMpDawqsaAmykpEctS0lhhNlLZPAiqt1YwMC2OWYmwjiynNtq8w/s4XpDB5FWVMJilQSVaNJilHoFABL4qZpgT40irYntTOisgMa0zAkqC+0QbY/MquIfCcYssbsBH1UNIFUUJgGVePGfhR1qyj1YETXAaH/SqAnp836/lGftUfdNcFiqbBT8L2jouQdvE9iVAoVUyDWONFa5XVYlJSjezEPT+BlmCSiVQgw65or2vBaE0Y5z1e4D/VeBmhstwJyo5C0YeZ53vdo/z19lhVjly71+K6xRb/ZbO/rbLCS8HMwmVZ7W9zeFc567b95+3uxxde/82a3/vOY+eJc+z4zkun77xzBs7QIbUPNVP7Ustdz33vDtxPq9C92jrnkbMhbvAD81mObw==</latexit> p✓(xt 1 |xt) <latexit sha1_base64="XVzP503G8Ma8Lkwk3KKGZcZJbZ0=">AAACEnicbVC7SgNBFJ2Nrxhfq5Y2g0FICsNuFEwZsLGMYB6QLMvsZDYZMvtg5q4Y1nyDjb9iY6GIrZWdf+Mk2SImHrhwOOde7r3HiwVXYFk/Rm5tfWNzK79d2Nnd2z8wD49aKkokZU0aiUh2PKKY4CFrAgfBOrFkJPAEa3uj66nfvmdS8Si8g3HMnIAMQu5zSkBLrlmO3R4MGZBSLyAw9Pz0YeKmcG5P8CNekKDsmkWrYs2AV4mdkSLK0HDN714/oknAQqCCKNW1rRiclEjgVLBJoZcoFhM6IgPW1TQkAVNOOntpgs+00sd+JHWFgGfq4kRKAqXGgac7p0eqZW8q/ud1E/BrTsrDOAEW0vkiPxEYIjzNB/e5ZBTEWBNCJde3YjokklDQKRZ0CPbyy6ukVa3YF5Xq7WWxXsviyKMTdIpKyEZXqI5uUAM1EUVP6AW9oXfj2Xg1PozPeWvOyGaO0R8YX7+bCp4F</latexit> q(xt |xt 1) <latexit sha1_base64="eAZ87UuTmAQoJ4u19RGH5tA+bCI=">AAACC3icbVC7TgJBFJ31ifhatbSZQEywkOyiiZQkNpaYyCMBspkdZmHC7MOZu0ay0tv4KzYWGmPrD9j5N87CFgieZJIz59ybe+9xI8EVWNaPsbK6tr6xmdvKb+/s7u2bB4dNFcaSsgYNRSjbLlFM8IA1gINg7Ugy4ruCtdzRVeq37plUPAxuYRyxnk8GAfc4JaAlxyzclbo+gaHrJQ8TB/AjnvsmcGZPTh2zaJWtKfAysTNSRBnqjvnd7Yc09lkAVBClOrYVQS8hEjgVbJLvxopFhI7IgHU0DYjPVC+Z3jLBJ1rpYy+U+gWAp+p8R0J8pca+qyvTRdWil4r/eZ0YvGov4UEUAwvobJAXCwwhToPBfS4ZBTHWhFDJ9a6YDokkFHR8eR2CvXjyMmlWyvZ5uXJzUaxVszhy6BgVUAnZ6BLV0DWqowai6Am9oDf0bjwbr8aH8TkrXTGyniP0B8bXL+1hmu8=</latexit>
  47. 52 Copyright 2024 NTT CORPORATION Diffusion Model (2) • データ

    𝑥. の確率 𝑝$ (𝑥. ) を下記で推定する • また、拡散されたデータの確率を下記で推定する <latexit sha1_base64="sJdJb2xbh7OLowkRRN18mDfkeF0=">AAADSHicnVLLahRBFD3paIyjSUbdCG4Gh4REZKgOEiUQCOrCjZjXJIF0aKo7lZki/aK7Zkhs+gf8AReuVFyIn+FGXSou8gniJpBAULLIre4mYgYTsJquunXqnlOnLteJPJkoxnb7jP4LFwcuDV6uXLk6NDxSvXZ9OQk7sSuabuiF8arDE+HJQDSVVJ5YjWLBfccTK87WI32+0hVxIsNgSe1EYt3nrUBuSpcrguzqTGSnlmoLxbPxbTtl2cTYjCUDVTuFTy9lE5bPVTv2042MEJOQil2tswbLR603MMugjnLMhdXfsLCBEC468CEQQFHsgSOhbw0mGCLC1pESFlMk83OBDBXidihLUAYndIvmFu3WSjSgvdZMcrZLt3j0x8SsYZR9Z+/ZPvvEPrAf7OifWmmuob3s0OoUXBHZIy9uLh6ey/JpVWj/YZ3pWWETD3KvkrxHOaJf4Rb87vOX+4vTC6PpGHvDfpL/12yXfaQXBN0D9928WHhF6lr/MbGKGsYUPS09PCNFQYje6SrcoXusPKdFPvWNWVnjFuF3T7D/VeTY7lEsMN0m5umm6A2WJxvmVGNq/l599mHZMIO4hdsYp664j1k8wRya5OstPuMrvhlfjD3j0PhVpBp9JecG/hr9xjFqxMQk</latexit> p✓(x0) = Z p✓(x0:T )dx1:T <latexit sha1_base64="beVBsTvz04ez8toEEcUP4I3tyyI=">AAADtHicnVLLbtNAFL2ueZTwSIANEpuIqKhBIRojCKgoUAELNkDbNG2luljjydQZ1S/scdRi/AP8AAtWILGo+Aw2/ACLfgJiWSQkxII7tlUUooLUsew599x7zlyPrh26IpaE7GlT+rHjJ05On6qcPnP2XLV2/sJKHCQR430WuEG0ZtOYu8LnfSmky9fCiFPPdvmqvfVQ5VdHPIpF4C/LnZBveNTxxaZgVCJl1XZDKzXlkEuazW5bKZlbzprdUEEEZhgFAyuVXSN7jvF4qbxuZK/UnjVb5ouEDuqH5rumR+WQUTd9epC6a3rJeH3WkujUE45HJxPNilVrkDbJV30SGCVoQLkWgtpPMGEAATBIwAMOPkjELlCI8VkHAwiEyG1AilyESOR5DhlUUJtgFccKiuwWfh2M1kvWx1h5xrma4SkuvhEq6zBDvpBdsk8+k4/kK/l1qFeae6hednC3Cy0PrerrS70f/1V5uEsY/lH9s2cJm3An71Vg72HOqL9ghX708s1+b25pJr1K3pNv2P87skc+4R/4o+/swyJfeovuyv8Rqoo7jBA9KXt4ho4cGRWpW7iG55h5jYN9qhOz8o4d5FsH3FEdKWxPOBacGhPj76GYBCs32kan3Vm82Zh/UA7MNFyGKzCLU3Eb5uExLEAfmFbVbmn3tPt6Rzd1pvOidEorNRdhbOn+b5U86bU=</latexit> p✓(x0:T ) = p(xT ) T Y t=1 p✓(xt 1 |xt), p✓(xt 1 |xt) = N(xt 1; µ✓(xt, t), ⌃✓(xt, t)) <latexit sha1_base64="x32LLyPReh0yJi3vNJrqMtVvD/M=">AAADinicnVLLahRBFL2d9pFMohlNBMHN4BDJyGSoDpJowkDQLHShec0kgXRsqnsqkyb9muqaIbEt3PsDLlwpuBA/w40/4CIf4CK4jCCIC29XNxEzRMFquurWufecOlVcO/LcWBByqA3o585fuDg4VBgeuXR5tHjl6nocdrnDmk7ohXzTpjHz3IA1hSs8thlxRn3bYxv23oM0v9FjPHbDoCEOIrbt03bg7rgOFQhZxRedyX0rMeYa8jmuRFbqZsTDlpWIuiGfJg2p8kJlxZQhK1Wz06Wt0mm4bvpU7DrUS57ILDVvxh0uEmPKtJmgKSLz4uoJ8qhiFcukRtQo9QdGHpQhH8th8QeY0IIQHOiCDwwCEBh7QCHGbwsMIBAhtg0JYhwjV+UZSCggt4tVDCsoons4t3G3laMB7lPNWLEdPMXDnyOzBBPkM3lPjskn8oEckZ9naiVKI/VygKudcVlkjb68vvb9nywfVwG7v1l/9SxgB+4qry56jxSS3sLJ+L1nr47X5lYnklvkLfmK/t+QQ/IRbxD0vjnvVtjqa1RP9ReRlb0hx+hx7mEJFRki6S59hdt4jqlq2ugzPVHmb9xGvHqC/a8ihf0+xQwrYJsYp5uiP1ifrhkztZmVO+WF+3nDDMINuAmT2BWzsAAPYRma6OuLNqyNa9f0EX1av6fPZ6UDWs4Zgz+GvvgLM3LZTw==</latexit> q(x1:T |x0) = T Y t=1 q(xt |xt 1), q(xt |xt 1) = N(xt; p 1 txt 1, tI) 平均と分散を推定するNN 𝛽> : ハイパーパラメータ
  48. 53 Copyright 2024 NTT CORPORATION Diffusion Model (3) • この時、変分下界は下記で求められる

    <latexit sha1_base64="r54zN6Y7p8OWf3dkN3Wup5PdSd4=">AAAEvnicnVLLbtNAFL0xBkp4NIUNiE1E1CrhEY0RKqioIoIgFYmK9JG2UiaybHfiWPUr9iRKMf4BfoAFK5BYIHb8Aht+gEU/AbEsEhJiwR3bFLUJpepY9tw5d865Z65H920r5ITs5KQT8slTpyfO5M+eO39hsjB1cS30+oHBmoZne8GGroXMtlzW5Ba32YYfMM3Rbbaubz0S+fUBC0LLc1f5ts/ajma6VscyNI6QOpX7SG3PLPpqRHmXcS0uD9WIxJWZeYFTy+UHc3OrcYU6Gu8GTrQZI6IgQmlGEAldjx7HatQrZ8kXqWRMbdbhLdoJNCMaIxqPYQSW2eVtVKcm6x1FXHg4VoH5I6oXfZFDtRs07DtqxIUzJR5XlN9SEgG+V5qna8T3nY31+tYgqW9odvQUDfxpcL3eWIyzf3I/la7k1UKJVEkyiqOBkgUlyEbDK/wECpvggQF9cICBCxxjGzQI8WmBAgR8xNoQIRZgZCV5BjHkkdvHXQx3aIhu4dfEVStDXVwLzTBhG1jFxjdAZhGmyRfynuySz+QD+Up+/VMrSjSEl22c9ZTLfHXy5eWVH/9lOThz6P5lHeqZQwfuJV4t9O4niDiFkfIHz1/trswtT0cz5C35hv7fkB3yCU/gDr4b75bY8mtUF/p1ZKU9DDBazDw8Q0WGiFiJLlzHOjTZY6JPUTHOemwifnMPO66iBsMRxRQT10Q5eClGg7XbVWW2Ort0p1R7mF2YCbgK16CMt+Iu1GABGtAEQ7oiPZAWpCdyTe7IjuylW6VcxrkE+4Y8/A2itlAb</latexit> log p✓(x0) = log Z p✓(x0:T )dx1:T = log E q(x1:T |x0)  p✓(x0:T ) q(x1:T |x0) E q(x1:T |x0)  log p✓(x0:T ) q(x1:T |x0) = E q(x1:T |x0) 2 4log p(xT ) + X t 1 p✓(xt 1 |xt) q(xt |xt 1) 3 5 ⌘ LDDPM(x0; ✓) 𝑞(𝑥":$ |𝑥% ) による importance sampling Jensenの不等式: 対数と和 (期待値) の交換
  49. 54 Copyright 2024 NTT CORPORATION Diffusion Model (4) • この変分下界を式変形すると、下記のように簡略化できる

    • 各時刻 𝑡 のデータ 𝑥> に付加されるノイズをNN 𝜖3 で推定できるよう学習 <latexit sha1_base64="5O94BeDU4dfLUFyHj1xmCOaOULo=">AAAD9HicnVJPaxNBFH/b9U+Nfxr1IngJhpZEmzApUkUvRSN4sDRtTVrIxDC7TpKls3+cnYTWZfXuF/CgF5UeRPBLePELeOhHKB4rCOLBt7MbRUMVnGVn3vu99/u9N8OzAuGEipA9Y8o8cvTY8ekTuZOnTp+ZyZ891wr9obR50/aFLzctFnLheLypHCX4ZiA5cy3BN6yt20l8Y8Rl6PjefbUT8I7L+p7Tc2ymEOrm9yvUZWpgMxHdi7uRdqQb1euN5TgubXcjEt+kasAVK8/RQPqB8nWOZUV3xvkJuRmXVHk+KFEehI7wvXJMBe+ptt5pi0tVGIcqYwPpWjlNLdHwkVQRtZiMKBPBgKG+imPdw5U0WKtMhMdi84pKpz9Q5fRISz6IFuLU7+S6+SKpEr0Kk0YtM4qQrYaf/wYUHoIPNgzBBQ4eKLQFMAjxa0MNCASIdSBCTKLl6DiHGHLIHWIWxwyG6BbuffTaGeqhn2iGmm1jFYG/RGYBZskn8pYckI/kHdkn3w/VirRG0ssOnlbK5UF35tmF9a//ZLl4Khj8Yv21ZwU9uK57dbD3QCPJLeyUP3r8/GD9xtpsNEdek8/Y/yuyRz7gDbzRF3t3la+9QPVEv46s9A0lWstZDyuoyBFJvOQVLmMdqnP62GdSMc7euI/4/E/sfxUZbE8oplgyJrU/h2LSaC1Ua4vVxdWrxaVb2cBMw0W4BCWcimuwBHehAU2wjRVjaDwxnpoj86X5xtxNU6eMjHMeflvm+x+SJwd8</latexit> LDDPM(x0; ✓) / E U(t),p(✏) h ✏ ✏✓ p ¯ ↵tx0 + p 1 ¯ ↵t✏, t 2 i <latexit sha1_base64="+pH0vazVWBPaZ8hp7Z1jlVijPjo=">AAADUHicnVJdS9xAFD1mW7Vrq2t9KfRFXJRSdJkU0SII0g/oS/Grq4LRMInjGswmYTK71Ib8gf6BPvSphT4Uf0Zf+lrBB+0vKD4qtJRCeycJLe2iQickc++595w5Ga4T+V6sGDvqMkpXrnb39F4r912/0T9QGby5Eoct6Yq6G/qhXHN4LHwvEHXlKV+sRVLwpuOLVWf3oa6vtoWMvTB4pvYisdHkjcDb9lyuCLIrjy3uRzvcTlQ6NmtOWI5QWWJZlsNlklfTvGxFMtyyk3jWTDd1S8GM07JdqbIay9ZwZ2AWQRXFWggr32FhCyFctNCEQABFsQ+OmJ51mGCICNtAQpikyMvqAinKxG1Rl6AOTugufRuUrRdoQLnWjDO2S6f49EpiDmOUHbL37JR9ZPvsC/txrlaSaWgve7Q7OVdE9sDLW8tfL2U1aVfY+cO60LPCNu5nXj3yHmWI/gs357dfvDpdnlkaTcbYW3ZC/t+wI/aB/iBon7nvFsXSa1LX+o+Ild+hpOhp4WGeFAUhOtO3cJfOsbKeBvnUJ6bFHTcIH/+N/a8ix/MOxRzTY2L+OxSdwcq9mjlVm1qcrM49KAamF7cxgjs0FdOYwxMsoE6+9vEJx/hsHBjfjJ+lrrzVKHYM4a9VKv8CWR7HnQ==</latexit> ↵t = 1 t ¯ ↵t = t Y s=1 ↵s
  50. 55 Copyright 2024 NTT CORPORATION Diffusion Model (5) • データ

    𝑥. の⽣成は下記の⼿順で⾏われる ガウス分布からノイズ 𝑥$ を⽣成 𝑇 ステップかけてノイズを除去
  51. 56 Copyright 2024 NTT CORPORATION Diffusion Model (6) Diffusion Modelで⽣成したCelebAとCIFAR10

    (2020年時点) [B4] NOTE: • Diffusionは⾮常に⽣成品質が⾼く、2024年時点でデファクトスタンダード • ⼀⽅で、ステップサイズ 𝑇 を⼤きくする必要があり、計算量が⼤きい
  52. 57 Copyright 2024 NTT CORPORATION まとめ: 深層⽣成モデル • 深層⽣成モデルは、ガウス分布に従うノイズから、どのような ⽅法でデータを⽣成するかに焦点を当てている

    • VAE: ノイズごとに条件付き分布を推定し、データを⽣成 • GAN: ノイズからデータを直接⽣成 • Flow: ノイズとデータの全単射関数を⽤いて、データを⽣成 • Diffusion: ノイズを徐々に除去することで、データを⽣成 • それぞれのモデルごとに最尤推定する⽅法を⼯夫している • 変分下界を導出、分類器を騙すように学習、全単射で厳密に計算、など • 現在主流のStable Diffusion [B6] は VAE + Diffusion
  53. 58 Copyright 2024 NTT CORPORATION 補⾜: 条件付き分布への拡張 • 条件 𝑐

    が与えられたもとでのデータ 𝑥 の分布 𝑝$ (𝑥|𝑐) を、条件 付き分布と呼ぶ • 今まで説明した深層⽣成モデルは全て条件付き分布に拡張可能 • 条件 𝑐 として、データが属するクラス (⼿書き数字の⽣成なら「1」など) や、データを表現するテキスト (例えば「桜が咲き誇る静かな⽇本庭園に ある、アニメ⾵の静かな鯉の池」) などが考えられる • CLIP [B7] と呼ばれるテキスト埋め込みモデルを⽤いることで、画像⽣成 に適した条件 𝑐 が得られる • ⼤規模な画像データセットでCLIPを⽤いて条件付き分布を学習 することで、Stable Diffusionのような画像⽣成が可能となる
  54. 59 Copyright 2024 NTT CORPORATION 参考⽂献 B 1. Kingma, Diederik

    P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint arXiv:1312.6114 (2013). 2. Goodfellow, Ian, et al. "Generative adversarial nets." Advances in neural information processing systems 27 (2014). 3. Dinh, Laurent, David Krueger, and Yoshua Bengio. "Nice: Non- linear independent components estimation." arXiv preprint arXiv:1410.8516 (2014). 4. Ho, Jonathan, Ajay Jain, and Pieter Abbeel. "Denoising diffusion probabilistic models." Advances in neural information processing systems 33 (2020): 6840-6851.
  55. 60 Copyright 2024 NTT CORPORATION 参考⽂献 B 5. Dinh, Laurent,

    Jascha Sohl-Dickstein, and Samy Bengio. "Density estimation using real nvp." arXiv preprint arXiv:1605.08803 (2016). 6. Rombach, Robin, et al. "High-resolution image synthesis with latent diffusion models." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022. 7. Radford, Alec, et al. "Learning transferable visual models from natural language supervision." International conference on machine learning. PMLR, 2021.
  56. 62 Copyright 2024 NTT CORPORATION ⾔語モデルについて • ⼊⼒ 𝑥 に対する出⼒

    𝑦 の確率 𝑃$ (𝑦|𝑥) を推定するモデル • ⾔語は画像と性質が異なるため、深層⽣成モデルとは異なる発展を遂げた • 2017年にTransformer [C1] が登場し、⾶躍的に進化した • ⾔語モデルの事前学習の効果の確認 [C2] (2018) › ⼤規模かつ多様なデータセットで⾔語モデルを事前学習すれば、少量 のラベル付きデータによるFine-Tuningで⾼精度を達成できる • 事前学習済のTransformer (BERT/GPT) の登場 (2018) › BERT [C3] はTransformerのエンコーダ部分を事前学習したモデル › GPT [C4] はTransformerのデコーダ部分を事前学習したモデル • 以降様々なモデルが登場
  57. 64 Copyright 2024 NTT CORPORATION Transformer (1) • 条件付き分布 𝑃$

    (𝑦|𝑥) を出⼒するため のニューラルネットワークの構造 1. ⽂章 𝑥, 𝑦 をベクトルに変換する (それぞれ 𝑒! , 𝑒? とする) 2. ベクトル 𝑒! をエンコーダに⼊⼒ 3. エンコーダの出⼒とベクトル 𝑒? をデコーダ に⼊⼒ 4. 条件付き確率 𝑃3 (𝑦|𝑥) を計算 • エンコーダとデコーダは、Attentionと いう共通の構造を⽤いている エンコーダ デコーダ
  58. 65 Copyright 2024 NTT CORPORATION Transformer (2) • Attentionはクエリ 𝑄、キー

    𝐾、バリュー 𝑉 から下記を計算 <latexit sha1_base64="e8IuDcPOz4hNfrW+LeyDMMelvm8=">AAADVXicnVJNaxNBGH6b1FpjNaleBC+loSUtIUykVCkU6sdBLMWmbdJCt4bZzSRdsl/OTkLiMH/AP+DBk4IH6cX/4KV/QKUnvUqPFQRpwXd215YaVHCWnXnnmfd55pmX1wwcOxSEHAyl0sMXRi6OXspcHrtyNZsbv1YL/Q63WNXyHZ9vmTRkju2xqrCFw7YCzqhrOmzTbN/X55tdxkPb9zZEP2A7Lm15dtO2qEConntkuFTsclfeFYJ5GlOFSnG5WJuZXvx1FPpN4dKeKhhNTi1ZWX4iN5SSRviUC9moy7ZSaqaWqefypESiMTEYlJMgD8lY9XM/wIAG+GBBB1xg4IHA2AEKIX7bUAYCAWI7IBHjGNnROQMFGeR2MIthBkW0jXMLd9sJ6uFea4YR28JbHPw5Midginwgb8kR2Sd75Cs5/qOWjDS0lz6uZsxlQT37/Mb693+yXFwF7J6x/upZQBPuRF5t9B5EiH6FFfO7z14crS+sTclp8pocov9X5IC8xxd43W/Wmwpbe4nqWv8BsuIacoxWEg+PUZEhone6CrN4jxHltNCnvlElNW4hXjzF/leRQm9AMcZ0m5R/b4rBoHarVJ4vzVfm8kv3koYZhZswCQXsituwBA9hFaro6x18hM/wJfUpdZIeTo/EqamhhHMdzo109iczPsiY</latexit> Attention(Q, K, V ) = softmax( QKT p dk )V Attentionは辞書オブジェクト [C5] • 𝑄 と 𝐾 の類似度を内積で計算し、 重みとして 𝑉 に掛けている • 𝑄 と 𝐾 が似ている部分は 𝑉 が そのまま出てくる • 逆に似ていない部分は 0 になる • これは辞書と同じ機能を持つ
  59. 66 Copyright 2024 NTT CORPORATION Transformer (3) • Self-Attention は

    𝑄 = 𝐾 = 𝑉 のAttention • ⼊⼒内の各要素が他の全ての要素に対してどの 程度関連しているかを計算 • エンコーダとデコーダの初段はSelf-Attention • Cross-Attention は 𝐾 = 𝑉 のAttention • 𝑄 が 𝐾, 𝑉 とどの程度関連しているかを計算 • デコーダの⼆段⽬以降は 𝑄 がデコーダへの⼊⼒、 𝐾, 𝑉 がエンコーダの出⼒のCross-Attention • Attention を複数のモデルで計算すること でさらに性能が上がる (Multi-Head)
  60. 67 Copyright 2024 NTT CORPORATION Transformer (4) Input-Input Layer5 It

    is in this spirit that a majority of American governments have passed new laws since 2009 making the registration or voting process more difficult . <EOS> <pad> <pad> <pad> <pad> <pad> <pad> It is in this spirit that a majority of American governments have passed new laws since 2009 making the registration or voting process more difficult . <EOS> <pad> <pad> <pad> <pad> <pad> <pad> Self-Attentionの例: makingとmore difficultが関連していると判断 [B1]
  61. 68 Copyright 2024 NTT CORPORATION Transformer (5) • Attentionは従来の⾔語モデルと⽐べて、下記の利点がある •

    依存関係の捉えやすさ: ⽂字列内の遠く離れた部分の依存関係を効果的に 捉えることができる • 並列処理のしやすさ: ⽂字列全体に対して同時に計算できるため、並列に 処理が可能であり、従来の⾔語モデルより⾼速 • Transformerは2017年の登場時、機械翻訳で当時の最⾼性能を 達成し、⾔語モデルの基盤となった • その後、事前学習の重要性 [C2] や、事前学習済のエンコーダ (BERT) [C3] とデコーダ (GPT) [C4] が登場し、⼤規模⾔語モデルへと発展 • Transformerの詳細は [C5,C6,C7] を参照
  62. 69 Copyright 2024 NTT CORPORATION BERT: Bidirectional Transformer • BERT

    [C3] は下記の2タスクで事前学習されたエンコーダ • Masked LM: マスクされた⽂章から元の⽂章を推定する • Next Sentence Prediction: 2つの⽂章が与えられた時、⼀⽅の⽂章が、 もう⼀⽅の次の⽂章になっているかどうかを判定する BERT The capital of France is [MASK]. The capital of France is paris. Masked LM The man went to the store. He bought a gallon of milk. BERT True or False Next Sentence Prediction
  63. 70 Copyright 2024 NTT CORPORATION Generative Pretrained Transformer • GPT

    [C4] は事前学習されたデコーダで、⼤規模⾔語モデルの 基礎となっているモデル (当時はFine-Tuningが前提) • GPT-2 [C8] や GPT-3 [C9] を経て、現在は GPT-4o (論⽂⾮公開) これらのタスクでFine-Tuning
  64. 71 Copyright 2024 NTT CORPORATION まとめ: ⾔語モデル • ⾔語モデルは⾔語の⽣成モデル •

    画像と⾔語は特徴が異なるため、深層⽣成モデルとは異なる構造を持つ • Transformerは、⾔語の条件付き確率を推定するためのNN • Attentionという辞書に似た構造を⽤いることで、⽂章内の離れた位置の 依存関係を捉えることが可能となり、また並列計算が可能に • エンコーダを事前学習したBERTやデコーダを事前学習したGPTは、様々 なタスクで⾼い性能を達成 • 特にGPTは現在の⼤規模⾔語モデルにも採⽤されている • ⼤規模⾔語モデルについては [C10,C11] を参照 • 発展が⾮常に速い分野なので、最新の資料を読むと良いと思います
  65. 73 Copyright 2024 NTT CORPORATION 背景: 簡単に⾔語モデルを扱いたい • 従来の⾔語モデルの利⽤⼿順は以下の通り複雑だった 1.

    PyTorch/TensorFlowでベースとなるモデルを実装 2. 配布されている事前学習済モデルの重みを読み込む 3. ⼊⼒の前処理やモデルの出⼒の後処理を実装 4. DataLoaderやLoss、Optimizerを実装 • 🤗 Hugging Face はこれらの作業を簡略化するためのシステム • 多くのモデルをカバーした、統⼀されたインターフェイスを提供 • 主要なフレームワーク (PyTorch/TensorFlow/Jax) のサポート • 事前学習済モデルが集約されているモデルハブの提供
  66. 74 Copyright 2024 NTT CORPORATION Hugging Face について • 🤗

    Hugging Faceはライブラリ/エコシステムの総称 [C12] • Transformer系のライブラリ (インターフェイス) は下記の通り • 🤗 Transformers/🤗 Tokenizers (Transformer全般) ← 本⽇紹介 • 🤗 Datasets (NLP系のデータセット) • 🤗 Evaluates (NLP系の評価指標) • 🤗 Accelerate (Transformer⾼速化) • また、事前学習済のモデルを共有するモデルハブや、データ セットを共有するデータセットハブなどのエコシステムも提供 • 今回のサンプルコードは [C13] で利⽤可能
  67. 75 Copyright 2024 NTT CORPORATION 最初の⼀歩: BERTによる⽂書校正 • BERTを⽤いて、「私は野菜が空きだ」という⼊⼒⽂章を、「私 は野菜が好きだ」という⽂章に修正する

    • BERTはMasked Language Modelという、マスクされたトークンから元 のトークンを推定するタスクで事前学習されており、⽂書校正は得意 BERT The capital of France is [MASK]. The capital of France is paris. Masked Language Model
  68. 76 Copyright 2024 NTT CORPORATION 処理の流れ ⼊⼒⽂章 tokenizer transformer 出⼒

    Loss 例: 私は野菜が空きだ 形態素解析 + ベクトル化 Embedding + Encoder or/and Decoder 今回はBERTなのでEncoderのみ 例: 私は野菜が好きだ ラベルが与えられている場合はLossも出る ため、学習に利⽤可能
  69. 77 Copyright 2024 NTT CORPORATION サンプルコード $ pip install transformers

    torch ipadic fugashi shell from transformers import BertJapaneseTokenizer, BertLMHeadModel model_id = "cl-tohoku/bert-base-japanese-whole-word-masking" tokenizer = BertJapaneseTokenizer.from_pretrained(model_id) model = BertLMHeadModel.from_pretrained(model_id) wrong_text = "私は野菜が空きだ" wrong_tokens = tokenizer(wrong_text, return_tensors="pt") logits = model(**wrong_tokens).logits correct = tokenizer.decode(logits[0][1:-1].argmax(axis=1)) print(correct) python 私 は 野菜 が 好き だ shell
  70. 78 Copyright 2024 NTT CORPORATION コード解説 (1) transformers 🤗 Hugging

    Faceのライブラリ torch 🤗 transformersのbackend fugashi ⽇本語形態素解析器 (MeCabのラッパー) ipadic MeCabに必要な辞書 必要ライブラリのインストール $ pip install transformers torch ipadic fugashi shell
  71. 79 Copyright 2024 NTT CORPORATION コード解説 (2) 事前学習済モデルの読み込み BertJapaneseTokenizer BERTの⽇本語⽤Tokenizer

    BertLMHeadModel BERTの⾔語モデル model_id モデルハブに登録されているモデルID from_pretrained 事前学習済のtokenizer/modelの読み込み from transformers import BertJapaneseTokenizer, BertLMHeadModel model_id = "cl-tohoku/bert-base-japanese-whole-word-masking" tokenizer = BertJapaneseTokenizer.from_pretrained(model_id) model = BertLMHeadModel.from_pretrained(model_id) python
  72. 82 Copyright 2024 NTT CORPORATION コード解説 (3) ⽂書校正 2⾏⽬ ⼊⼒⽂章のトークン化

    (=形態素解析+ベクトル化) 3⾏⽬ BERTに⼊⼒し、出⼒ (logits) を取得 4⾏⽬ 出⼒を⽂章にデコード wrong_text = "私は野菜が空きだ" wrong_tokens = tokenizer(wrong_text, return_tensors="pt") logits = model(**wrong_tokens).logits correct = tokenizer.decode(logits[0][1:-1].argmax(axis=1)) print(correct) python
  73. 83 Copyright 2024 NTT CORPORATION モデルの学習 • すべてのモデルは nn.Module の⼦クラスなため、PyTorchの

    Optimizerを使って最適化可能 • model.forward にlabelを与えればlossを計算してくれる label_text = "私は野菜が好きだ" label_tokens = tokenizer(label_text, return_tensors="pt") loss = model(**wrong_tokens, labels=label_tokens.input_ids).loss print(loss) python tensor(15.4039, grad_fn=<NllLossBackward0>) shell
  74. 84 Copyright 2024 NTT CORPORATION まとめ: Hugging Face⼊⾨ • まとめ

    1. モデルIDを指定し、tokenizerとmodelの事前学習済モデルを読み込む 2. ⼊⼒⽂章をトークン化し、ラベルとともにモデルに⼊⼒ 3. 得られたLossを⽤いてOptimizerで最適化 • 今回は⽂書校正を例にしたが、他のタスクにも応⽤可能 • テキスト分類/固有表現認識/質問応答/要約/翻訳/テキスト⽣成/etc… • モデルは nn.Module の⼦クラスのため、簡単に⼿を加えられる • オープンなLLMもHugging Faceで公開されている • 例えばmetaが公開しているllama [C14] など
  75. 85 Copyright 2024 NTT CORPORATION 参考⽂献C 1. Vaswani, Ashish, et

    al. "Attention is all you need." Advances in neural information processing systems 30 (2017). 2. Howard, Jeremy, and Sebastian Ruder. "Universal language model fine-tuning for text classification." arXiv preprint arXiv:1801.06146 (2018). 3. Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018). 4. Radford, Alec, et al. "Improving language understanding by generative pre-training." (2018).
  76. 86 Copyright 2024 NTT CORPORATION 参考⽂献C 5. "論⽂解説 Attention Is

    All You Need (Transformer)", https://deeplearning.hatenablog.com/entry/transformer 6. "Transformer: A Novel Neural Network Architecture for Language Understanding", https://research.google/blog/transformer-a-novel-neural- network-architecture-for-language-understanding/ 7. "The Illustrated Transformer", http://jalammar.github.io/illustrated-transformer/ 8. Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9.
  77. 87 Copyright 2024 NTT CORPORATION 参考⽂献C 9. Brown, Tom, et

    al. "Language models are few-shot learners." Advances in neural information processing systems 33 (2020): 1877-1901. 10. "⼤規模⾔語モデル", https://speakerdeck.com/chokkan/llm 11. "⼤規模⾔語モデルの開発”, https://speakerdeck.com/chokkan/jsai2024-tutorial-llm 12. "Hugging Face", https://huggingface.co/ 13. https://gist.github.com/takahashihiroshi/ac26aae8834f4c89d4 ae595c53a466dc 14. "Meta Llama", https://huggingface.co/meta-llama
  78. 90 Copyright 2024 NTT CORPORATION ⽣成AIは誤った回答を⽣成する • ⽣成AIは誤った回答を⽣成することがあり、ハルシネーション と呼ばれている [D1]

    「ニューヨーク・タイムズ」の実在しない記事を要約するChatGPT1 https://upload.wikimedia.org/wikipedia/commons/3/3a/ChatGPT_hallucination.png
  79. 91 Copyright 2024 NTT CORPORATION ⽣成AIは正しく学習されていない • 深層⽣成モデルは、学習データに含まれない「分布外データ」 に⾼い確率を割り当ててしまうことがある [D2]

    • CIFAR10で学習したVAEは、SVHNに⾼い確率を割り当てる • つまり、分布外データを⽣成する可能性がある CIFAR10 ITmedia: https://www.itmedia.co.jp/ SVHN
  80. 92 Copyright 2024 NTT CORPORATION ⽣成AIは⼈間なしでは不完全 • ⽣成AIは誤った回答を⽣成するし、正しく学習されていない • そもそも⽣成AIはデータから学習しているだけであって、⼈間

    にとって「正しい」かどうかを考えていない • ⼈間にとって「正しい」モデルにするためには、⼈間からの フィードバックが重要 • 最後に、⼈間からのフィードバックを⽤いて⽣成AIを改善する 論⽂を2本紹介する 1. Reinforcement Learning from Human Feedback (RLHF, 2022) [D3] 2. Selective Amnesia (2024) [D4]
  81. 95 Copyright 2024 NTT CORPORATION 参考⽂献D 1. Ji, Ziwei, et

    al. "Survey of hallucination in natural language generation." ACM Computing Surveys 55.12 (2023): 1-38. 2. Nalisnick, Eric, et al. "Do deep generative models know what they don't know?." arXiv preprint arXiv:1810.09136 (2018). 3. Ouyang, Long, et al. "Training language models to follow instructions with human feedback." Advances in neural information processing systems 35 (2022): 27730-27744. 4. Heng, Alvin, and Harold Soh. "Selective amnesia: A continual learning approach to forgetting in deep generative models." Advances in Neural Information Processing Systems 36 (2024).
  82. 97 Copyright 2024 NTT CORPORATION まとめ • ⽣成モデルに関する下記のトピックについて学習した • ⽣成モデルの基礎

    / 深層⽣成モデル / ⾔語モデル / ⽣成モデルの問題点 • 現在の⽣成AIは⾮常に複雑になっているので、わからなくなったときは、 簡単な例でイメージしよう (例えばコインでの最尤推定など) • ⽣成AIと⽣成モデルのギャップはモデルサイズとデータの量 • 本講義で説明した基礎的なことを理解したら、最新の論⽂を読んでみよう • ⼤きなモデル・⼤きなデータだからこその難しさがある • ⽣成AIの発展には、⼈間からのフィードバックが重要 • 今後は⽣成AIが適切な回答を⾏えるようにする、特定の概念を忘れるなど の研究が重要になってくると予想