Learning to Generate with
Memory
Chongxuan Li, Jun Zhu, Bo Zhang
2016/07/16 ICML読み会
奈良先端科学技術大学院大学
中村研D2 品川 政太朗
2016ⒸSeitaro Shinagawa AHC-lab NAIST2016/7/16 1/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
はじめに
何の論文?
Neural Turing MachineやMemory Networksで用いられてい
る外部メモリを深層生成モデル(DGMs)に導入
どこがすごいか
抽象度の低い特徴は階層が上がるにつれて落ちる情報だが、外
部メモリにそれらの情報を保持しておくことによって精度を向上
どう評価したか
密度推定、データ生成、欠損値代入タスクで性能の向上を示した
論文を読んだ動機
本来落ちるはずの情報を外部メモリによって補償する発想が面白
く、応用範囲も広そうだった
2/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
深層生成モデル(DGMs)の問題点
 高い階層の層にいくほど情報が落ちる
(抽象度の高い特徴=落ちなかった重要な情報)
 逆にこの抽象度の高い特徴からデータの生成を行う場合,落ち
た情報はどう補償されるのか→適当な情報によって補償される
 欠落する情報を外部メモリに保持しておくことで、補償される情報
をコントロールしたい
3/24
2016/7/16 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
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
クエリq
u
o
あとで出てくる提案モデル(単層部分の抜き出し)
事前に用意されて
る知識がない?
ℎ 𝑔をもとに知識に検
索をかけ,読みだし
た知識と組み合わせ
て次の層の変数ℎ 𝑜𝑢𝑡
を出力
5/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
𝒉𝑙
𝐼 𝑙
= 𝒛𝑙+1
𝒉𝑙
𝐼 𝑙−1
= 𝜙 𝒉𝑙
𝐼 𝑙
; 𝑀𝑙
(𝐼 𝑙−1)
𝒉𝑙
𝐼 𝑙−2
= 𝜙 𝒉𝑙
𝐼 𝑙−1
; 𝑀𝑙
(𝐼 𝑙−2)
⋮
𝝁𝑙 = 𝒉𝑙
0
= 𝜙 𝒉𝑙
1
; 𝑀𝑙
(0)
𝒛 𝐿~𝑁 0, 𝐼
𝒛 𝐿−1~𝑃𝐿−1 𝝁 𝐿−1
⋮
𝒛0~𝑃0 𝝁0 = 𝑥
𝝁 𝐿−1 = 𝑔 𝐿−1 𝒛 𝐿; 𝑀𝐿−1
𝝁0 = 𝑔0 𝒛1; 𝑀0
外部メモリ𝑀𝑙
𝑖
スロット数
𝑑 𝑠
一般化した提案生成モデルの挙動
⋮
層ごとの潜在変数を上から順に𝑧 𝐿, 𝑧 𝐿−1, ⋯ , 𝑧0(ただし𝑧0は生成データ)とすると、
⋮
𝑃0は生成するデータ次第
𝑃1, ⋯ , 𝑃𝐿−1はガウス分布
𝜇𝑙 = 𝑔𝑙 𝑧𝑙+1; 𝑀𝑙 の中身
⋮⋮
⋮
分散についてはおそらく
𝜎 = exp 𝜇 を前提としてる?
𝑛 𝑠次元
𝐼𝑙枚
6/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
𝒉𝑙
𝐼 𝑙−1
= 𝜙 𝒉𝑙
𝐼 𝑙
; 𝑀𝑙
(𝐼 𝑙−1)
の中身
さらに、
𝒉 𝑔 = 𝜙 𝒉𝑖𝑛; 𝑊𝑔, 𝑏 𝑔
𝒉 𝑎 = 𝑓𝑎 𝒉 𝑔; 𝐴, 𝑏 𝑎
𝒉 𝑚 = 𝑓𝑚 𝒉 𝑎; 𝑀
𝒉 𝑜𝑢𝑡 = 𝑓 𝑐 𝒉 𝑔, 𝒉 𝑚; 𝐶
𝒉 𝑜𝑢𝑡 = 𝜙 𝒉𝑖𝑛; 𝑀 とおくと、
𝒉 𝑔 = 𝑓𝑔 𝒉𝑖𝑛; 𝑊𝑔, 𝑏 𝑔
ややこしいので
便宜的に変更
7/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
具体例 潜在変数層1つ(𝐿 = 1),
メモリ枚数2枚(𝐼1 = 2)の場合
𝒉 3
= 𝑧~𝑁 𝜇 𝑧, 𝜎𝑧
𝒉 𝑔
2
= 𝑓𝑔 𝑊𝑔
2
𝒉 3 + 𝑏 𝑔
2
𝒉 𝑎
2
= 𝑓𝑎 𝐴 2 𝒉 𝑔
2
+ 𝑏 𝐴
2
𝒉 𝑚
2
= 𝑀(2) 𝒉 𝑎
2
𝒉 2 = 𝑓𝑐 𝒉 𝑔
2
, 𝒉 𝑚
2
; 𝐶
𝑓𝑐 𝒉 𝑔
2
, 𝒉 𝑚
2
; 𝐶 = 𝒉 𝑔
2
+ 𝒉 𝑚
2
とするのが素直だが、Ladder
Network[Rasmus 2015]
を参考に別の関数を使う
𝑓𝑎はシグモイド関数か
ソフトマックス関数
(実験ではソフトマックス)
次で説明
8/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
𝑓𝑐について
𝒉 𝑖 = 𝑓𝑐 𝒉 𝑔
𝑖
, 𝒉 𝑚
𝑖
; 𝐶 = 𝜙 𝑎 𝑖 + 𝑏1
𝑖
𝑐 𝑖
ここの𝜙も前のとは違います
𝑎 𝑖
= 𝑎1
𝑖
+ 𝑎2
𝑖
⊙ 𝒉 𝑚
𝑖
+ 𝑎3
𝑖
⊙ 𝒉 𝑔
𝑖
+ 𝑎4
𝑖
⊙ 𝒉 𝑔
𝑖
⊙ 𝒉 𝑚
𝑖
𝑐 𝑖 = 𝜎 𝑐1
𝑖
+ 𝑐2
𝑖
⊙ 𝒉 𝑚
𝑖
+ 𝑐3
𝑖
⊙ 𝒉 𝑔
𝑖
+ 𝑐4
𝑖
⊙ 𝒉 𝑔
𝑖
⊙ 𝒉 𝑚
𝑖
ただし、
(⊙は要素ごとの積)
最終的に学習の対象になるのは、
9/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
ℎ 2 の教師はℎ 2
ℎ 1 の教師はℎ 1
変分オートエンコーダの学習
10/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
𝒉(2)
= 𝜙 𝑉(1)
𝒉 1
+ 𝑏 𝑟
1
𝒉(1) = 𝜙 𝑉(0) 𝒉 0 + 𝑏 𝑟
0
𝒉(3) = 𝜙 𝑉(2) 𝒉 2 + 𝑏 𝑟
2
= 𝜇 𝑧
𝒉(0) = 𝒙
𝜎𝑧 = exp( 𝜇 𝑧)
ℎ 3
= 𝑧~𝑁 𝜇 𝑧, 𝜎𝑧
エンコーダによる潜在変数の推論
11/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
local reconstruction error
(Ladder Network [Rasmus 2015]に倣っ
たらしい)
変分下限
変分下限と目的関数
= 𝔼 𝑞 𝒛|𝒙;𝜽 𝑟
log 𝑝 𝒙|𝒛; 𝜽 𝑔 − 𝐾𝐿 𝑞 𝒛|𝒙; 𝜽 𝒓 ||𝑝 𝒛; 𝜽 𝑔
対数尤度 正則化項
目的関数
変分下限
?
変分下限は最大化
したいのでここは多分
マイナス?
12/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
実験設定
MNIST(手書き文字認識)
訓練用50000, 確認用10000, テスト用10000
28x28 pixel/画像
OCR-letters(光学文字認識)
訓練用32152, 確認用10000, テスト用10000
16x8 pixel/画像
Frey faces datasets
1965
28x20 pixel/画像
分布にBernoulli分布を仮定
分布にGaussian分布を仮定
𝑓𝑎にソフトマックスを使うという
話と矛盾
付録Dを除くとあったので
Dのみソフトマックス
以下の学習手法について比較
VAE:普通の変分オートエンコーダ
IWAE[Burda 2015]:重要度重みを考慮した対数尤度の推定
MEM-VAE:外部メモリ付きVAE
𝑓𝑎と 𝑓𝑐にそれぞれsigmoid関数とelement-wise MLPを用いる
MEM-IWAE:外部メモリ付きIWAE
13/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
Theano
最適化手法:Adam(𝛽1 = 0.9, 𝛽2 = 0.999, 𝜖 = 10−4)
ミニバッチサイズ:100
学習率は1000epochの間10−3
に固定、次の2000epochの
間1epochごとに現在の学習率に0.998をかける
𝜙 = 𝑅𝑒𝑙𝑢
𝜆 1 = 0.1, 𝜆 2 = 0.1(Ladder Networkに倣った)
𝑛 𝑠
1
+𝑛 𝑠
2
= 100 実験では(70: 30)になるようにした
初期値
𝑎3
𝑖
, 𝑐3
𝑖
: 𝑜𝑛𝑒𝑠 𝑣𝑒𝑐𝑡𝑜𝑟 𝑠𝑖𝑧𝑒
𝑎1,2,4
𝑖
, 𝑏1
𝑖
, 𝑐1,2,4
𝑖
: 𝑧𝑒𝑟𝑜𝑠 𝑣𝑒𝑐𝑡𝑜𝑟 𝑠𝑖𝑧𝑒
エンコーダの活性化関
数とデコーダの𝑓𝑔, 𝑓𝑐の
中身の𝜙
14/24
2016/7/16 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
2016/7/16 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
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
オリジナル
𝑀 1 だけメモリ除外
2層ともメモリ除外
メモリが受け持っている情報
メモリを除外すると画像がおかしくなる → メモリが詳細な情報を保存している
メモリ機構の効果
𝒉 𝑚 = 𝑜𝑛𝑒𝑠としてメモリの影響を阻害した生成結果
17/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
外部メモリの可視化(MNIST)
0
1
・
・
9
上図の相関係数をみると、
1層目は1,4,7,9
2層目は3,5,8
に反応している
1層目:縦横
2層目:カーブ
に反応して情報を補完
各クラスごとに𝒉 𝑎を平均して正規化
18/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
文字に最も反応するメモリスロットの可視化
各クラスで𝒉 𝑎のテストに対する平均が高い順にスロットを並べる
上位3スロットを1、他を0としたときに生成される画像
19/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
ランダム生成
赤枠はボランティアがつけ
たラベル付けできなかった
画像
MNISTは同じ実験設定
Frey facesは
• 訓練データ1865
• テストデータ100に分割
• 200素子の隠れ層と100素
子の潜在変数層
• 𝑛 𝑠
(1)
= 20
ミニバッチ test log
density
VAE 100 1308 nats
10 1055 nats
MEM-
VAE
100 1330 nats
10 1240 nats
VAEはミニバッチ
10の方が見た目が
鮮明だったらしい
20/24
2016/7/16 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するのもあり?
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
欠損データの修復
MNISTデータの半分をノイズ
で欠損させて復元させる
VAE vs MEM-VAE
赤枠は自分が正しく推定でき
なかったが、相手が正しく推
定できたもの
(少ない方が優秀)
(赤枠はボランティアによる)
MEM-VAEの方が正しく推定
できていると主張
すべてのデータに
ついて赤枠の数を
数えてない?
22/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
その他
エンコーダの最上層一コ手前で線形SVMにかけてMNISTで分類
タスクをしてみると
VAE:97.90%
MEM-VAE:98.03%
よって、エンコーダ側に外部メモリが影響を及ぼしているわけでは
ない、(つまりデコーダ側の情報を補完する機能を持っている)と
主張している
23/24
2016/7/16 2016ⒸSeitaro Shinagawa AHC-lab NAIST
まとめ
 外部メモリの導入によって深層生成モデルの性能は向上する
 データセットは簡単なものについてしか行われていない
 評価方法に一部疑問が残る(図4,図5とか)
 先行研究と違い、外部メモリの知識はあらかじめ用意されたも
のではなく学習で獲得されるもの
 リカレントに拡張できれば文生成などへの応用が考えられる
以上を踏まえて
 外部メモリも画像のスタイルのようなものを獲得している?
本質的にVAEとは違うのか?VAEとの使い分けはできるのだろう
か?
24/24
2016/7/16 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よりも生成できるバリエーションが少なく見える。もっと挑戦的な
難しいデータセットで実験をしてほしい

20160716 ICML paper reading, Learning to Generate with Memory

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

Editor's Notes

  • #5 https://papers.nips.cc/paper/5846-end-to-end-memory-networks.pdf 海野さんスライド:http://www.slideshare.net/unnonouno/nip2015endtoend-memory-networks
  • #15  𝛽 2 =0.999(decay rates of moving averages) 𝜖= 10 −4 :一定値(overflow防止のため)