20160716 icml paper reading, learning to generate with memory
TRANSCRIPT
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
Learning to Generate with Memory
Chongxuan Li, Jun Zhu, Bo Zhang
2016/07/16 ICML読み会奈良先端科学技術大学院大学
中村研 D2 品川 政太朗
1/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
はじめに何の論文? Neural Turing MachineやMemory Networksで用いられている外部メモリを深層生成モデル (DGMs)に導入どこがすごいか 抽象度の低い特徴は階層が上がるにつれて落ちる情報だが、外部メモリにそれらの情報を保持しておくことによって精度を向上どう評価したか 密度推定、データ生成、欠損値代入タスクで性能の向上を示した論文を読んだ動機 本来落ちるはずの情報を外部メモリによって補償する発想が面白く、応用範囲も広そうだった
2/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
深層生成モデル (DGMs)の問題点 高い階層の層にいくほど情報が落ちる( 抽象度の高い特徴=落ちなかった重要な情報 )
逆にこの抽象度の高い特徴からデータの生成を行う場合,落ちた情報はどう補償されるのか→適当な情報によって補償される 欠落する情報を外部メモリに保持しておくことで、補償される情報をコントロールしたい
3/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
外部メモリを導入している先行研究End-To-End Memory Networks [Sukhbaatar, S, 2015]
https://papers.nips.cc/paper/5846-end-to-end-memory-networks.pdf
𝒖 B 𝒒
𝒄𝒏 C 𝒙𝟏 𝒙𝟐 𝒙𝒏𝒄 𝒊𝒄𝟏
𝒎𝒏 A𝒎𝒊𝒎𝟏
Embed matrix
検索用の知識
知識データベース
クエリ
回答用の知識
記憶、質問、回答の一連のプロセスを end-to-end で学習させることができる4/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
クエリ qu
o
あとで出てくる提案モデル(単層部分の抜き出し)
事前に用意されてる知識がない?
をもとに知識に検索をかけ,読みだした知識と組み合わせて次の層の変数を出力
5/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
𝝁𝐿− 1=𝑔𝐿−1 (𝒛 𝐿 ;𝑀𝐿−1 )
𝝁0=𝑔0 (𝒛1 ;𝑀 0 )
外部メモリ
スロット数𝑑𝑠
一般化した提案生成モデルの挙動
⋮
層ごとの潜在変数を上から順に ( ただしは生成データ ) とすると、
⋮は生成するデータ次第ガウス分布
の中身
⋮⋮⋮
についてはおそらく前提としてる?次元
𝐼 𝑙 枚
6/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
の中身さらに、
𝒉𝑔=𝜙 (𝒉𝑖𝑛 ;𝑊 𝑔 ,𝑏𝑔)𝒉𝑎= 𝑓 𝑎 (𝒉𝑔 ; 𝐴 ,𝑏𝑎 )𝒉𝑚= 𝑓 𝑚 (𝒉𝑎;𝑀 )𝒉𝑜𝑢𝑡= 𝑓 𝑐 (𝒉𝑔 ,𝒉𝑚 ;𝐶 )
とおくと、𝒉𝑔= 𝑓 𝑔 (𝒉𝑖𝑛 ;𝑊 𝑔 ,𝑏𝑔)
ややこしいので便宜的に変更
7/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
具体例 潜在変数層1つ (),メモリ枚数 2 枚 () の場合𝒉(3)=𝑧 𝑁 (𝜇𝑧 ,𝜎 𝑧 )
𝒉𝑔(2)= 𝑓 𝑔 (𝑊 𝑔
(2 )𝒉(3 )+𝑏𝑔(2) )
𝒉(2)= 𝑓 𝑐 (𝒉𝑔(2 ) ,𝒉𝑚
(2) ;𝐶 )
とするのが素直だが、 Ladder Network[Rasmus 2015]を参考に別の関数を使う
シグモイド関数かソフトマックス関数(実験ではソフトマックス) 次で説明8/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
ついて𝒉( 𝑖)= 𝑓 𝑐 (𝒉𝑔
(𝑖 ) ,𝒉𝑚(𝑖 ) ;𝐶 )=𝜙 (𝑎 (𝑖 )+𝑏1
(𝑖 )𝑐 (𝑖 ) )
ここのも前のとは違います
𝑎 (𝑖 )=𝑎1(𝑖 )+𝑎2(𝑖 )⊙𝒉𝑚(𝑖 ) +𝑎3(𝑖 )⊙𝒉𝑔
(𝑖 )+𝑎4( 𝑖 )⊙𝒉𝑔( 𝑖 )⊙𝒉𝑚
(𝑖 )
𝑐 (𝑖 )=𝜎 (𝑐1( 𝑖 )+𝑐2(𝑖 )⊙𝒉𝑚
( 𝑖 )+𝑐3( 𝑖 )⊙𝒉𝑔
( 𝑖 )+𝑐4(𝑖 )⊙𝒉𝑔
( 𝑖 )⊙𝒉𝑚( 𝑖 ) )
ただし、
( は要素ごとの積 )
最終的に学習の対象になるのは、
9/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
教師は
教師は
変分オートエンコーダの学習
10/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
�̂�(2 )=𝜙 (𝑉 (1) �̂�(1 )+𝑏𝑟(1) )
�̂�(1 )=𝜙 (𝑉 (0)�̂�(0)+𝑏𝑟(0 ) )
�̂�(3 )=𝜙 (𝑉 (2) �̂�( 2)+𝑏𝑟(2 ) )=𝜇𝑧
�̂�(0 )=𝒙
𝜎 𝑧=exp(𝜇𝑧)
h (3 )=𝑧 𝑁 (𝜇𝑧 ,𝜎 𝑧 )
エンコーダによる潜在変数の推論
11/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
local reconstruction error(Ladder Network [Rasmus 2015] に倣ったらしい)
変分下限
変分下限と目的関数
¿𝔼𝑞 (𝒛∨𝒙 ;𝜽𝑟 ) [ log𝑝 (𝒙∨𝒛 ;𝜽𝑔) ]−𝐾𝐿 [𝑞 ( (𝒛∨𝒙 ;𝜽𝒓 )∨¿𝑝 (𝒛 ;𝜽𝑔 )) ]対数尤度 正則化項目的関数
変分下限
?
変分下限は最大化したいのでここは多分マイナス?
12/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
実験設定MNIST (手書き文字認識)訓練用 50000, 確認用 10000, テスト用1000028x28 pixel/ 画像OCR-letters (光学文字認識)訓練用 32152, 確認用 10000, テスト用1000016x8 pixel/ 画像Frey faces datasets196528x20 pixel/ 画像
分布に Bernoulli 分布を仮定
分布に Gaussian 分布を仮定にソフトマックスを使うという話と矛盾付録 D を除くとあったので
D のみソフトマックス以下の学習手法について比較VAE :普通の変分オートエンコーダIWAE[Burda 2015] :重要度重みを考慮した対数尤度の推定MEM-VAE :外部メモリ付き VAE と にそれぞれ sigmoid 関数と element-wise MLP を用いるMEM-IWAE :外部メモリ付き IWAE
13/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
Theano最適化手法: Adam()ミニバッチサイズ: 100学習率は 1000epoch の間に固定、次の 2000epoch の間1epoch ごとに現在の学習率に 0.998 をかける(Ladder Network に倣った )になるようにした初期値
エンコーダの活性化関数とデコーダの , の中身の
14/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
実験結果(密度推定) MNIST , OCR重点サンプル (Importance Sample) を { 1 ,5,50} 個だけ用いて学習 MNIST : 1,000 重点サンプル OCR : 100,000 重点サンプル でテスト
IS
1
5
50
対数尤度(高いほどよい)外部メモリを使った方がよい結果
15/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
メモリ機構の効果
MEM-VAE
MEN-VAE はほぼ同じパラメータ数の VAE よりもよい
VAE
過学習はしていなかった(らしい)IS VAE 530-530-100
1 -85.69
5 -84.43
50 -83.58
VAE,VAE-MEM 530-530-100
16/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
オリジナルだけメモリ除外2 層ともメモリ除外
メモリが受け持っている情報
メモリを除外すると画像がおかしくなる → メモリが詳細な情報を保存している
メモリ機構の効果
としてメモリの影響を阻害した生成結果
17/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
外部メモリの可視化( MNIST )01・・9
上図の相関係数をみると、1 層目は 1,4,7,92 層目は 3,5,8に反応している1 層目:縦横2 層目:カーブに反応して情報を補完
各クラスごとにを平均して正規化
18/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
文字に最も反応するメモリスロットの可視化各のテストに対する平均が高い順にスロットを並べる上位3スロットを1、他を0としたときに生成される画像
19/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
ランダム生成赤枠はボランティアがつけたラベル付けできなかった画像MNIST は同じ実験設定Frey faces は• 訓練データ 1865• テストデータ 100 に分割• 200 素子の隠れ層と 100素子の潜在変数層
ミニバッチ
test log density
VAE 100 1308 nats
10 1055 nats
MEM-VAE 100 1330 nats
10 1240 nats
VAE はミニバッチ10 の方が見た目が鮮明だったらしい
20/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
欠損値代入タスク(画像修復タスク) MNIST で実験ノイズの種類RECT-12 中心 12x12 pixel を欠損RAND-0.6 各ピクセルを確率 0.6 で欠損HALF 左半分を欠損
欠損部分はランダムな値で初期化欠損画像を入力して生成した出力を次の入力とするこれを 100epoch繰り返す
欠損値の修復の方法
MSE による比較
21/24
http://arxiv.org/pdf/1401.4082v3.pdf [Rezende 2014]
欠損してないピクセルも変動してしまうので非欠損ピクセルを固定で BP するのもあり?
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
欠損データの修復MNIST データの半分をノイズで欠損させて復元させるVAE vs MEM-VAE赤枠は自分が正しく推定できなかったが、相手が正しく推定できたもの(少ない方が優秀)(赤枠はボランティアによる)MEM-VAE の方が正しく推定できていると主張
すべてのデータについて赤枠の数を数えてない?22/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
その他エンコーダの最上層一コ手前で線形 SVM にかけて MNIST で分類タスクをしてみるとVAE:97.90%MEM-VAE:98.03%
よって、エンコーダ側に外部メモリが影響を及ぼしているわけではない、(つまりデコーダ側の情報を補完する機能を持っている)と主張している
23/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ
まとめ 外部メモリの導入によって深層生成モデルの性能は向上す
る データセットは簡単なものについてしか行われていない 評価方法に一部疑問が残る(図4,図5とか)
先行研究と違い、外部メモリの知識はあらかじめ用意されたものではなく学習で獲得されるもの
リカレントに拡張できれば文生成などへの応用が考えられる
以上を踏まえて 外部メモリも画像のスタイルのようなものを獲得している?本質的に VAE とは違うのか? VAE との使い分けはできるのだろうか?
24/24
05/02/2023 2016 Seitaro Shinagawa AHC-lab NAISTⒸ 25/24
おまけ:査読者のコメント集(一部抜粋)(http://icml.cc/2016/reviews/551.txt)査読者1:いくつものデータセットで実験している DRAW と比べてほしい。論文は素晴らしいが性能の向上はわずか。もっと実験のパラメータ数を増やして実験してみてほしい。 DRAW と比べると SoTA にはほど遠い。この論文を良くするとしたら、メモリ M が何なのかを説明できる研究をするのが良い。外部メモリは役に立つように見えるが、実際に何の役に立つのか。より複雑なモデルをより速く訓練するのに役立つなどあるのか。査読者2:クリアで再実装が可能そうであるが、コードが公開されていない→現在は公開中VAE や IWAE はメモリ付きと比べてそもそも自由パラメータが少ない。同じにしてもメモリ付きの方が優れているのか→リバッタルで解決査読者3:よく説明されていてわかりやすい。外部メモリは生成モデルに簡単に導入可能であり、重要性が高いデータセットが簡単過ぎるのですくなくとも CIFAR10 で実験をMEM-VAE は VAE よりも生成できるバリエーションが少なく見える。もっと挑戦的な難しいデータセットで実験をしてほしい