Slide 1

Slide 1 text

2024.06.13 情報科学特別講義Ⅰ ⽣成モデルの基礎と応⽤ ⾼橋 ⼤志 (NTT)

Slide 2

Slide 2 text

1 Copyright 2024 NTT CORPORATION ⾃⼰紹介 • 名前 ⾼橋 ⼤志 • 経歴 • 2009.4 – 2015.3 東京⼯業⼤学 (学⼠・修⼠) • 2020.4 – 2023.3 京都⼤学 (博⼠) • 2015.4 – 現在 NTT (研究所・ドコモ) • 研究分野 ⽣成モデル・異常検知 特に Variational Autoencoder (VAE) というモデルの研究をしています

Slide 3

Slide 3 text

2 Copyright 2024 NTT CORPORATION はじめに (10分)

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

5 Copyright 2024 NTT CORPORATION DALL-E (OpenAI) • OpenAIが2021年1⽉に公開した画像⽣成AI • ユーザが⼊⼒したテキストから画像を⽣成することが可能 • 詳細は不明だがGPTベースとのこと (画像系AIはDiffusion (後述) が主流) https://openai.com/index/dall-e-3/ 例: 桜が咲き誇る静かな⽇本庭園にある、アニメ⾵の静かな鯉の池

Slide 7

Slide 7 text

6 Copyright 2024 NTT CORPORATION 本講義の狙い • ⽣成AIは研究開発のスピードが⾮常に速く、キャッチアップが 難しい • 2024年現在、数ヶ⽉ごとに⼤きな進化が起こっている • その⼀⽅で、⽣成AIの基礎となっている部分は昔からほとんど 変わっていない • 本講義で最初に説明する最尤推定は1912年頃から研究されている • 本講義は、⽣成AIの基礎と応⽤を学び、将来的な⽣成AIの研究 開発の⼀助となることを⽬指す • 最先端の⽣成AIの⼀歩⼿前までの内容を取り扱う

Slide 8

Slide 8 text

7 Copyright 2024 NTT CORPORATION ⽣成モデルと⽣成AI • 本講義のタイトルに⽤いている⽣成モデルは機械学習⽤語 • 現在は事実上、画像を⽣成するモデルを指すことが多い • ⼀⽅で、⽣成AIはテキスト・画像・⾳声などを⽣成するAI全般を指す • 本講義では、⽣成モデルと⾔語モデル (⾔語の⽣成モデル) を扱う ⽣成AI ⽣成モデル VAE, GAN, Flow, Diffusion, etc. ⾔語モデル Transformer, BERT, GPT, etc.

Slide 9

Slide 9 text

8 Copyright 2024 NTT CORPORATION 本講義の内容 • 本講義で取り扱うこと • ⽣成モデルの基礎 (最尤推定 / ガウス混合モデル) • 深層⽣成モデル (VAE / GAN / Flow / Diffusion) • ⾔語モデル (Transformer / BERT / GPT) • Hugging Face⼊⾨ • ⽣成モデルの問題点 • 本講義で取り扱わないこと • 最適化の詳細について (主にEMアルゴリズムや確率的勾配法など) • ⼤規模⾔語モデル (主にTransformer以外の要素) 主に画像 主に⾔語

Slide 10

Slide 10 text

9 Copyright 2024 NTT CORPORATION 講義を始める前に • 数式が多く出てきますが、すべて理解しようとしなくてOKです • 重要な数式は⽬⽴つようにします • 講義中に質問する時間を多めに設けます • それ以外でも挙⼿や発声で⽌めていただいてOKです • PCやスマホなどで資料を⾒ながらお聞きください • 3時間と⻑い講義なので、各⾃のペースでお聞きください

Slide 11

Slide 11 text

10 Copyright 2024 NTT CORPORATION A. ⽣成モデルの基礎 (40分)

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

13 Copyright 2024 NTT CORPORATION ⽣成モデルの仮定 データ 𝑥 は真の確率分布 𝑝∗(𝑥) に従う 𝑝&'()* ∗ (𝑥) 𝑝,(-./01 ∗ (𝑥) MNIST CIFAR10 ITmedia: https://www.itmedia.co.jp/ 数字⼀つが データ 𝑥 画像⼀枚が データ 𝑥

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

15 Copyright 2024 NTT CORPORATION 最尤推定 (2) • カルバック・ライブラー情報量は下記のように変形できる • したがって、上記の最⼩化は下記で書き換えられる 定数 (⽣成モデルに関係ない値) 定数を除き、最⼩化を最⼤化に データセットを⽤いて近似 AAADpnicnVLLbtNAFL2uebTh0dBuKrGJiFrSikZjhNoKCakCFkg8+iJNpbo1Y3fijOqX7EmU4PoH+AEWXYHEAvEZbPgBFv0E1GWRkBAL7thDKURQxFj23HvmnnOPR9eOPJ4IQg60If3M2XPnh0dKFy5eujxavjK2noSd2GENJ/TCeMOmCfN4wBqCC49tRDGjvu2xpr17T543uyxOeBg8Ff2IbfnUDXiLO1QgZJX3TZ+KduynDx9ltWg7nclqvem9vchKTdFmgsp0euqOyQNhpbO4tUQ/205V8INgeqFbOU6U4k7Wm/0n3sleJ8glq1wldZKvymBgqKAKai2H5a9gwg6E4EAHfGAQgMDYAwoJPptgAIEIsS1IEYsx4vk5gwxKyO1gFcMKiugufl3MNhUaYC41k5ztYBcP3xiZFZgkH8lbckQ+kHfkE/n2R60015Be+rjbBZdF1uiLibUvp7J83AW0f7L+6llACxZyrxy9Rzki/8Ip+N3nL4/Wbq9OplPkNTlE/6/IAXmPfxB0PztvVtjqPqpL/fvIKu4wxuix8rCEigwRmclbmME+Zl7jok/ZMVN37CJ+4xj7X0UKvQHFApNjYvw+FIPB+s26MVefW7lVXbyrBmYYrsI1qOFUzMMiPIBlaICjadp1jWiGXtOf6A29WZQOaYozDr8s/dl3mXnkfA== KL(p⇤(x)||p✓(x)) = Z 1 1 p⇤(x) log p⇤(x)dx Z 1 1 p⇤(x) log p✓(x)dx AAADynicnVJLaxRBEK7J+IjrI6teBC+Ly4bdoEuPSBQhENSDkKh5bRLIJEPPpHe2ybzs6V127czNk3/AgycFD+KP8ODFP+AhP0E8RhDEgzWPJGwWDdjDdFd9Vd9X1U3ZkcdjScieNqafOn3m7Pi50vkLFy9NlC9fWY3DrnBYywm9UKzbNGYeD1hLcumx9Ugw6tseW7N3HqbxtR4TMQ+DFTmI2KZP3YC3uUMlQlb5k+nzwFKm7DBJE9OnsiN8NTef1KMtNZXU+43d3egwjm5jcgaz+kcUHkhL3cKjLQfJliqMA7bphW5lSOCgxnbSN2Pus+fDcm1BHWUk6mlixl3fUsGMgaroHRfCUNIoWeUqaZJsVUYNozCqUKyFsPwLTNiGEBzogg8MApBoe0Ahxm8DDCAQIbYJCjGBFs/iDBIoIbeLWQwzKKI7uLvobRRogH6qGWdsB6t4+AtkVqBGvpIPZJ98IR/JN/L7r1oq00h7GeBp51wWWROvri3/PJHl4ymhc8T6Z88S2nAv65Vj71GGpLdwcn7vxev95ftLNTVJ3pHv2P9bskc+4w2C3g/n/SJbeoPqqf4jZOVvKNB6UvTwDBUZIqmXvsIU1jGzHBf7TCsmxRu7iN88xP5XkUJ/RDHH0jExjg/FqLF6u2lMN6cX71RnHxQDMw7X4QbUcSruwiw8hgVogaPVtDltRWvp87rQB7rKU8e0gnMVhpb+8g9fZPVv 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)

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

18 Copyright 2024 NTT CORPORATION 例: コインの裏表の確率は︖ (2) • このモデルのパラメータ 𝜃 を最尤推定で学習する • ⽬的関数は下記の通り • この場合は微分を⽤いて閉形式で最適な 9 𝜃 が求められる 出た値の平均値になっている 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= @L(ˆ ✓) @ˆ ✓ = 1 N N X n=1 ⇢ xn ˆ ✓ 1 xn 1 ˆ ✓ = 0 , ˆ ✓ = 1 N N X n=1 xn 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= 1 N N X n=1 log P✓(xn = k) = 1 N N X n=1 {xn log ✓ + (1 xn) log(1 ✓)} = L(✓)

Slide 20

Slide 20 text

19 Copyright 2024 NTT CORPORATION 例: コインの裏表の確率は︖ (3) AAAEjHicnVJda9RAFL0bo9bVtlsFFXxZXLpUcZeJlCrKQlERX6z9cNtCpy5JnM2G5otkdmkNAz77B3zwScEH8Wf44h/wob9AxMcKgvjgnSTGZrer4IQkd84959w7lzECx444Ifsl5Zh6/MTJiVPl02cmp6YrM2fXI78fmqxt+o4fbhp6xBzbY21uc4dtBiHTXcNhG8bOXZnfGLAwsn3vMd8L2LarW57dtU2dI9SZKT2n3VA3Y03ES4JGfbcTey1NPJE7h3U5jaspYRcTQsS0p/OY8h7juhCNTNvIklqjkKahbfU4FdV6i1Ca1ylyCiUTn3orpw4bFshzWd0ruXeRXSz023WpcURJ5B4Bjus5txorO8Q+dJrhASf0cqdSI02SrOpooGVBDbK17Fd+AIWn4IMJfXCBgQccYwd0iPDZAg0IBIhtQ4xYiJGd5BkIKKO2jyyGDB3RHfxauNvKUA/30jNK1CZWcfANUVmFWfKJvCMH5CN5T76Qn2O94sRD9rKHfyPVsqAz/eLi2vd/qlz8c+j9Uf21Zw5duJn0amPvQYLIU5ipfvDs5cHardXZuE7ekK/Y/2uyTz7gCbzBN/PtClt9he7S/x6q0hmGGD3MeniEjgwRuZNTuIp1aMKxsE9ZUWQzthC/lmP/66jD7ohjislrog1fitFg/XpTW2gurMzXFu9kF2YCLsFlmMNbcQMW4QEsQxvM0mdlUjmvXFCn1Hn1ttpKqUop05yDwlLv/wLHOEE5 1 N N X n=1 ⇢ xn ˆ ✓ 1 xn 1 ˆ ✓ = 0 1 ˆ ✓ N X n=1 xn = 1 1 ˆ ✓ N X n=1 (1 xn) 1 ˆ ✓ ˆ ✓ = N PN n=1 xn PN n=1 xn 1 ˆ ✓ = N PN n=1 xn ˆ ✓ = 1 N N X n=1 xn

Slide 21

Slide 21 text

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. パラメータ 𝜃 に関する微分を⽤いて最適化する

Slide 22

Slide 22 text

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 標準ガウス分布 AAADe3icnVLdahNBFD7J2lrjT6PeCN4UQ0tS0jAbtIoiFPXCG7U/pi10apgdJ5uhsz/OTkLqsi/gC3jhlYIX4mN44wso9BHEywqCVPDsDwYNKjjLzpz5zvm++WY4TqhkZAg5KJWtY1PTx2dOVE6eOn1mtnr23GYUDDQXHR6oQG87LBJK+qJjpFFiO9SCeY4SW87e7TS/NRQ6koH/0OyHYtdjri97kjODULcaUo+ZPmcqvp/URzeoN2jSSLoeexS3k8bCTdrTjMd2EtPoiTZxm4ZynE8SKkYhVaJn6kt5ZX20hBqNLIvV41Kqpds3jUq3WiMtko25ycAughoUYzWofgMKjyEADgPwQIAPBmMFDCL8dsAGAiFiuxAjpjGSWV5AAhXkDrBKYAVDdA9nF3c7BerjPtWMMjbHUxT+GplzME8+kDfkkLwnb8kncvRHrTjTSL3s4+rkXBF2Z59d2Pj6T5aHq4H+mPVXzwZ6cC3zKtF7mCHpLXjOHz59frhxfX0+XiCvyGf0/5IckHd4A3/4hb9eE+svUD3Vv4Os/A01RvcKDw9QUSCS7tJXWMRzaFbjos/0xKR4Yxfx5k/sfxUZjCYUcyxtE/v3ppgMNtste7m1vHa5tnKraJgZuAiXoI5dcRVW4C6sQgd9fYSj0lRpuvzdqlmLVjMvLZcKznn4ZVhXfgAZ1NTW N(x; µ, 2) = 1 p 2⇡ 2 exp ✓ (x µ)2 2 2 ◆

Slide 23

Slide 23 text

22 Copyright 2024 NTT CORPORATION ガウス分布 (2) • データセット 𝒟 = 𝑥" , … , 𝑥# が与えられた場合、ガウス分布の 各パラメータの最尤推定量 2 𝜇 と 2 𝜎% は下記で計算できる • ベルヌーイ分布の場合と同様に、微分を⽤いて閉形式で求められる • 様々な好ましい性質 (計算のしやすさ等) があるため、連続値 データをモデル化する時に良く⽤いられる • 後述する深層⽣成モデルは全てガウス分布を⽤いる データの平均 データの分散 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= ˆ µ = 1 N N X n=1 xn, ˆ2 = 1 N N X n=1 (xn ˆ µ)2

Slide 24

Slide 24 text

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 AAADfHicnVLdahNBGP2S1bbGn8Z6I3hTjC2JNmE2lCiKULQX3qht07SFbhtmx8l26P51dxJSp/MCvoAXXil4IT6GN76ASB9BvKwgiIrf/qhoUMFZduebM+ecOTt8duiKWBJyWCgax46PjU+cKJ08dfrMZPns1Foc9CPGOyxwg2jDpjF3hc87UkiXb4QRp57t8nV793ayvz7gUSwCf1Xuh3zLo44veoJRiVC3vGd5VO4w6qp7ujq8YXn9OastHI/WZm9avYgyZfFhWK1ntalVE2l1pNW21arOqNuqbn5Ha1pZ8V4kVbVphQJJi1011PogYx5oXeqWK6RB0jE9Wph5UYF8LAXlT2DBAwiAQR884OCDxNoFCjE+m2ACgRCxLVCIRViJdJ+DhhJq+8jiyKCI7uLXwdVmjvq4TjzjVM3wFBffCJXTMEPekBfkiLwmL8k78vmPXir1SLLs42xnWh52Jx+db3/8p8rDWcLOT9VfM0vowbU0q8DsYYokf8Ey/eDh46P29ZUZNUuekfeY/yk5JK/wD/zBB/Z8ma88QffEfxFV2R1GWN3NM9xHR45Iskpu4TKeY6UcB3MmJ+r8jh3E535g/+tIYTjimGFJm5i/N8VosdZsmK1Ga3m+snArb5gJuAAXoYpdcRUW4A4sQQdzvYUvhbHCePGrccm4YtQzarGQa87BL8NofQMT29Qj N(x; µ, ⌃) = exp( 1 2 (x µ)T ⌃ 1(x µ)) p (2⇡)Dx |⌃| > 2次元のガウス分布を3Dプロットする コードをPythonで書いてください ChatGPTを使ってプロットしてみよう

Slide 25

Slide 25 text

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 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== p✓(x) = K X k=1 ⇡k N(x; µk, 2 k ) AAADaHicnVLLahRBFD2Z9hHHR9q4UHETMiREGYbqIIkEhGBcCEHMw0kC6clQ3al0ivSL7pohsZkf8AdcZKXgQvyMbPwBF/mE6M4RBHHhre7GEAcVrKa77j33nlOni+vEvkwVY8dDFePc+QsXhy9VL1+5em3EvD66lkadxBVNN/KjZMPhqfBlKJpKKl9sxInggeOLdWdvQdfXuyJJZRQ+VwexaAXcC+WOdLkiqG22bLUrFJ98OGXHsp1Zvbrtb0cqrefpIqVB5wysUw2n0gu4rmxl06fVEl3M0bvVtlljDZavscHAKoMayrUUmd9hYxsRXHQQQCCEotgHR0rPJiwwxIS1kBGWUCTzukAPVeJ2qEtQByd0j74eZZslGlKuNdOc7dIpPr0JMccwwT6yd6zPPrD37IT9+KNWlmtoLwe0OwVXxO2Rl7dWv/2TFdCusHvK+qtnhR08yL1K8h7niP4Lt+B3X7zqr86tTGST7A37TP5fs2N2RH8Qdr+6b5fFyiGpa/3HxCruMKHoaenhGSkKQnSmb+EenWPnPR751Cf2yjv2CK//wv5XkWN/QLHA9JhYvw/FYLA23bBmGjPL92vzj8qBGcYdjGOKpmIW83iCJTTJ1xFO8AX9yifDNG4at4vWylDJuYEzyxj/CXuMzig= ✓ = (⇡1, . . . , ⇡K, µ1, . . . , µK, 2 1 , . . . , 2 K )

Slide 26

Slide 26 text

25 Copyright 2024 NTT CORPORATION ガウス混合モデル (2) • この場合のパラメータ 𝜃 は、閉形式で求めることができない • EMアルゴリズム [A1] や変分ベイズ [A2] を⽤いて最適化する (省略) • 混合数 𝐾 の決定が難しいため、変分ベイズを⽤いるのがおすすめ [A3] EM Algorithm Variational Bayes 𝐾 = 5 の場合 EMアルゴリズムの場合、クラスタ を無理やり分割してしまう 変分ベイズの場合、適切なクラスタ 数を選択することができる

Slide 27

Slide 27 text

26 Copyright 2024 NTT CORPORATION まとめ: ⽣成モデルの基礎 • 従来の⽣成モデルは、データに対して適切なモデルを選択し、 最尤推定を⾏う • 例えばコインのような⼆値データであれば、ベルヌーイ分布が最適 • 連続値データならガウス分布やガウス混合モデルを⽤いることが多い • 理想的には、𝐾 = ∞ のガウス混合モデルで何でも表現できるはず • では、より複雑なデータに対して適切なモデルはあるのか︖ • 画像のような複雑なデータになると、ガウス混合モデルでは対応できない • 深層学習の登場以降、⽣成モデルは⾶躍的に発展し、画像のような複雑な データのモデリングが可能になった • 以降では、深層学習を⽤いた⽣成モデルを紹介する

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

28 Copyright 2024 NTT CORPORATION B. 深層⽣成モデル (70分)

Slide 30

Slide 30 text

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]

Slide 31

Slide 31 text

30 Copyright 2024 NTT CORPORATION 深層学習について • 任意の関数 𝑦 = 𝑓$ (𝑥) を近似するための⼿法 • 例えば、隠れ層が2層のニューラルネットワーク (NN) は下記 𝑥 𝑦 ℎ0 ℎ7 𝑊8 , 𝑏8 𝑊7 , 𝑏7 𝑊0 , 𝑏0 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 ✓ = (W1, W2, W3, b1, b2, b3) ここで、パラメータは下記 活性化関数 (シグモイド関数など) 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 h1 = ' (W1x + b1) h2 = ' (W2h1 + b2) y = W3h2 + b3

Slide 32

Slide 32 text

31 Copyright 2024 NTT CORPORATION 補⾜: シグモイド関数 [0,1] でバウンドされた⾮線形関数 °10 °5 0 5 10 x 0.0 0.2 0.4 0.6 0.8 1.0 '(x)

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

33 Copyright 2024 NTT CORPORATION Variational Autoencoder (1) • Variational Autoencoder (VAE) [B1] は、データ 𝑥 の確率 𝑝$ (𝑥) を、低次元の潜在変数 𝑧 を⽤いて下記で推定する • 𝑥 が連続値の時、デコーダと事前分布は下記で定義される AAADPnicnVLLahRBFD1pH0nGRyZmE3AzOCTMiAw1URIRAsFk4UbMw0kC6TBUdyozRfpFd82QTGd+ID8gwVUCWYgfoeAmfoCL/IAgIi4iKOLCW92Nr8EIVtNVt07dc+rU5VqBIyPF2Emfce78hYv9A4O5S5evXB3KD19bjvxWaIua7Tt+uGrxSDjSEzUllSNWg1Bw13LEirU1q89X2iKMpO89VjuBWHd5w5Ob0uaKoHr+dlCPTdUUindL2+XpcVN6qvArttspB6VO2XS5aoZuvNHt5Or5IquwZBR6g2oWFJGNeT//FSY24MNGCy4EPCiKHXBE9K2hCoaAsHXEhIUUyeRcoIsccVuUJSiDE7pFc4N2axnq0V5rRgnbplsc+kNiFjDG3rBn7JQds+fsHfv2V6040dBedmi1Uq4I6kN7o0uf/8lyaVVo/mSd6VlhE3cTr5K8BwmiX2Gn/HbnyenSvcWxeJwdsvfk/4CdsFf0Aq/9yT5aEItPSV3rzxErrWFI0cPMwyNSFITona7CTbrHTHIa5FPf2M1q3CD81g/sfxU5tnsUU0y3SfXPpugNlicq1cnK5MKd4sz9rGEGcB03UKKumMIMHmAeNfK1jxc4xmvjpfHW+GB8TFONvowzgt+G8eU71bvBQA== p✓(x) = Z p✓(x|z)p(z)dz 事前分布 デコーダ 標準ガウス分布 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= p✓(x|z) = N(x; µ✓(z), 2 ✓ (z)), p(z) = N(z; 0, I) ガウス分布の平均と分散を推定するNN この部分をモデル化 AAADLHicnVJPSxtBHH2uttq01rS9FLzEBiWREiZSrBQEUQ9eiv8aFYyE3XWMg/uP3UnQxJwFv4AHTwoepLTH9gN48QO0Bym9FsSjgiAe/M3uYqnBFjrL7rx583tv3g4/w7NEIBk7adFa2x48bO94lHj8pPNpV/LZ87nArfgmL5iu5foLhh5wSzi8IIW0+ILnc902LD5vrI2p/fkq9wPhOh/khseXbL3siBVh6pKoUrLHy6xn+4aLwpEpgpu1rJepZYu2Lld9u77cqCVKyTTLsXCkmkE+BmnEY8pNXqGIZbgwUYENDgeSsAUdAT2LyIPBI24JdeJ8QiLc52ggQdoKVXGq0Ildo2+ZVosx69BaeQah2qRTLHp9UqbQy76zQ3bOjtlHdsqu7/Wqhx4qywbNRqTlXqlr++Xs5T9VNs0Sq79Vf80ssYKhMKug7F7IqL8wI321tnM++26mt97H9tkZ5d9jJ+yI/sCpXpgH03xml9yV/zipojv0Cb2PM0ySIydGrdQt9NM5xbCmTDnViY34jsvEv77l/tdRx3qTY8SpNsnfbYpmMDeQyw/mBqffpEdG44bpQDdeIUNd8RYjmMAUCpRrC5/wBV+1z9o37Yf2MyrVWmLNC/wxtF835Im4+g== p(x) = Z p(x|z)p(z)dz

Slide 35

Slide 35 text

34 Copyright 2024 NTT CORPORATION Variational Autoencoder (2) • VAEは無限個のガウス混合モデルとみなせる • 事前分布 𝑝(𝑧) からのサンプル Q 𝑧ℓ ごとにガウス分布が決まる • 積分は 𝐿 → ∞ のため、無限個のガウス混合モデルとみなせる • この対数尤度を計算したいが、積分を含むため計算が難しい • 正確に計算するためには⼤量に Q 𝑧ℓ をサンプルする必要があり、計算効率 が⾮常に悪い 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= p✓(x) ' 1 L L X `=1 N(x; µ✓( ˜ z`), 2 ✓ ( ˜ z`))

Slide 36

Slide 36 text

35 Copyright 2024 NTT CORPORATION Variational Autoencoder (3) • そこで、対数尤度関数の代わりに下記の変分下界を最⼤化する 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== 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 (後述) AAADJ3icnVK/SxxBGH1uNNGLxjNpBC2OHIoGOeaCGLEStbCR+OtU8OTYXcdzcPZHdvcOvcs1lv4DFlYKgpIq+Rds7FIlxNJSLBWEkMJvdhfFHIngLDvzfW++9+bN8BmuFH7A2FmD9qyx6fmL5pbEy9a2V+3JjtcLvlPyTJ4zHel4S4bucylsngtEIPmS63HdMiRfNDbG1f5imXu+cOz5YMvlK5ZetMWaMPWAoEKyu1Ko5rmUtd68L6zUJ8rcdVHrq3ze7E8UkmmWYeFI1QfZOEgjHtNO8jfyWIUDEyVY4LARUCyhw6dvGVkwuIStoEqYR5EI9zlqSBC3RFWcKnRCN2guUrYcozblStMP2SadIun3iJlCD/vBjtkVO2Vf2AX780+taqihvGzRakRc7hbadzrnbh5lWbQGWL9n/ddzgDUMh14FeXdDRN3CjPjlyu7V3MhsT7WXHbBL8r/PztgJ3cAuX5uHM3x2j9SV/gSxojf0KJqKPXwkRU6IytQrvKNz8mFNkXyqE2vxGxcJH7jDnqqoY7NOMcJUm2T/bor6YOF9JjuUGZoZTI+OxQ3TjC68RR91xQeMYhLTyJGvbRzhK75px9p37af2KyrVGmLOGzwY2vktO7S3uQ== z` ⇠ q (z|x) ガウス分布同⼠だと 閉形式で計算可能

Slide 37

Slide 37 text

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) 𝑞で積分したほうが 計算効率が良い 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== 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)

Slide 38

Slide 38 text

37 Copyright 2024 NTT CORPORATION 補⾜: Jensenの不等式 • 分布 𝑝(𝑥) による log(𝑥) の期待値は下記の上界を持つ: 証明: log(𝑥) の 𝑥∗ = 𝔼: ! 𝑥 における接線 𝑔(𝑥) = 𝑎 + 𝑏𝑥 を⽤いて下記が成⽴1 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= E p(x) [log(x)]  log(E p(x) [x]) 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 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]) AAADFHicnVJNKwVRGH6M7+vrYqNs5Ea+up0rIaWEhY18XtQlzYxjTObOTDNzb5ebP2CPhSLKQv6CnZSVnYWfIEtKycJ7ZibihnKmmfOe57zPc57zzqvYhu56jN0XScUlpWXlFZWRquqa2rpofcOCa2UclSdVy7CcJUV2uaGbPOnpnsGXbIfLacXgi8rmmNhfzHLH1S1z3tuy+Upa1kx9XVdlj6CU1pHrbB+Wu5VcZDUaY3Hmj5bCIBEGMYRj2oq+YhlrsKAigzQ4THgUG5Dh0pNCAgw2YSvIE+ZQpPv7HDuIEDdDWZwyZEI36avRKhWiJq2FpuuzVTrFoNchZgva2B07Z0/shl2wB/b2o1be1xBetmhWAi63V+t2m+Ze/mSlafaw8cn61bOHdQz6XnXybvuIuIUa8LPbB09zQ7Nt+XZ2yh7J/wm7Z1d0AzP7rJ7N8NlDUhf648QKauhQNBl6mCJFTohYiSp00TnLfo5GPsWJO2GNNcJ7PrD/KsrIFSgGmGiTxPemKAwWeuOJ/nj/TF9sZDRsmAo0oxUd1BUDGMEEppH0/+sejnAs7UuX0pV0HaRKRSGnEV+GdPsOsrGvXg== g(x) = a + bx AAADIXicSyrIySwuMTC4ycjEzMLKxs7BycXNw8vHLyAoFFacX1qUnBqanJ+TXxSRlFicmpOZlxpaklmSkxpRUJSamJuUkxqelO0Mkg8vSy0qzszPCympLEiNzU1Mz8tMy0xOLAEKxQuIxeTkp2tUxFVr1Wqq2cJYXPECygZ6BmCggMkwhDKUGaAgIF/gF0MMQwpDPkMyQylDLkMqQx5DCZCdw5DIUAyE0QyGDAYMBUCxWIZqoFgRkJUJlk9lqGXgAuotBapKBapIBIpmA8l0IC8aKpoH5IPMLAbrTgbakgPERUCdCgyqBlcNVhp8NjhhsNrgpcEfnGZVg80AuaUSSCdB9KYWxPN3SQR/J6grF0iXMGQgdOF1cwlDGoMF2K2ZQLcXgEVAvkiG6C+rmv452CpItVrNYJHBa6D7FxrcNDgM9EFe2ZfkpYGpQbOBpoPMdwHqgoRhEZDlC3WDP9DEVKAIiAcKBS2gPTFgNelAd4JsrIWGcTpQXAcuRq6JiQwVGCZCxEDJxBA9UWAywoz0DM30zAJNlB2coAmGg0GaQYlBA5gqzBkcGDwYAhhCge6qYVjEsJphDdNippNMF5guQZQyMUL1CDOgAKbbAM1vs/4= log(x⇤) = g(x⇤) 1. https://x.com/daiti_m/status/1798336240858849432 AAADMnicnVLPa9RAGH2NWuuq7VYvgpfSpbWWssxKqSIIxSp4Kf3ltoXNdknibHZofpHMLltD/gGhZw+eFDyIx/ZYT178B3pob+JJ9FZBEA9+kwTFLrXghMx88+Z7b958fGbgiEgydtCnnTl7rv/8wIXCxUuXB4eKw1dWI78dWrxq+Y4frptGxB3h8aoU0uHrQcgN13T4mrk5p87XOjyMhO89llsBr7uG7YmmsAxJUKN4o7sRTybj93TXkC3TjB8mjTiY6N5MdIc3Za2rh8JuyXqhUSyxMkvHSG9QyYMS8rHoF39AxxP4sNCGCw4PkmIHBiL6aqiAISCsjpiwkCKRnnMkKBC3TVmcMgxCN2m2aVfLUY/2SjNK2Rbd4tAfEnMEY2yfvWFH7AN7yz6znydqxamG8rJFq5lxedAYenZt5fupLJdWidYf1j89SzRxJ/UqyHuQIuoVVsbvPH1+tHJ3eSweZ6/YF/L/kh2w9/QCr/PNer3El1+QutJ/QKyshiFF87mHBVLkhKidqsIk3aOnOTb5VDcmeY1twqd+Y/+raKDbo5hhqk0qx5uiN1i9Va7MlGeWpkuz9/OGGcB1jGKCuuI2ZvEIi6iSr23sYA/vtF3tUPuofcpStb6ccxV/De3rL2vvvFE= x⇤ = E p(x) [x] AAADEXicnVJNL8RQFD3qa4yvwUZiIyYEkckbEcRKsLARn8MkRqStpxqdtmk7k2HiD1iysGBDYiF+gZ2wkVhb+AliSSIRC/e1DWGCxGv63n3n3XPeeTdXsQ3d9Ri7L5PKKyqrqiM10dq6+obGWFPzomvlHJWnVMuwnLQiu9zQTZ7ydM/gadvhclYx+JKyOS7Ol/LccXXLXPC2bL6SlTVTX9dV2SMonTEsrbvQE12NxVmC+aO9NEiGQRzhmLFir8hgDRZU5JAFhwmPYgMyXPqWkQSDTdgKioQ5FOn+OccOosTNURanDJnQTZo12i2HqEl7oen6bJVuMeh3iNmOTnbHztgTu2Hn7IG9/ahV9DWEly1alYDL7dXG3db5lz9ZWVo9bHyyfvXsYR3DvledvNs+Il6hBvz89sHT/MhcZ7GLnbBH8n/M7tk1vcDMP6uns3zukNSF/gSxgho6FE2FHqZJkRMidqIKvXRPxs/RyKe4cSessUZ43wf2X0UZhRLFABNtkvzeFKXBYn8iOZgYnB2Ij46FDRNBGzrQTV0xhFFMYgYp39ceDnEk7UsX0qV0FaRKZSGnBV+GdPsOuGaurg== log(x)

Slide 39

Slide 39 text

38 Copyright 2024 NTT CORPORATION Variational Autoencoder (4) • エンコーダはガウス分布でモデル化される • この時、エンコーダからのサンプルは下記で計算できる • Reparameterization Trickと呼ばれる⼿法 [B1] • エンコーダを勾配法で最適化するために必要 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== q (z|x) = N(z; µ (x), 2(x)) AAADe3icnVLdatRAGP1209a6VbvWG8Gb4tJlW5dlttgqilDUC72w9sdtC526TNJpdugkGZLZpW3IC/gCXnhVwQvxMbzxBSz0EYqXFQSp4DdJVOyihU5I5psz55w5GT5bSRFpQg4LRWtgcOjC8MXSyKXLV0bLV8dWoqAbOrzlBDII12wWcSl83tJCS76mQs48W/JVe/uR2V/t8TASgf9C7yq+4THXF1vCYRqhdlnttWPKpUyqD6jXxVp1RFLbmbxFuYqEREq2TYPNQNNIuB7LSS/jaUOk9BSziiyPekx3HCbj+aT2a/8+qT+dLLXLFdIg6RjvL5p5UYF8LATl70BhEwJwoAsecPBBYy2BQYTPOjSBgEJsA2LEQqxEus8hgRJqu8jiyGCIbuPXxdV6jvq4Np5RqnbwFIlviMpxmCCfyXtyTD6RD+SInPzTK049TJZdnO1My1V79NX15W9nqjycNXT+qP6bWcMW3E2zCsyuUsT8hZPpe3uvj5fvLU3EVfKWfMH8++SQfMQ/8HtfnXeLfOkNuhv/x6jK7jDE6lme4Tk6ckTMytzCFJ5DU46LOc2JSX7HLuL139h5HRns9DlmmGmT5umm6C9WphvN2cbs4u3K3MO8YYbhBtyEGnbFHZiDJ7AALcx1ACeFwcJQ8YdVsaasekYtFnLNNfhrWDM/Abf31Vc= z` = µ (x) + ✏` 2(x) ✏` ⇠ N(✏; 0, I)

Slide 40

Slide 40 text

39 Copyright 2024 NTT CORPORATION Variational Autoencoder (5) 𝑥 𝜇; 𝑥 𝜎; 7 𝑥 𝜎3 7 𝑧 𝜇3 𝑧 𝑧 𝑞; 𝑧 𝑥 = 𝒩 𝑧; 𝜇; 𝑥 , 𝜎; 7 𝑥 𝑝3 (𝑥|𝑧) = 𝒩 𝑥; 𝜇3 𝑧 , 𝜎3 7 𝑧 𝑝 𝑧 KL 𝜙 𝜃 NN NN

Slide 41

Slide 41 text

40 Copyright 2024 NTT CORPORATION Variational Autoencoder (6) データセット 𝒟 = 𝑥7, … , 𝑥8 に対して、 下記の変分下界を最⼤化することでVAEを学習できる AAADqnicnVLLbtNAFL2uKS3h0QAbJDYRUSsbQjSuSkEgpPKSkCiiTUlaFJdo7E4cq+NH7HGUxvEP8AMsWCCQWCA+gw0/wKKfgFgWCQmx4PoBCCJAYizP3HvmnjNnRtfwuR0KQvalKfnQ9OGZ2SOlo8eOn5grnzzVCr0oMFnT9LgXbBk0ZNx2WVPYgrMtP2DUMTjbNHZvpfubAxaEtuc+FHs+23ao5dpd26QCoU75ue5Q0TMpj1eTTpwlgRO3btxJEmV4TRc9JmhN93u2uqCzfmQP9G5AzVhLsF4PIwc5jPPrWvI4BbhnVXyEMhoKjEf5fqJe/C59bzVR+oiiZKKMxkN1PPaVkarqnPUn+GqpU66SOslGZTLQiqAKxVjzyl9Ahx3wwIQIHGDggsCYA4UQvzZoQMBHbBtixAKM7GyfQQIl5EZYxbCCIrqLs4VZu0BdzFPNMGObeArHP0BmBebJe/KaHJB35A35QL7+USvONFIve7gaOZf5nbknZzY+/5Pl4Cqg95P1V88CunAl82qjdz9D0luYOX8wenqwcbUxHy+Ql+Qj+n9B9slbvIE7+GS+WmeNZ6ie6t9GVv6GAUb3Cw8PUJEhkmbpK5zHc/SsxkKf6YlJ8cYW4rUf2P8qUhhOKOZY2iba700xGbQW69pyfXl9qbpys2iYWTgL50DBrrgMK3AX1qAJpjQtXZCWpEtyTW7Ij+R2XjolFZzT8MuQd74By9zmPw== LVAE(x; ✓, ) ⌘ 1 L L X `=1 log p✓(x|z`) KL(q (z|x)||p(z))  log p✓(x) 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= max ✓, 1 N N X n=1 LVAE(xn; ✓, ) • 深層⽣成モデルは対数尤度の計算が難しい • VAEのように、いかに効率的に対数尤度を計算するかが重要 ガウス分布同⼠だと 閉形式で計算可能

Slide 42

Slide 42 text

41 Copyright 2024 NTT CORPORATION Variational Autoencoder (7) VAEで⽣成したMNIST (⼿書き数字) の画像 (2013年時点) [B1] ⽣成⼿順: 1. 事前分布 𝑝(𝑧) から 𝑧ℓ を ⽣成 2. デコーダ 𝑝3 (𝑥|𝑧ℓ ) から データを⽣成する AAADZ3icnVLLahRBFD2Z9hHHx0wUJOAmOiQkEoaaEKIoQlAXbtQ8nCSQjkN1W+kpUv2gu2ZI0s4P+AMuXCm4EP9CN/6Ai/yBwZVGEMSFt7qbiTqoYDXdde+595w6XVwnUjLRjO0NlawjR48dHz5RPnnq9JlKdeTsShJ2Ylc03VCF8ZrDE6FkIJpaaiXWolhw31Fi1dm6ZeqrXREnMgwe6J1IbPjcC+SmdLkmqFW1o1Zq67bQvDe5/XiXEqFUb2rihu1z3Xa5Su9R4brtdw77+l3TdiI9n/crD9OZn6pT5Va1xuosW2ODQaMIaijWQlj9BhuPEMJFBz4EAmiKFTgSetbRAENE2AZSwmKKZFYX6KFM3A51CerghG7R16NsvUADyo1mkrFdOkXRGxNzDOPsPXvFDtg79prts+9/1EozDeNlh3Yn54qoVXkyuvz1nyyfdo32IeuvnjU2cTXzKsl7lCHmL9yc3919erB8bWk8nWAv2Efy/5ztsbf0B0H3i/tyUSw9I3Wjf5tY+R3GFN0tPNwnRUGIycwtXKZz7KzHI5/mxF5xxx7h033sfxU5tgcUc8yMSeP3oRgMVmbqjbn63OJsbf5mMTDDuIBLmKSpuIJ53MECmuTrDT7gEz6X9q2Kdd4azVtLQwXnHH5Z1sUfxvbO9g== p✓(x|z`) = N(x; µ✓(z`), 2 ✓ (z`)) NOTE: VAEは学習しやすいが、他のモデルと⽐べて⽣成品質は低い

Slide 43

Slide 43 text

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を学習する

Slide 44

Slide 44 text

43 Copyright 2024 NTT CORPORATION Generative Adversarial Network (2) • 真の分布を 𝑝∗(𝑥)、低次元の標準ガウス分布を 𝑝(𝑧) とする • また、Generator を 𝐺(𝑧)、Discriminator を 𝐷(𝑥) とする • この時、𝐺 と 𝐷 は下記の⽬的関数の最適化で学習できる • 𝐷 に関する最⼤化と 𝐺 に関する最⼩化を交互に⾏う 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== min G max D V (D, G) = E p⇤(x) [log D(x)] + E p(z) [log(1 D(G(z)))] 2クラス分類の⽬的関数 データ 𝑥 と⽣成データ 𝐺(𝑧) を識別できるように学習 𝐷 を騙すように 𝐺 を学習

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

45 Copyright 2024 NTT CORPORATION Generative Adversarial Network (4) GANで⽣成したMNISTとCIFAR10 (2014年時点) [B2] NOTE: • GANはデータの⽣成はできるが、データの確率は推定できない • また、⽣成品質は⾼いが、学習が不安定という問題がある

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

48 Copyright 2024 NTT CORPORATION Flow-based Model (3) • 全単射の例として、下記のCoupling Layers [B3,B5] を考える • この時、ヤコビ⾏列は下記で計算できる • 下三⾓⾏列となるので、⾏列式が簡単に計算できる AAAErnicnVLLbtNAFL0xBtrwaAobJDYWUasEUBgjVEokpAq6gAWiD5JWqiNr7EycUf3SeBIltfwD/AALVlRigfgMNvwAi34CYlkkJMSCa8eioWmg6li275y559xzR9cKXR5JQg4Kyjn1/IWLM7PFS5evXJ0rzV9rRkFP2KxhB24gti0aMZf7rCG5dNl2KBj1LJdtWbtP0/OtPhMRD/xXchiylkcdn3e4TSVC5nxh3+gIasdGSIXk1NX2kqN4kDw2XNaRO4bFHO7HVAg6TGLbTrTjLDPW6+1knJsj2uKpctt39PqqGQ+SJDGMExhj56esMY0xhmsG89t5V4bgTle2pjb8HJlpIXI2ex6VXeHFbU6dpGKwQViJzNiQXSZpUskTq9XqCY6KRbNUJjWSLW0y0POgDPlaC0o/wYA2BGBDDzxg4IPE2AUKET47oAOBELEWxIgJjHh2ziCBInJ7mMUwgyK6i18Hdzs56uM+1Ywyto1VXHwFMjVYIF/IB3JIPpOP5Cv5NVUrzjRSL0P8WyMuC8251zc2f/yX5eFfQveI9U/PEjqwnHnl6D3MkLQLe8Tv77053KxvLMSLZJ98Q//vyAH5hB34/e/2+3W28RbVU/1VZI3uUGD0IvfwEhUZIukuvYXbWMfIchz0mVZM8jt2EL/7BzurIoXBhOIIS8dEPz4Uk0Hzfk1fqi2tPyivPMkHZgZuwi2o4FQ8hBV4BmvQAFuZVe4py8ojlahNtaWao1SlkHOuw19L7f4GKi5H/A== @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つに区切る 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== z1:d = x1:d zd+1:Dx = xd+1:Dx exp(s✓(x1:d)) + t✓(x1:d) 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== 2 6 4 exp(s✓(x1:d))1 0 ... 0 exp(s✓(x1:d))d 3 7 5

Slide 50

Slide 50 text

49 Copyright 2024 NTT CORPORATION Flow-based Model (4) • よって、log 𝑝$ (𝑥) は下記で計算でき、最尤推定が可能 • データ⽣成は、逆関数を⽤いてノイズ 𝑧 ~ 𝑝(𝑧) から変換する AAAED3icnVLLahRBFL2d9hHHRya6EdwMDgndKkO1SJSAENSFGzEPJwmkQlPTU9NTSb/orhkmdvoHXOlK1JWCC/ED3IngRj/ART5BXEYQxIW3uluNmSSC1XTVrVP3nHOruK3IE4kkZEsb0Q8dPnJ09Fjl+ImTp8aq46cXk7AXO7zphF4YL7dYwj0R8KYU0uPLUcyZ3/L4Umv9pjpf6vM4EWFwT25EfNVnbiA6wmESIXtc06kXurXITqnscskyY2BOXi8wo7MTNS8qlHq8Izdpm8s8MqjPZDf207ZgbmZQPoiMZAfLTq3pdmaaJo2F25XlsknpQR6FzC9lGWe7XPY0QIv9RZOeb6dr2R5EBVfsap00SD5qw4FVBnUox2xY/Q4U2hCCAz3wgUMAEmMPGCT4rYAFBCLEViFFLMZI5OccMqggt4dZHDMYous4u7hbKdEA90ozydkOunj4x8iswQT5RF6RbfKBvCafyY99tdJcQ9WygWur4PLIHntwduHbP1k+rhK6f1gH1iyhA9fyWgXWHuWIuoVT8Pv3H28vTM9PpJPkBfmC9T8nW+Q93iDof3VezvH5Z6iu9G8hq3jDGKM7ZQ13UZEjonbqFS6gD81zXKxTOWblG7uIX/qN/a8ig8GQYoGpNrF2N8VwsHi5YU01puau1GdulA0zCufgPBjYFVdhBm7DLDTB0da0h9oT7an+SH+jv9XfFakjWsk5A38N/eNPMAELWw== 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 AAADL3icnVLLShxBFD22iY8x0VE3QjbiRBmDDDUiKoKgJotsxFdGBVuG7rYcG/tFdc2gDvMD/oALVwlkEdyYpW7d5AeCuBG3kqWBQHDhre4mIQ5GsJruOnXqnlOni2sGjh1Kxi4atMZnz5uaW1pTbS9etnekO7uWQ78sLF6wfMcXq6YRcsf2eEHa0uGrgeCGazp8xdx+q/ZXKlyEtu99kLsBX3eNkmdv2pYhiSqmX+sbXGZ1vhNkpwcHByYjpLuG3BJuVYqaYlPFdIblWDR660E+ARkkY95P/4aODfiwUIYLDg+SsAMDIT1ryIMhIG4dVeIEITva56ghRdoyVXGqMIjdpm+JVmsJ69FaeYaR2qJTHHoFKXvRz76zL+yGfWNH7JrdPuhVjTxUll2azVjLg2LHfs/Sr0dVLs0SW39V/80ssYnxKKtN2YOIUX9hxfrK3sHN0sRif3WAfWI/KP9HdsHO6A+8yk/r8wJfPCR35f+OVPEdCkKzSYY5cuTEqJW6hTd0jh7VlCinOrGW3HGJ+KE/3FMdDezUOcacapP8/aaoB8vDufxobnRhJDM1kzRMC16hD1nqijFM4T3mUaBc+zjGCU61r9q5dqldxaVaQ6Lpxj9Du74DThK5Zw== det(exp(A)) = exp(tr(A)) 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= x1:d = z1:d xd+1:Dx = (zd+1:Dx t✓(x1:d)) exp( s✓(x1:d))

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

51 Copyright 2024 NTT CORPORATION Diffusion Model (1) • Diffusion Model [B4] は、𝑇 ステップかけて元のデータ 𝑥. に ノイズを徐々に加え、ガウス分布に従うノイズに変換する⼿法 • ノイズを加える順⽅向の過程を拡散 (Diffusion) と呼ぶ • その逆変換を⾏うことで、ノイズから元のデータを復元できる • ノイズを除去する逆⽅向の過程をノイズ除去 (Denoising) と呼ぶ ! AAAB+HicbVBNSwMxEJ2tX7V+dNWjl2ARPJXdKuix6MVjBfsB7VKyaXYbmk2WJKvU0l/ixYMiXv0p3vw3pu0etPXBwOO9GWbmhSln2njet1NYW9/Y3Cpul3Z29/bL7sFhS8tMEdokkkvVCbGmnAnaNMxw2kkVxUnIaTsc3cz89gNVmklxb8YpDRIcCxYxgo2V+m65x6WIFYuHBislH/tuxat6c6BV4uekAjkafferN5AkS6gwhGOtu76XmmCClWGE02mpl2maYjLCMe1aKnBCdTCZHz5Fp1YZoEgqW8Kgufp7YoITrcdJaDsTbIZ62ZuJ/3ndzERXwYSJNDNUkMWiKOPISDRLAQ2YosTwsSWYKGZvRWSIFSbGZlWyIfjLL6+SVq3qn1drdxeV+nUeRxGO4QTOwIdLqMMtNKAJBDJ4hld4c56cF+fd+Vi0Fpx85gj+wPn8AXOGk5o= xT ! · · · ! xt ! xt 1 ! · · · ! x0 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== p✓(xt 1 |xt) AAACEnicbVC7SgNBFJ2Nrxhfq5Y2g0FICsNuFEwZsLGMYB6QLMvsZDYZMvtg5q4Y1nyDjb9iY6GIrZWdf+Mk2SImHrhwOOde7r3HiwVXYFk/Rm5tfWNzK79d2Nnd2z8wD49aKkokZU0aiUh2PKKY4CFrAgfBOrFkJPAEa3uj66nfvmdS8Si8g3HMnIAMQu5zSkBLrlmO3R4MGZBSLyAw9Pz0YeKmcG5P8CNekKDsmkWrYs2AV4mdkSLK0HDN714/oknAQqCCKNW1rRiclEjgVLBJoZcoFhM6IgPW1TQkAVNOOntpgs+00sd+JHWFgGfq4kRKAqXGgac7p0eqZW8q/ud1E/BrTsrDOAEW0vkiPxEYIjzNB/e5ZBTEWBNCJde3YjokklDQKRZ0CPbyy6ukVa3YF5Xq7WWxXsviyKMTdIpKyEZXqI5uUAM1EUVP6AW9oXfj2Xg1PozPeWvOyGaO0R8YX7+bCp4F q(xt |xt 1) AAACC3icbVC7TgJBFJ31ifhatbSZQEywkOyiiZQkNpaYyCMBspkdZmHC7MOZu0ay0tv4KzYWGmPrD9j5N87CFgieZJIz59ybe+9xI8EVWNaPsbK6tr6xmdvKb+/s7u2bB4dNFcaSsgYNRSjbLlFM8IA1gINg7Ugy4ruCtdzRVeq37plUPAxuYRyxnk8GAfc4JaAlxyzclbo+gaHrJQ8TB/AjnvsmcGZPTh2zaJWtKfAysTNSRBnqjvnd7Yc09lkAVBClOrYVQS8hEjgVbJLvxopFhI7IgHU0DYjPVC+Z3jLBJ1rpYy+U+gWAp+p8R0J8pca+qyvTRdWil4r/eZ0YvGov4UEUAwvobJAXCwwhToPBfS4ZBTHWhFDJ9a6YDokkFHR8eR2CvXjyMmlWyvZ5uXJzUaxVszhy6BgVUAnZ6BLV0DWqowai6Am9oDf0bjwbr8aH8TkrXTGyniP0B8bXL+1hmu8=

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

53 Copyright 2024 NTT CORPORATION Diffusion Model (3) • この時、変分下界は下記で求められる AAAEvnicnVLLbtNAFL0xBkp4NIUNiE1E1CrhEY0RKqioIoIgFYmK9JG2UiaybHfiWPUr9iRKMf4BfoAFK5BYIHb8Aht+gEU/AbEsEhJiwR3bFLUJpepY9tw5d865Z65H920r5ITs5KQT8slTpyfO5M+eO39hsjB1cS30+oHBmoZne8GGroXMtlzW5Ba32YYfMM3Rbbaubz0S+fUBC0LLc1f5ts/ajma6VscyNI6QOpX7SG3PLPpqRHmXcS0uD9WIxJWZeYFTy+UHc3OrcYU6Gu8GTrQZI6IgQmlGEAldjx7HatQrZ8kXqWRMbdbhLdoJNCMaIxqPYQSW2eVtVKcm6x1FXHg4VoH5I6oXfZFDtRs07DtqxIUzJR5XlN9SEgG+V5qna8T3nY31+tYgqW9odvQUDfxpcL3eWIyzf3I/la7k1UKJVEkyiqOBkgUlyEbDK/wECpvggQF9cICBCxxjGzQI8WmBAgR8xNoQIRZgZCV5BjHkkdvHXQx3aIhu4dfEVStDXVwLzTBhG1jFxjdAZhGmyRfynuySz+QD+Up+/VMrSjSEl22c9ZTLfHXy5eWVH/9lOThz6P5lHeqZQwfuJV4t9O4niDiFkfIHz1/trswtT0cz5C35hv7fkB3yCU/gDr4b75bY8mtUF/p1ZKU9DDBazDw8Q0WGiFiJLlzHOjTZY6JPUTHOemwifnMPO66iBsMRxRQT10Q5eClGg7XbVWW2Ort0p1R7mF2YCbgK16CMt+Iu1GABGtAEQ7oiPZAWpCdyTe7IjuylW6VcxrkE+4Y8/A2itlAb 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の不等式: 対数と和 (期待値) の交換

Slide 55

Slide 55 text

54 Copyright 2024 NTT CORPORATION Diffusion Model (4) • この変分下界を式変形すると、下記のように簡略化できる • 各時刻 𝑡 のデータ 𝑥> に付加されるノイズをNN 𝜖3 で推定できるよう学習 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 LDDPM(x0; ✓) / E U(t),p(✏) h ✏ ✏✓ p ¯ ↵tx0 + p 1 ¯ ↵t✏, t 2 i 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== ↵t = 1 t ¯ ↵t = t Y s=1 ↵s

Slide 56

Slide 56 text

55 Copyright 2024 NTT CORPORATION Diffusion Model (5) • データ 𝑥. の⽣成は下記の⼿順で⾏われる ガウス分布からノイズ 𝑥$ を⽣成 𝑇 ステップかけてノイズを除去

Slide 57

Slide 57 text

56 Copyright 2024 NTT CORPORATION Diffusion Model (6) Diffusion Modelで⽣成したCelebAとCIFAR10 (2020年時点) [B4] NOTE: • Diffusionは⾮常に⽣成品質が⾼く、2024年時点でデファクトスタンダード • ⼀⽅で、ステップサイズ 𝑇 を⼤きくする必要があり、計算量が⼤きい

Slide 58

Slide 58 text

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

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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.

Slide 61

Slide 61 text

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.

Slide 62

Slide 62 text

61 Copyright 2024 NTT CORPORATION C. ⾔語モデル (40分)

Slide 63

Slide 63 text

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

Slide 64

Slide 64 text

63 Copyright 2024 NTT CORPORATION ⾔語モデルの進化 (2017 - 2023) https://x.com/DrJimFan/status/1651968203701231616

Slide 65

Slide 65 text

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

Slide 66

Slide 66 text

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

Slide 67

Slide 67 text

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

Slide 68

Slide 68 text

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 . 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 . Self-Attentionの例: makingとmore difficultが関連していると判断 [B1]

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

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

Slide 71

Slide 71 text

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

Slide 72

Slide 72 text

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

Slide 73

Slide 73 text

72 Copyright 2024 NTT CORPORATION C+. Hugging Face⼊⾨

Slide 74

Slide 74 text

73 Copyright 2024 NTT CORPORATION 背景: 簡単に⾔語モデルを扱いたい • 従来の⾔語モデルの利⽤⼿順は以下の通り複雑だった 1. PyTorch/TensorFlowでベースとなるモデルを実装 2. 配布されている事前学習済モデルの重みを読み込む 3. ⼊⼒の前処理やモデルの出⼒の後処理を実装 4. DataLoaderやLoss、Optimizerを実装 • 🤗 Hugging Face はこれらの作業を簡略化するためのシステム • 多くのモデルをカバーした、統⼀されたインターフェイスを提供 • 主要なフレームワーク (PyTorch/TensorFlow/Jax) のサポート • 事前学習済モデルが集約されているモデルハブの提供

Slide 75

Slide 75 text

74 Copyright 2024 NTT CORPORATION Hugging Face について • 🤗 Hugging Faceはライブラリ/エコシステムの総称 [C12] • Transformer系のライブラリ (インターフェイス) は下記の通り • 🤗 Transformers/🤗 Tokenizers (Transformer全般) ← 本⽇紹介 • 🤗 Datasets (NLP系のデータセット) • 🤗 Evaluates (NLP系の評価指標) • 🤗 Accelerate (Transformer⾼速化) • また、事前学習済のモデルを共有するモデルハブや、データ セットを共有するデータセットハブなどのエコシステムも提供 • 今回のサンプルコードは [C13] で利⽤可能

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

76 Copyright 2024 NTT CORPORATION 処理の流れ ⼊⼒⽂章 tokenizer transformer 出⼒ Loss 例: 私は野菜が空きだ 形態素解析 + ベクトル化 Embedding + Encoder or/and Decoder 今回はBERTなのでEncoderのみ 例: 私は野菜が好きだ ラベルが与えられている場合はLossも出る ため、学習に利⽤可能

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

78 Copyright 2024 NTT CORPORATION コード解説 (1) transformers 🤗 Hugging Faceのライブラリ torch 🤗 transformersのbackend fugashi ⽇本語形態素解析器 (MeCabのラッパー) ipadic MeCabに必要な辞書 必要ライブラリのインストール $ pip install transformers torch ipadic fugashi shell

Slide 80

Slide 80 text

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

Slide 81

Slide 81 text

80 Copyright 2024 NTT CORPORATION モデルハブ (1) 多くのモデルが集まって おり、柔軟な検索が可能 モデルID

Slide 82

Slide 82 text

81 Copyright 2024 NTT CORPORATION モデルハブ (2) アーキテクチャや利⽤した データセットが⼀⽬でわかる

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

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=) shell

Slide 85

Slide 85 text

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

Slide 86

Slide 86 text

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).

Slide 87

Slide 87 text

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.

Slide 88

Slide 88 text

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

Slide 89

Slide 89 text

88 Copyright 2024 NTT CORPORATION D. ⽣成モデルの問題点 (10分)

Slide 90

Slide 90 text

89 Copyright 2024 NTT CORPORATION ⽣成AIの不適切な利⽤ 1. https://www3.nhk.or.jp/news/html/20240503/k10014439661000.html 2. https://www.yomiuri.co.jp/national/20240601-OYT1T50224/ • ⽣成AIの不適切な利⽤1,2が相次ぎ、「規制を強化すべき」との 声が強くなっている

Slide 91

Slide 91 text

90 Copyright 2024 NTT CORPORATION ⽣成AIは誤った回答を⽣成する • ⽣成AIは誤った回答を⽣成することがあり、ハルシネーション と呼ばれている [D1] 「ニューヨーク・タイムズ」の実在しない記事を要約するChatGPT1 https://upload.wikimedia.org/wikipedia/commons/3/3a/ChatGPT_hallucination.png

Slide 92

Slide 92 text

91 Copyright 2024 NTT CORPORATION ⽣成AIは正しく学習されていない • 深層⽣成モデルは、学習データに含まれない「分布外データ」 に⾼い確率を割り当ててしまうことがある [D2] • CIFAR10で学習したVAEは、SVHNに⾼い確率を割り当てる • つまり、分布外データを⽣成する可能性がある CIFAR10 ITmedia: https://www.itmedia.co.jp/ SVHN

Slide 93

Slide 93 text

92 Copyright 2024 NTT CORPORATION ⽣成AIは⼈間なしでは不完全 • ⽣成AIは誤った回答を⽣成するし、正しく学習されていない • そもそも⽣成AIはデータから学習しているだけであって、⼈間 にとって「正しい」かどうかを考えていない • ⼈間にとって「正しい」モデルにするためには、⼈間からの フィードバックが重要 • 最後に、⼈間からのフィードバックを⽤いて⽣成AIを改善する 論⽂を2本紹介する 1. Reinforcement Learning from Human Feedback (RLHF, 2022) [D3] 2. Selective Amnesia (2024) [D4]

Slide 94

Slide 94 text

93 Copyright 2024 NTT CORPORATION RLHF (2022) • ⾔語モデルの出⼒を⼈間が良い順にランク付けし、それに従い ⾔語モデルの出⼒を改善する⼿法 (強化学習を⽤いる) [D3]

Slide 95

Slide 95 text

94 Copyright 2024 NTT CORPORATION Selective Amnesia (2024) • 深層⽣成モデルから忘れさせたい概念を忘却させる⼿法 • 忘れさせたい概念に対する対数尤度を最⼩化することで実現

Slide 96

Slide 96 text

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).

Slide 97

Slide 97 text

96 Copyright 2024 NTT CORPORATION まとめ・質疑応答 (10分)

Slide 98

Slide 98 text

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