meta-learning with memory augmented neural network

39
渡辺 有祐 (ソニー) Copyright 2016 Sony Corporation Meta-Learning with Memory- Augmented Neural Networks ICML2016読み会

Upload: yusuke-watanabe

Post on 08-Jan-2017

1.417 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: Meta-Learning with Memory Augmented Neural Network

渡辺 有祐 (ソニー)

Copyright 2016 Sony Corporation

Meta-Learning with Memory-Augmented Neural Networks

ICML2016読み会

Page 2: Meta-Learning with Memory Augmented Neural Network

2

自己紹介

• 発表者: 渡辺 有祐 (わたなべ ゆうすけ) • 著書 「グラフィカルモデル」 (機械学習プロフェッショナルシリーズ)

• 所属: ソニー株式会社

• 機械学習関係の研究開発を行っている。 (最近は主にDeep Learning) • 2016年9月から一年間、会社派遣で、Ruslan Salakhutdinov先生 (CMU) の

研究室に留学予定

Page 3: Meta-Learning with Memory Augmented Neural Network

3

論文 ひとこと まとめ

Neural Turing Machine を One-Shot Learning に応用しました

Page 4: Meta-Learning with Memory Augmented Neural Network

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 になっている!

Page 5: Meta-Learning with Memory Augmented Neural Network

5

例: NTMによる、系列2倍コピータスクの学習

NTM

入力系列 出力系列

0100 011

01000100 011011

110111 110111110111

入力系列を2倍にコピーした系列になっている

10010 1001010010

学習時

アルゴリズムの入力系列と出力系列を教師データとして、 NTMを学習させるとそのアルゴリズムを学習することが出来る

Page 6: Meta-Learning with Memory Augmented Neural Network

6

例: NTMによる、系列2倍コピータスクの学習

NTMは入ってきた系列を順にメモリに 書き込み、それを2回、順に読みだす

NTM

入力系列 出力系列

010111000 010111000010111000

controller

010111000010111000

テスト時

010111000

010111000

Page 7: Meta-Learning with Memory Augmented Neural Network

7

One-Shot Learning とは

通常のNNの学習

1つ(少数)の例を見ただけで認識出来るようにしたい

One-Shot Learning

たくさんの教師データが必要

1つ見ただけで憶えたい (人間なら出来る!!)

...

Page 8: Meta-Learning with Memory Augmented Neural Network

8

One-Shot Learningの簡単なやり方: NN algorithm

このアプローチの課題 • 画像の類似度はどのように測ればよいのか? • Nearest-Neighbor アルゴリズムは最適か?

学習時

学習データの画像を全て丸暗記

テスト時

記憶の中で一番近い画像を答える

トリナクリア

トリナクリア!

⇒ NTMをつかって、Nearest-Neighborアルゴリズム (よりも良いアルゴリズム) を学習しよう

ピザ 弥勒菩薩

Page 9: Meta-Learning with Memory Augmented Neural Network

9

論文概要

• Neural Turing Machine (NTM) を改変した、Memory-Augmented Neural Network (MANN) を提案

• One-Shot Learning を MANN によって行う • Omniglotデータセットで評価し、高性能を達成

Page 10: Meta-Learning with Memory Augmented Neural Network

10

Ominglotデータセットとは

• 多様な文字種の手書き文字画像からなるデータセット • 文字は1623種類, 各文字画像が20枚

• 最初に学習用とテスト用に文字種を分ける • 1200文字種を学習に、423文字種をテストに使う

Page 11: Meta-Learning with Memory Augmented Neural Network

11

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 12: Meta-Learning with Memory Augmented Neural Network

12

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 13: Meta-Learning with Memory Augmented Neural Network

13

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

1

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 14: Meta-Learning with Memory Augmented Neural Network

14

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

1 2 不正解!

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 15: Meta-Learning with Memory Augmented Neural Network

15

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

1 2 不正解! 2

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 16: Meta-Learning with Memory Augmented Neural Network

16

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

2

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 17: Meta-Learning with Memory Augmented Neural Network

17

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

2

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 18: Meta-Learning with Memory Augmented Neural Network

18

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

3

2

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 19: Meta-Learning with Memory Augmented Neural Network

19

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

3 1 不正解! 2

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 20: Meta-Learning with Memory Augmented Neural Network

20

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

3 1 不正解! 2 1

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 21: Meta-Learning with Memory Augmented Neural Network

21

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

2 1

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 22: Meta-Learning with Memory Augmented Neural Network

22

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

2 1

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 23: Meta-Learning with Memory Augmented Neural Network

23

2

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

2 1

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 24: Meta-Learning with Memory Augmented Neural Network

24

2

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

2 正解! 2 1

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

記憶

Page 25: Meta-Learning with Memory Augmented Neural Network

25

2

タスク設定

• この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。

• 素早く正答率が上がる = One-Shot Learning がよく出来る

2 正解! 2 1

“少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい

以下50回続く...

記憶

Page 26: Meta-Learning with Memory Augmented Neural Network

26

エピソードの作り方

1. 文字種を5つ選び、1~5までの番号をランダムに振る 2. 各文字種類から10枚画像を選ぶ 3. この50枚の画像をランダムにシャッフルする:

(𝑥𝑥𝑡𝑡 ,𝑦𝑦𝑡𝑡) 𝑡𝑡=1,…,50

...

タスク: 画像𝑥𝑥𝑡𝑡を見せて、その番号(1~5)を答えさせる。その直後に正解番号𝑦𝑦𝑡𝑡を見せる。

1 episode

Page 27: Meta-Learning with Memory Augmented Neural Network

27

学習とテストの流れ 学習時

テスト用のエピソードには、学習に使った文字はない

テスト時

大量のエピソードで学習

(文字の見分け方を学習)

アいアいうアうえおお...アお

ああはイイういははあ...イう

らむららももあむよよ...よも

エピソード長=50

ฆ ญฆ ฆช ฆ ... ค กข

1エピソードの中で、素早く正答率が上がれば、One-Shot Learningがよく出来たことになる

Page 28: Meta-Learning with Memory Augmented Neural Network

28

実験結果

MANN (提案手法)

LSTM (ベースライン)

40000エピソード程度学習すると、2例目で8割程度正解できる

• 学習のやり方はMANNの時と同じ • LSTMでは上手く学習できていない。原因と

しては、LSTMのセルでは、過去のデータを確実に記憶できないとかんがえられる。

n-th instance = 各ラベルの文字画像をn回目に見た時の正答率

Page 29: Meta-Learning with Memory Augmented Neural Network

29

実験結果 (数値)

• Human: 人間がこのタスクに挑戦した時の性能 • Feedforward: 正答率は1/5

Page 30: Meta-Learning with Memory Augmented Neural Network

30

実験結果: 他の手法との比較

• Nearest-NeighborアルゴリズムよりもMANNの方が高性能

• コントローラがFeedforwardのMANNは、メモリには記憶を蓄えることができる。

• LRUA(後述)が無いMANN (NTM) は性能が低い

(※今回説明した実験設定と若干異なる)

Page 31: Meta-Learning with Memory Augmented Neural Network

31

Read Head

MANNのアーキテクチャ 模式図

( , 𝟎𝟎,𝟎𝟎,𝟏𝟏,𝟎𝟎,𝟎𝟎 )

Controller

Memory Read Head Read Head Read Head Write Head

LSTM cell_size=200

𝒊𝒊 はメモリの番地を表す

(write weightの計算方法は後述)

Page 32: Meta-Learning with Memory Augmented Neural Network

32

MANNのアーキテクチャ 数式

• 読み出し キー𝒌𝒌𝒕𝒕から、メモリ上 読みだす箇所を決める

(read weight)

𝒊𝒊 はメモリの番地を表す

• 書き込み: ラベルと画像のペアをメモリに格納する

値𝒂𝒂𝒕𝒕 をwrite weight に従って メモリに書き込む

write weight の計算

least used weight 最近使われていないメモリ領域を表す重み

(後述)

Page 33: Meta-Learning with Memory Augmented Neural Network

33

MANNのアーキテクチャ オリジナルNTMとの違い

• MANN は Least Recently Used Access (LRUA) の機能がある

• MANNは location-based addressing を用いない

used weight の計算

※正確には、used weightの小さい、上位m個で、値を1にする

新しい画像の情報は、まだ使っていないメモリの番地に書き込みたい。LRUA機構がそれを可能にしている。(LRUAがないとうまくいかない)

Page 34: Meta-Learning with Memory Augmented Neural Network

34

関連論文紹介: One-Shot Learning

• Matching Network [Vinyals2016] • 今回の ”Meta-Learning with Memory-Augmented Neural Network” に続

く論文 • OmniglotデータセットのOne-Shot Learningで、MANNよりも良い性能をだ

している。

• Hierarchical Bayesian Program Learning [Lake2012] • 手書き文字のモデルをデザインし、ベイズ的に学習

Page 35: Meta-Learning with Memory Augmented Neural Network

35

関連論文紹介: Memoryを備えたNeural Network Memory = 情報を保持し、あとで取り出す事ができる装置

※様々な定義があり得る

Memoryをもつメリット

• あとで必要になる情報を安定的に保存できる • LSTMの内部状態は、長期の保存に向かない • コピータスク他: [Ivo2016] • 強化学習での例: [Junhyuk2016]

• 組み合わせたい情報を”テーブルの上に並べる”事ができる

• QAタスク: [Sukhbaatar2016]

Page 36: Meta-Learning with Memory Augmented Neural Network

36

関連論文紹介: Memoryを備えたNeural Network

• Neural Turing Machine系 • メモリから読み込む方法とメモリに書き込む方法の両方を学習 • メモリへの読み書きattentionは、Hard or Soft [Caglar2016]

• Memory Network系 [Weston2015, Sukhbaatar2016,Felix2016]

• 入力文をメモリ上に保存し、質問文に答えるのに必要な部分を取り出す • メモリからの読み込みはattention (重み係数) を用いる (Hard or Soft) • メモリへ書き込む内容 (embedding vector) は学習する

• 書き込む方法は学習しない

答え

質問文

入力文

入力文

質問文

答え

メモリ部分

Page 37: Meta-Learning with Memory Augmented Neural Network

37

まとめ

• NTMを応用して、One-Shot Learningができた

• One-Shot Learningとしての性能は優れているが、ベストではなさそう

• MANNは、CNNも使っていない

• 今回は、One-Shot Learning (Nearest-Neighbor的なアルゴリズム)をNTMで学習したが、他のタスクでも類似のアイディアが使えるはず

• 例えば active learning など... • タスクによって、今回のLRUAのような機能を考える必要があるのが課題

Page 38: Meta-Learning with Memory Augmented Neural Network

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.

Page 39: Meta-Learning with Memory Augmented Neural Network

SONYはソニー株式会社の登録商標または商標です。

各ソニー製品の商品名・サービス名はソニー株式会社またはグループ各社の登録商標または商標です。その他の製品および会社名は、各社の商号、登録商標または商標です。