meta-learning with memory augmented neural network
Post on 21-Apr-2017
2.269 Views
Preview:
TRANSCRIPT
渡辺 有祐 (ソニー)
Copyright 2016 Sony Corporation
Meta-Learning with Memory-Augmented Neural Networks
ICML2016読み会
2
自己紹介
• 発表者: 渡辺 有祐 (わたなべ ゆうすけ) • 著書 「グラフィカルモデル」 (機械学習プロフェッショナルシリーズ)
• 所属: ソニー株式会社
• 機械学習関係の研究開発を行っている。 (最近は主にDeep Learning) • 2016年9月から一年間、会社派遣で、Ruslan Salakhutdinov先生 (CMU) の
研究室に留学予定
3
論文 ひとこと まとめ
Neural Turing Machine を One-Shot Learning に応用しました
4
Neural Turing Machine (NTM) とは [Graves+2014]
• NTMとは、外部記憶装置(メモリー)と、その読み書き機能を備えたNeural Network
• コピーやソートなどのアルゴリズムを学習することが出来る • Neural Network なので Back Propagation で学習できる
Controller
Memory Read Head Write Head
input output
NTM
メモリーとその読み書き機能 も含めて、全体が Neural Network になっている!
5
例: NTMによる、系列2倍コピータスクの学習
NTM
入力系列 出力系列
0100 011
01000100 011011
110111 110111110111
入力系列を2倍にコピーした系列になっている
10010 1001010010
学習時
アルゴリズムの入力系列と出力系列を教師データとして、 NTMを学習させるとそのアルゴリズムを学習することが出来る
6
例: NTMによる、系列2倍コピータスクの学習
NTMは入ってきた系列を順にメモリに 書き込み、それを2回、順に読みだす
NTM
入力系列 出力系列
010111000 010111000010111000
controller
010111000010111000
テスト時
010111000
010111000
7
One-Shot Learning とは
通常のNNの学習
1つ(少数)の例を見ただけで認識出来るようにしたい
One-Shot Learning
たくさんの教師データが必要
1つ見ただけで憶えたい (人間なら出来る!!)
...
8
One-Shot Learningの簡単なやり方: NN algorithm
このアプローチの課題 • 画像の類似度はどのように測ればよいのか? • Nearest-Neighbor アルゴリズムは最適か?
学習時
学習データの画像を全て丸暗記
テスト時
記憶の中で一番近い画像を答える
トリナクリア
トリナクリア!
⇒ NTMをつかって、Nearest-Neighborアルゴリズム (よりも良いアルゴリズム) を学習しよう
ピザ 弥勒菩薩
9
論文概要
• Neural Turing Machine (NTM) を改変した、Memory-Augmented Neural Network (MANN) を提案
• One-Shot Learning を MANN によって行う • Omniglotデータセットで評価し、高性能を達成
10
Ominglotデータセットとは
• 多様な文字種の手書き文字画像からなるデータセット • 文字は1623種類, 各文字画像が20枚
• 最初に学習用とテスト用に文字種を分ける • 1200文字種を学習に、423文字種をテストに使う
11
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
12
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
13
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
1
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
14
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
1 2 不正解!
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
15
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
1 2 不正解! 2
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
16
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
2
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
17
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
2
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
18
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
3
2
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
19
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
3 1 不正解! 2
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
20
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
3 1 不正解! 2 1
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
21
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
2 1
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
22
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
2 1
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
23
2
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
2 1
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
24
2
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
2 正解! 2 1
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
記憶
25
2
タスク設定
• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。
• 素早く正答率が上がる = One-Shot Learning がよく出来る
2 正解! 2 1
“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい
以下50回続く...
記憶
26
エピソードの作り方
1. 文字種を5つ選び、1~5までの番号をランダムに振る 2. 各文字種類から10枚画像を選ぶ 3. この50枚の画像をランダムにシャッフルする:
(𝑥𝑥𝑡𝑡 ,𝑦𝑦𝑡𝑡) 𝑡𝑡=1,…,50
...
タスク: 画像𝑥𝑥𝑡𝑡を見せて、その番号(1~5)を答えさせる。その直後に正解番号𝑦𝑦𝑡𝑡を見せる。
1 episode
27
学習とテストの流れ 学習時
テスト用のエピソードには、学習に使った文字はない
テスト時
大量のエピソードで学習
(文字の見分け方を学習)
アいアいうアうえおお...アお
ああはイイういははあ...イう
らむららももあむよよ...よも
エピソード長=50
ฆ ญฆ ฆช ฆ ... ค กข
…
1エピソードの中で、素早く正答率が上がれば、One-Shot Learningがよく出来たことになる
28
実験結果
MANN (提案手法)
LSTM (ベースライン)
40000エピソード程度学習すると、2例目で8割程度正解できる
• 学習のやり方はMANNの時と同じ • LSTMでは上手く学習できていない。原因と
しては、LSTMのセルでは、過去のデータを確実に記憶できないとかんがえられる。
n-th instance = 各ラベルの文字画像をn回目に見た時の正答率
29
実験結果 (数値)
• Human: 人間がこのタスクに挑戦した時の性能 • Feedforward: 正答率は1/5
30
実験結果: 他の手法との比較
• Nearest-NeighborアルゴリズムよりもMANNの方が高性能
• コントローラがFeedforwardのMANNは、メモリには記憶を蓄えることができる。
• LRUA(後述)が無いMANN (NTM) は性能が低い
(※今回説明した実験設定と若干異なる)
31
Read Head
MANNのアーキテクチャ 模式図
( , 𝟎𝟎,𝟎𝟎,𝟏𝟏,𝟎𝟎,𝟎𝟎 )
Controller
Memory Read Head Read Head Read Head Write Head
LSTM cell_size=200
𝒊𝒊 はメモリの番地を表す
(write weightの計算方法は後述)
32
MANNのアーキテクチャ 数式
• 読み出し キー𝒌𝒌𝒕𝒕から、メモリ上 読みだす箇所を決める
(read weight)
𝒊𝒊 はメモリの番地を表す
• 書き込み: ラベルと画像のペアをメモリに格納する
値𝒂𝒂𝒕𝒕 をwrite weight に従って メモリに書き込む
write weight の計算
least used weight 最近使われていないメモリ領域を表す重み
(後述)
33
MANNのアーキテクチャ オリジナルNTMとの違い
• MANN は Least Recently Used Access (LRUA) の機能がある
• MANNは location-based addressing を用いない
used weight の計算
※正確には、used weightの小さい、上位m個で、値を1にする
新しい画像の情報は、まだ使っていないメモリの番地に書き込みたい。LRUA機構がそれを可能にしている。(LRUAがないとうまくいかない)
34
関連論文紹介: One-Shot Learning
• Matching Network [Vinyals2016] • 今回の ”Meta-Learning with Memory-Augmented Neural Network” に続
く論文 • OmniglotデータセットのOne-Shot Learningで、MANNよりも良い性能をだ
している。
• Hierarchical Bayesian Program Learning [Lake2012] • 手書き文字のモデルをデザインし、ベイズ的に学習
35
関連論文紹介: Memoryを備えたNeural Network Memory = 情報を保持し、あとで取り出す事ができる装置
※様々な定義があり得る
Memoryをもつメリット
• あとで必要になる情報を安定的に保存できる • LSTMの内部状態は、長期の保存に向かない • コピータスク他: [Ivo2016] • 強化学習での例: [Junhyuk2016]
• 組み合わせたい情報を”テーブルの上に並べる”事ができる
• QAタスク: [Sukhbaatar2016]
36
関連論文紹介: Memoryを備えたNeural Network
• Neural Turing Machine系 • メモリから読み込む方法とメモリに書き込む方法の両方を学習 • メモリへの読み書きattentionは、Hard or Soft [Caglar2016]
• Memory Network系 [Weston2015, Sukhbaatar2016,Felix2016]
• 入力文をメモリ上に保存し、質問文に答えるのに必要な部分を取り出す • メモリからの読み込みはattention (重み係数) を用いる (Hard or Soft) • メモリへ書き込む内容 (embedding vector) は学習する
• 書き込む方法は学習しない
答え
質問文
入力文
入力文
質問文
答え
メモリ部分
37
まとめ
• NTMを応用して、One-Shot Learningができた
• One-Shot Learningとしての性能は優れているが、ベストではなさそう
• MANNは、CNNも使っていない
• 今回は、One-Shot Learning (Nearest-Neighbor的なアルゴリズム)をNTMで学習したが、他のタスクでも類似のアイディアが使えるはず
• 例えば active learning など... • タスクによって、今回のLRUAのような機能を考える必要があるのが課題
38
参考文献リスト • One-Shot Learning
• Lake, Brenden M., Ruslan R. Salakhutdinov, and Josh Tenenbaum. "One-shot learning by inverting a compositional causal process." Advances in neural information processing systems. 2013.
• Vinyals, Oriol, et al. "Matching Networks for One Shot Learning." arXiv preprint arXiv:1606.04080 (2016).
• G Koch, R Zemel, and R Salakhutdinov. Siamese neural networks for one-shot image recognition. In ICML Deep Learning workshop, 2015.
• NN with memory • Weston, Jason, Sumit Chopra, and Antoine Bordes. "Memory networks." ICLR 2015. • Sukhbaatar, Sainbayar, Jason Weston, and Rob Fergus. "End-to-end memory networks." NIPS
2015. • Hill, Felix, et al. "The Goldilocks Principle: Reading Children's Books with Explicit Memory
Representations." ICLR 2016 • Danihelka, Ivo, et al. "Associative Long Short-Term Memory." arXiv preprint
arXiv:1602.03032 (2016). • Oh, Junhyuk, et al. "Control of Memory, Active Perception, and Action in Minecraft." arXiv
preprint arXiv:1605.09128 (2016).
• Graves, Alex, Greg Wayne, and Ivo Danihelka. "Neural turing machines." arXiv preprint arXiv:1410.5401 (2014).
• Gulcehre, Caglar, et al. "Dynamic Neural Turing Machine with Soft and Hard Addressing Schemes." IJCAI workshop 2016.
SONYはソニー株式会社の登録商標または商標です。
各ソニー製品の商品名・サービス名はソニー株式会社またはグループ各社の登録商標または商標です。その他の製品および会社名は、各社の商号、登録商標または商標です。
top related