Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Meta-Learning with Memory Augmented Neural Network

10,034 views

Published on

@ICML2016読み会 2016/06/21

Published in: Engineering
  • Be the first to comment

Meta-Learning with Memory Augmented Neural Network

  1. 1. 渡辺 有祐 (ソニー) Copyright 2016 Sony Corporation Meta-Learning with Memory- Augmented Neural Networks ICML2016読み会
  2. 2. 2 自己紹介 • 発表者: 渡辺 有祐 (わたなべ ゆうすけ) • 著書 「グラフィカルモデル」 (機械学習プロフェッショナルシリーズ) • 所属: ソニー株式会社 • 機械学習関係の研究開発を行っている。 (最近は主にDeep Learning) • 2016年9月から一年間、会社派遣で、Ruslan Salakhutdinov先生 (CMU) の 研究室に留学予定
  3. 3. 3 論文 ひとこと まとめ Neural Turing Machine を One-Shot Learning に応用しました
  4. 4. 4 Neural Turing Machine (NTM) とは [Graves+2014] • NTMとは、外部記憶装置(メモリー)と、その読み書き機能を備え たNeural Network • コピーやソートなどのアルゴリズムを学習することが出来る • Neural Network なので Back Propagation で学習できる Controller MemoryRead Head Write Head input output NTM メモリーとその読み書き機能 も含めて、全体が Neural Network になっている!
  5. 5. 5 例: NTMによる、系列2倍コピータスクの学習 NTM 入力系列 出力系列 0100 011 01000100 011011 110111 110111110111 入力系列を2倍にコピーした系列になっている 10010 1001010010 学習時 アルゴリズムの入力系列と出力系列を教師データとして、 NTMを学習させるとそのアルゴリズムを学習することが出来る
  6. 6. 6 例: NTMによる、系列2倍コピータスクの学習 NTMは入ってきた系列を順にメモリに 書き込み、それを2回、順に読みだす NTM 入力系列 出力系列 010111000 01011100001 0111000 controller 010111000010111000 テスト時 010111000 010111000
  7. 7. 7 One-Shot Learning とは 通常のNNの学習 1つ(少数)の例を見ただけで認識出来るようにしたい One-Shot Learning たくさんの教師データが必要 1つ見ただけで憶えたい (人間なら出来る!!) ...
  8. 8. 8 One-Shot Learningの簡単なやり方: NN algorithm このアプローチの課題 • 画像の類似度はどのように測ればよいのか? • Nearest-Neighbor アルゴリズムは最適か? 学習時 学習データの画像 を全て丸暗記 テスト時 記憶の中で一番近 い画像を答える トリナクリ ア トリナクリア! ⇒ NTMをつかって、Nearest-Neighborアルゴリズム (よりも良いアルゴリズム) を学習しよう ピザ 弥勒菩薩
  9. 9. 9 論文概要 • Neural Turing Machine (NTM) を改変した、Memory- Augmented Neural Network (MANN) を提案 • One-Shot Learning を MANN によって行う • Omniglotデータセットで評価し、高性能を達成
  10. 10. 10 Ominglotデータセットとは • 多様な文字種の手書き文字画像からなるデータセット • 文字は1623種類, 各文字画像が20枚 • 最初に学習用とテスト用に文字種を分ける • 1200文字種を学習に、423文字種をテストに使う
  11. 11. 11 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  12. 12. 12 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  13. 13. 13 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 1 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  14. 14. 14 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 1 2 不正解! “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  15. 15. 15 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 1 2 不正解!2 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  16. 16. 16 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 2 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  17. 17. 17 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 2 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  18. 18. 18 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 3 2 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  19. 19. 19 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 3 1 不正解!2 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  20. 20. 20 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 3 1 不正解!2 1 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  21. 21. 21 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 2 1 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  22. 22. 22 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 2 1 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  23. 23. 23 2 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 2 1 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  24. 24. 24 2 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 2 正解!2 1 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 記憶
  25. 25. 25 2 タスク設定 • この一連のプロセスを エピソード と呼ぶ • エピソードの冒頭では、番号はランダムに推定するしかない • エピソードの後半に行くにつれて、正答率が上がってくる。 • 素早く正答率が上がる = One-Shot Learning がよく出来る 2 正解!2 1 “少数の文字例を見ただけで、すぐに認識できるようになる” というタスクを学習させたい 以下50回続く... 記憶
  26. 26. 26 エピソードの作り方 1. 文字種を5つ選び、1~5までの番号をランダムに振る 2. 各文字種類から10枚画像を選ぶ 3. この50枚の画像をランダムにシャッフルする: (𝑥𝑥𝑡𝑡, 𝑦𝑦𝑡𝑡) 𝑡𝑡=1,…,50 ... タスク: 画像𝑥𝑥𝑡𝑡を見せて、その番号(1~5)を答えさせる。その 直後に正解番号𝑦𝑦𝑡𝑡を見せる。 1 episode
  27. 27. 27 学習とテストの流れ 学習時 テスト用のエピソードには、 学習に使った文字はない テスト時 大量のエピソード で学習 (文字の見分け方を学習) アいアいうアうえおお...アお ああはイイういははあ...イう らむららももあむよよ...よも エピソード長=50 ฆ ญฆ ฆช ฆ ... ค กข… 1エピソードの中で、素早く正答率が上がれば、One-Shot Learningがよく出来たことになる
  28. 28. 28 実験結果 MANN (提案手法) LSTM (ベースライン) 40000エピソード程度学習すると、 2例目で8割程度正解できる • 学習のやり方はMANNの時と同じ • LSTMでは上手く学習できていない。原因と しては、LSTMのセルでは、過去のデータを 確実に記憶できないとかんがえられる。 n-th instance = 各ラベルの文字画像をn回目に見た時の正答率
  29. 29. 29 実験結果 (数値) • Human: 人間がこのタスクに挑戦した時の性能 • Feedforward: 正答率は1/5
  30. 30. 30 実験結果: 他の手法との比較 • Nearest-NeighborアルゴリズムよりもMANNの方が高性能 • コントローラがFeedforwardのMANNは、メモリには記憶を 蓄えることができる。 • LRUA(後述)が無いMANN (NTM) は性能が低い (※今回説明した実験設定と若干異なる)
  31. 31. 31 Read Head MANNのアーキテクチャ 模式図 ( , 𝟎𝟎, 𝟎𝟎, 𝟏𝟏, 𝟎𝟎, 𝟎𝟎 ) Controller Memory Read HeadRead HeadRead Head Write Head LSTM cell_size=200 𝒊𝒊 はメモリの番地を表す (write weightの計 算方法は後述)
  32. 32. 32 MANNのアーキテクチャ 数式 • 読み出し キー𝒌𝒌𝒕𝒕から、メモリ上 読みだす箇所を決める (read weight) 𝒊𝒊 はメモリの番地を表す • 書き込み: ラベルと画像のペアをメモリに格納する 値𝒂𝒂𝒕𝒕 をwrite weight に従って メモリに書き込む write weight の計算 least used weight 最近使われていないメモリ領域を表す重み (後述)
  33. 33. 33 MANNのアーキテクチャ オリジナルNTMとの違い • MANN は Least Recently Used Access (LRUA) の機 能がある • MANNは location-based addressing を用いない used weight の計算 ※正確には、used weightの小さい、 上位m個で、値を1にする 新しい画像の情報は、まだ使っていないメモリの番地に書き込みたい。 LRUA機構がそれを可能にしている。(LRUAがないとうまくいかない)
  34. 34. 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. 35. 35 関連論文紹介: Memoryを備えたNeural Network Memory = 情報を保持し、あとで取り出す事ができる装置 ※様々な定義があり得る Memoryをもつメリット • あとで必要になる情報を安定的に保存できる • LSTMの内部状態は、長期の保存に向かない • コピータスク他: [Ivo2016] • 強化学習での例: [Junhyuk2016] • 組み合わせたい情報を”テーブルの上に並べる”事ができる • QAタスク: [Sukhbaatar2016]
  36. 36. 36 関連論文紹介: Memoryを備えたNeural Network • Neural Turing Machine系 • メモリから読み込む方法とメモリに書き込む方法の両方を学習 • メモリへの読み書きattentionは、Hard or Soft [Caglar2016] • Memory Network系 [Weston2015, Sukhbaatar2016,Felix2016] • 入力文をメモリ上に保存し、質問文に答えるのに必要な部分を取り出す • メモリからの読み込みはattention (重み係数) を用いる (Hard or Soft) • メモリへ書き込む内容 (embedding vector) は学習する • 書き込む方法は学習しない 答え 質問文 入力文 入力文 質問文 答え メモリ部分
  37. 37. 37 まとめ • NTMを応用して、One-Shot Learningができた • One-Shot Learningとしての性能は優れているが、ベ ストではなさそう • MANNは、CNNも使っていない • 今回は、One-Shot Learning (Nearest-Neighbor的な アルゴリズム)をNTMで学習したが、他のタスクでも類 似のアイディアが使えるはず • 例えば active learning など... • タスクによって、今回のLRUAのような機能を考える必要があるのが課題
  38. 38. 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.
  39. 39. SONYはソニー株式会社の登録商標または商標です。 各ソニー製品の商品名・サービス名はソニー株式会社またはグループ各社の登録商標または商標です。その他の製品および会社名は、各社の商号、登録商標または商標です。

×