Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
GDG Tokyo 生成 AI 論文をわいわい読む会 紹介論文 A Van Den Oord,et. al., “Neural discrete representation learning”, NeurIPS, 2017 中井 悦司 AI Solutions Architect, Google Cloud この資料はコミュニティイベント「GDG Tokyo 生成 AI 論文をわいわい読む会」での発表スライドです
Slide 2
Slide 2 text
紹介の趣旨 2 ● 2018 年の比較的古い論文で、 日本語での解説ブログも散見さ れます。 ● それでも原論文にあたること で、「筆者が何を考えてこの論 文を書いたのか」など新しい発 見があるはず。--- ということを 伝えたくて選びました。
Slide 3
Slide 3 text
なにはともあれ・・・ 3 ● まずは、VAE (Variational Auto Encoder)の知識が必要そう・・・
Slide 4
Slide 4 text
事前準備( VAE の復習)
Slide 5
Slide 5 text
オートエンコーダ ● エンコーダとデコーダを接続して、 同じデータを再現する様に学習した モデルがオートエンコーダです。 ● エンコーダとデコーダの接続部分の 低次元空間を「潜在空間」、もしく は、「埋め込み空間」と言います。 ● 潜在空間には、画像の「種類」を表 す抽象化された情報が埋め込まれて いると考えられます。 ● エンコーダ/デコーダは、画像デー タの「不可逆圧縮アルゴリズム」と 捉えることもできます。 5 潜在空間
Slide 6
Slide 6 text
オートエンコーダの学習例 ● 32 × 32 ピクセルの画像を 2 次元の潜 在空間に埋め込むオートエンコーダを 定義します。 ● つまり、1 つの画像は、2 次元平面の 1 つの点に対応づけられます。 ● エンコーダ部分は畳み込みフィル ター、デコーダ部分は転置畳み込み フィルターを使用します。 6 32 × 32 × 1 16 × 16 × 32 4 × 4 × 128 8 × 8 × 64 2 次元の 潜在空間
Slide 7
Slide 7 text
オートエンコーダの学習例 ● Fashion MNIST の画像データで学習した結果、 潜在空間には、10 種類の画像に対応したクラス ターができていることが分かります。 ● デコーダを使用すると、潜在空間の点から新し い画像を生成することができます。 7 学習データに対する エンコーダの出力値
Slide 8
Slide 8 text
オートエンコーダの課題点 8 この隙間の部分を学習する データが存在しない 潜在空間 学習データ エンコーダ ● 学習データに対応した潜在空間の点は、まばらに存在 します。 ● 隙間の部分からは、まわりの学習データの「中間状 態」の画像が生成されますが、多くの場合、人間から 見て「自然な画像」にはなりません。 ● 現実世界の画像は連続ではなく、「飛び飛び」に存在 するという事実をモデルに取り込む必要があります。 ● この問題の解決を目指して、ある工夫を加えたモデル が変分オートエンコーダ(VAE)です。
Slide 9
Slide 9 text
変分オートエンコーダ(VAE)の特徴 ● 潜在空間上で、「自然な画像」が生成される点 は、標準正規分布に従って分布します。 ● 言い換えると、デコーダへの入力値を標準正規 分布で選ぶと、高確率で自然な画像が生成でき ます。 ● 理想的には、標準正規分布でサンプリングした 値の集合から画像を生成すると、学習データと 同じ画像セットが再現されます。 9
Slide 10
Slide 10 text
事前分布 p(z) と事後分布 q(z|x) について ● 論文内で「事前分布 prior p(z)」「事後分布 posterior q(z|x)」という言葉が登場します。 ● 学習データをエンコーダで潜在空間にマッピン グした分布を事後分布 q(z|x) と呼びます。 ● 潜在空間から事前分布 p(z) で集めた値からデ コーダで画像を生成すると、(理想的には)学 習データの集合が再現されます。 ● 理想的な学習ができた場合、事後分布と事前分 布は一致します。 ● VAE の場合は、標準正規分布が事後分布/事前 分布になります。 10 学習 データ 学習 データ 事前 分布 デコーダ エンコーダ 事後 分布
Slide 11
Slide 11 text
論文紹介
Slide 12
Slide 12 text
12 VQ-VAE の本質的なアイデア VAE の事前・事後分布 は正規分布 VQ-VAE の事前・事後分布は、 埋め込みテーブルをインデックス するカテゴリカル分布???
Slide 13
Slide 13 text
13 離散的な潜在変数とは・・・? 数学記号の使い方がわりと適当 (記号の正確な説明がない) のでツラい・・・
Slide 14
Slide 14 text
14 離散的な潜在変数とは・・・? この絵とあわせて読むと なんとか理解できる!
Slide 15
Slide 15 text
離散的な潜在変数とは! 15 ● VQ-VAE では、潜在空間を「画像の各部位の役割を示すベクトル値の集合」に置き換えるこ とで、画像の特徴をダイレクトに表現します。 1 つの画像に対応した 「潜在空間の値」のイメージ ・・・ コードブック 空 空 空 海 海 海 雲 雲 海 海 船 船 海 島 島 海 海 海 島 島 ○ 「各部位の役割を示すベクトル値」は一定数の ベクトル値を事前に用意します。これを「コー ドブック」と呼びます。コードブックの個々の ベクトル値は、直感的には、「空」「雲」 「海」などの意味を表すと考えます。 ○ コードブックの値のみを組み合わせることで、 「自然な画像に対応する潜在空間の値」が構成 しやすくなります。 空 海 雲 島 海 海 島 島 島 コードベクトルが個別の意味を 持つ点は論文の後半の例で 明らかになります。
Slide 16
Slide 16 text
VQ-VAE の学習処理 16 ● エンコーダは、元の画像に対して「画像サイズを縮小して(縦横のピクセル数を 減らして)各ピクセル値をベクトル値に置き換える」という処理を行います。さ らに、各ベクトル値をコードブックに載っているベクトル値(値が一番近いも の)に置き換えてからデコーダに入力します。
Slide 17
Slide 17 text
VQ-VAE による学習例 17 ● 入力画像:128 × 128 ピクセルのカラー画像 ○ 画像は 256 階調(RGB の各レイヤーのピクセル値は 256 = 28 通りの値を取る)なので、1 つの画 像の情報量は 128 × 128 × 3 × 8 ビット ● コードブック:512 個の 1 次元ベクトル(つまり、512 = 29 種類の離散値) ● 潜在空間のサイズ:32 × 32 ピクセル ○ 潜在空間の情報量は 32 × 32 × 9 ビットなので、画像の情報量は約 1/40 に削減 https://arxiv.org/abs/1711.00937 デコーダからの出力 エンコーダへの入力
Slide 18
Slide 18 text
音声データへの適用 18 ● コードブックに登録された個々の「コードベクトル」は何を表しているのでしょ うか? ・・・ コードブック ? ? ? ? ? ? ? ? ・・・ コードベクトルの時系列 エンコーダ デコーダ 出力波形は入力波形と 大きく異なる・・・
Slide 19
Slide 19 text
潜在空間に抽出される情報 声の抑揚や声質は異なるが 話している内容(文章)は 変わっていない! 潜在空間には「話している 内容(文章)」の情報が 抽出されている
Slide 20
Slide 20 text
コードベクトルは音素に対応? 20 ● コードブックに登録された個々の「コードベクトル」は何を表しているのでしょ うか? ・・・ コードブック ? ? ? ? ? ? ? ? ・・・ コードベクトルの時系列 エンコーダ デコーダ コードベクトルは音素 (「あ・い・う」などの 音の最小単位)を表して いるのでは?!
Slide 21
Slide 21 text
コードベクトルは音素に対応? 128個のコードベクトル を41個の音素に対応させ ると49.3%の一致率 ● 「音声」の概念を明示的に学習させていない(モデルから見れば入力データは意味のない時系列データ) にもかかわらず、このモデルは音声の最小構成要素である「音素」を発見することに成功した!
Slide 22
Slide 22 text
Thank you.