[dl輪読会] hybrid computing using a neural network with dynamic external memory

50
Hybrid Computing using a Neural Network with Dynamic External Memory Yusuke IWASAWA

Upload: yusuke-iwasawa

Post on 14-Jan-2017

81 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Hybrid Computing using a Neural Network with

Dynamic External Memory

Yusuke IWASAWA

Page 2: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

書誌情報

• Nature (Deep Mind3 本目 )• 2016/10/12 published• 引用 21• 著者 (20 人,すべて DeepMind)

Alex Graves, Greg Wayne, Malcolm Reynolds, Tim Harley, Ivo Danihelka, Agnieszka Grabska-Barwińska, Sergio Gómez Colmenarejo, Edward Grefenstette, Tiago Ramalho, John Agapiou, Adrià Puigdomènech Badia, Karl Moritz Hermann, Yori Zwols, Georg Ostrovski, Adam Cain, Helen King, Christopher Summerfield, Phil Blunsom, Koray Kavukcuoglu & Demis Hassabis

Page 3: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

概要

• Differentiable Neural Computer (DNC) を提案– 微分可能なニューラルネットによるコンピュータ ( 的なもの )

• 外部メモリを持つニューラルネットワーク系の論文– Memory Networks (2014)– Neural Turing Machine (2014, NTM)– Pointer Networks (2015)– Dynamic Memory Networks (2015)– Etc

• 基本的に NTM の上位互換– Joint-First の Alex Graves さん , Greg Wayne さんは NTM の著者

Page 4: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

目次

• なぜ外部メモリを使うのか• 外部メモリを使うとできること• 外部メモリの使い方

– Memory Networks– Neural Turing Machine– Differentiable Neural Computer

• 本論文の実験• 外部メモリ付き NN の課題と研究動向

Page 5: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

背景

• ニューラルネットワークは信号処理で特にうまくいっている– 画像処理– 音声処理

• 一方,いくつかのことはできない or 苦手 – 変数を表現する– データ構造 ( リストなど ) を表現する– 長期に渡って記憶する

• 普通のノイマン型コンピュータはこれらが得意• NN とコンピュータの差分 = 外部記憶が課題では

– 普通の NN は記憶する機能がない / 弱い• 外部記憶装置を持つニューラルネットを提案

Page 6: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

外部メモリ付きニューラルネット

NN

Input

Output

NN

Input

Output

External

Memory

普通のNN 外部メモリ付きNN

読み書き

メモリの内容

• DNN• CNN

• Memory Networks [Weston, 2015]• Neural Turing Machine [Graves, 2014]• Dynamic Neural Computer [Graves, 2016]

Page 7: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

外部メモリと LSTM, ノイマン型コンピュータ,脳

• LSTM (Long Short Term Memory) との比較– LSTM はある種の内部メモリ– メモリの大きさと学習するパラメタ / 処理が切り離せない– + 情報の保持と情報に対する処理を同じ 1 つの NN で行うので大変

• ノイマン型コンピュータにおける位置づけ– RAM 的な位置づけ

• 脳的な位置づけ – Working Memory と対応に関する記述 (NTM 論文 )– 海馬と対応に関する記述 (DNC 論文 )– ( よくわからないので強い方教えてください )

Page 8: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Differentiable Neural Computer (DCN) の特徴

• 従来的なニューラルネットと比べると– 外部メモリを持つため,従来は難しかった長期記憶等が可能

• ノイマン型コンピュータと比べると– 微分可能であり,データからメモリの使い方を学習可能

• 他の外部メモリ付きニューラルネットと比べると– メモリをどう使うかが異なる ( 後述 )

Page 9: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

目次

• なぜ外部メモリを使うのか• 外部メモリを使うとできること• 外部メモリの使い方• 本論文の実験• 外部メモリ付き NN の課題と研究動向

Page 10: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Logical Reasoning (bAbI)

By Facebook“Towards AI-Complete Question Answering: A Set of Prerequisite Toy Tasks” より抜粋

Page 11: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

対話

“EVALUATING PREREQUISITE QUALITIES FOR LEARN - ING END -TO-END DIALOG SYSTEMS” より抜粋

Page 12: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Visual Question Answering

“Dynamic Memory Networks for Visual and Textual Question Answering” より抜粋

これ記憶しておく必要があるのかは図を見ただけだとわからなかった

Page 13: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

アルゴリズム的な処理

入力を回繰り返す = For 文緑のあとに現れた入力を出力

“Neural Turing Machine” より抜粋

Page 14: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

推論 ( この論文より抜粋 )

Jo が Freya の母であり, Charlotte が Jo の母であり, Lindsey が Charlotte の母であり, Fergus がLindsey の息子であることが分かれば Freya の Maternal great uncle であることがわかる

Page 15: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

目次

• なぜ外部メモリを使うのか• 外部メモリを使うとできること• 外部メモリの使い方

– DNCの話しして最後にメモリーネットとNTMとの違いをちょろっと説明します• 本論文の実験• ICLR2017, NIPS2016 での研究動向

Page 16: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

外部メモリ付き NN の一般的な構成要素

1. Memory: 情報を記憶しておく装置2. Input Module: 入力 x を変換する部分 3. Writer: メモリを書き換える装置4. Reader: メモリから必要な部分を読み込む装置5. Output Module: 読み込んだ内容を元に出力

※ 青部分が新しい要素※ モデル / タスクによっては一部は固定にしたりする

Page 17: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

DNC の実現方法

• Memory: 記憶素子– 前ページ 1 に対応

• Controller: – 入力を変換 + 出力に変換– に加えて, Heads で読み込み書き込みを行うためのパラメタを出力– 前ページ 2 ~ 5 に対応

• Heads:– 読み込みヘッド : 読み込み用のパラメタを使って対象を決定– 書き込みヘッド : 書き込み用のパラメタを使って対象を決定

Page 18: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

DNC の概念図

Controller は通常の入力に加えて,メモリからの内容を受け取って出力 そのために,通常の出力に加えて読み込み / 書き出し用のパラメタを出力

Page 19: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

外部メモリを利用するための DNC の機能

• メモリの内容を読み込む• メモリの内容を書き込む• そのためのアドレスを決める• の 3 つ• 順に説明

Page 20: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

読み込み方法

• 普通のコンピュータ:指定したアドレスの要素を読み込む– 1 箇所だけ明示的に指定する

• 明示的に指定すると微分不可能になる– どこかのメモリを指定するのは非線形な処理

• DNC ( というか多くの外部メモリ付き NN ) : Soft Attention– メモリの数が N 個で読み込みたいメモリの数が R 個の場合,どこの内容をどのくらい読むかの重みベクトル wr を R 個作る

Page 21: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

概念図との対応

図だと各 head が 1 箇所を読んでるように見えるが実際は全メモリに対する重みを計算する 

Page 22: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

書き込みの方法

• 同じように soft attention を使ってどこに書き込むかを決める (wr を作る )• 消去ベクトル e と追加ベクトル v を使って内容を変更する

– e と v も controller が出力 ( 要は学習する )– e は [0, 1]

Page 23: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

概念図との対応

図だと 1 箇所変えてるように見えるけど実際には全部変更している

Page 24: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

次の問題 : どうやって attention するか ?

つまりどうやって重み w ( 赤枠 ) を作るのか

Page 25: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

w をどうやって作るか?

• 読み込む際の重み wr :– Content-based addressing– + Temporal memory linkage

• 書き込む際の重み ww :– Content-based addressing– + Dynamic memory allocation

Page 26: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Content-based addressing1. 書き込み / 読み込みキー k を用意する (controller が出力 )2. k とメモリー M の類似度 D( 論文ではコサイン類似度 ) を測る3. 温度 β(>=1) 付きの softmax を取る

– ベータは確率分布を尖らせる意味がある

※ 要は key と似てる場所の中身を読み込む※DNC に限らず多くの外部メモリ付きニューラルネットワークはこの方法で addressing

i番目のメモリへのコンテンツによる重み

Page 27: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

個人的疑問 : これ意味あるの?

• 確認: Keyベクトル kは controllerから出力される• いちいちメモリにマッチングしないでそのままこの k を使えば良いのでは?• 正確な値を出力するより類似した値を出力する方が簡単なはずなので意味はありそう

– パターンマッチングとして機能する– Fig. 3 とかがパターンマッチできてることを示している気がする

Page 28: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

概念図との対応

書くヘッド ( 図だと書き込み 1 読み込み 2)ごとに key を用意する (controller が出力 )

Page 29: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Temporal memory linkage• Content-based だけで十分か?

=>NO!• Content-based には,書き込みの順序に関する情報が記録されていない

– 書き込まれた順番に処理するというようなアルゴリズムは難しい–例えば順番に Copy , x のあとに書き込まれた y を出力など

• DNC では書き込み順序を保存=>Temporal memory linkage

Page 30: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Temporal memory linkage• リンク行列 L (N×N) を記録する• L[i, j] : i のあとに j が書き込まれた場合に 1 に近く,そうでない場合に 0 に近くなるような行列• このような行列を用意できれば,

– f = Lwt-1 は時刻 t-1 で注目されていた位置の次に書き込まれた位置に注目を移動させる– b = LTwt-1 は時刻 t-1 で注目されていた位置の前に書き込まれた位置に注目を移動させる 

Page 31: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Temporal memory linkage• どうやってそのような行列を ( 微分可能な形で ?) 用意するか?

=>ごめんなさい

In Methods, “Temporal Memory Linkage”

Page 32: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

読み込み場所の Addressing• 以上をまとめて,次の 3 つを考慮して読み込み場所を決定

– c: メモリと読込みキー kr の類似度による重み– b: 1 つ前に注目が集まっていたアドレスの 1 つ前に書き込まれた場所への重み– f: 1 つ前に注目が集まっていたアドレスの 1 つ後に書き込まれた場所への重み

• これらを混合するパラメタ π も controller から出力– π=softmax(.) なので,実質的にはほぼ one-hot

=> 読み込みモードとして機能する

Page 33: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

書き込み場所の Addressing• Content-Based + Dynamic memory allocation

Page 34: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Dynamic Memory Allocation in Computers

from wikipedia

DNC でも同様の仕組みを導入

Page 35: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Dynamic Memory Allocation in DNC• 必要に応じてメモリを開放して,割り当てる操作を微分可能な形で実現

– memory usage vector u を使って使われてない場所を表現• ut: memory usage vector

–時刻 t におけるメモリの使用状況– 0 に近ければ使われておらず, 1 に近ければ使われている– 書き込むたびに 1 に近づき, free gate f により 0 に近づく

• fit: free gates (controller が出力 ) – ヘッダ i が時刻 t に読み込んだ場所を開放してよいか

Page 36: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

書き込み場所の Addressing• u を元に計算した allocation vector a と,書き込みヘッド用のキー kw を元に計算した content weight vector c にの重み和により計算

– a は memory usage vector に応じて作られるベクトル,使用度が小さい場所で 1 になるようなベクトル• c と a の混合はゲートにより調整

Page 37: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Controller が出力するものまとめ

• 読み込み関連– R 個の読込キーベクトル : kri

t

– R 個の読込強さ : βrit

– R 個の読み込みモード : πit

• 書き込み関連– 1 個の書き込みキーベクトル : kr

t

– 1 個の書き強さ : βrt

– 消去ベクトル : et

– 書き込みベクトル : vt

– R 個の free gates: fit

– allocation gate: gat

これに最終的な出力 y を加えたベクトルを 1 つの NN で出力 NN は LSTM で表現 ( 実際はなんでも良い )

Page 38: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

全体構造再掲

コントローラが読み込み / 書き込み用のパラメタを出力 Content addressing + Temporal memory linkage + Dynamic memory allocationで読み込み + 書き込み

Page 39: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

Memory Networks, Neural Turing Machine との違い

• Memory Networks vs. DNC (TNM) – Memory Networks は確実に覚えるという目的でメモリを利用

• メモリの内容を書き換える機能はない• Content based addressing だけ ( たぶん )

– NTM や DNC はどちらかというとアルゴリズムの実行のためにメモリを利用してその方法まで学習する– 学習は Memory Networks の方がだいぶし易い ( らしい )

• NTM vs. DNC– 目的レベルでは同じ– addressing の方法の工夫+ メモリ割り当て方法の導入–精度は DNC のほうが良い (bAbI タスクでの比較 )

Page 40: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

目次

• なぜ外部メモリを使うのか• 外部メモリを使うとできること• 外部メモリの使い方• 本論文の実験• 外部メモリ付き NN の課題と研究動向

Page 41: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

実験 1: コピータスク

• Black があったら入力されたものをコピーして出力するタスク• 読み込みと書き込みで同じ場所に注目している + なんとなくコピーできている• メモリもうまく再利用できている ( 一度読んだら開放して良いということを学習 )

Page 42: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

実験 1: LSTM と NTM との比較参考資料 (NTM 論文より抜粋 )

NTM

LSTM

• 長くなると LSTM では難しい

Page 43: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

実験 2: bAbI

• 既存手法より良い精度• MemN2N ( メモリーネットも比較的良い )• エンコード方法などの詳細は Method, “bAbI task description” に

Page 44: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

実験 3: Graph task

• 詳しくは論文で ( それぞれ , 98.8% , 55.3% , 81.8% の精度であることが報告されている )• 入力タプルをどうエンコードするかは METHOD, “Graph task description” に書いてある

Page 45: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

実験 4: Block puzzle • Winograds の SHRDLU を参考に Mini-SHRDLU を作成

– https://www.youtube.com/watch?v=BTSJ0-saaUc• 下図だと Q というゴール (事前にメモリにのってる ) を解釈して行動する

– Q は例えば 2 の下に 4 , 3 の右に 6 ,などの組み合わせ• 強化学習との組み合わせ方法は Method, “Reinforcement learning” に

Page 46: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

目次

• なぜ外部メモリを使うのか• 外部メモリを使うとできること• 外部メモリの使い方• 本論文の実験• 外部メモリ付きNNの課題と研究動向

Page 47: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

DNC および外部メモリ付き NN の課題

• 1. 大規模メモリへの対応– 特に, Memoryへのアクセスに softmax (soft attention) を使っていることが問題– メモリを増やすと全部見ないといけないので難しい

• 2. 実世界データでの利用–今回の論文でも疑似データでの Toy タスクがメイン– 実世界のデータへの適用 ( たぶん 1 がボトルネックになる )

Page 48: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

NTM 以降の研究

• “Reinforcement Learning NTM”– Hard attention: REINFORCE 使って訓練

• “Scaling Memory-Augmented Neural Networks with Sparse Reads and Wrights” (NIPS2016)– なんか K << N 個しか重みを用意してないけどよくわからない

Page 49: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

最近の研究 ICLR2017• “Hierarchical Memory Networks” (ICLR2017)

– メモリを階層的に表現することで softmax で見るメモリを減らす• “Dynamic NTM with Continuous and Discrete

Addressing Schemes” ICLR2017– REINFORCE による Hard Attention と softmax による

Soft attention を併用している– よくわからない

• “Lie Access Neural Turing Machine” ICLR2017– リー群を利用した addressing–自然にヘッドを移動できるっぽい

Page 50: [DL輪読会] Hybrid computing using a neural network with dynamic external memory

まとめ

• DNC は外部メモリ付きのニューラルネット• 外部メモリを持つ

=> 従来は難しかった長期記憶や変数の扱いが可能に• 全体が微分可能なように設計されている

=> アルゴリズム的なものを学習できる• いかにスケールさせるか / 実世界の問題に適用するかは課題• addressing の工夫でスケールさせる方向で研究されている