可微分ニューラルコンピュータとは何か(2) システム概観

システム概観


DNCは外部メモリ行列に結合されたニューラルネットワークである。 (ネットワークの動作は、メモリが容量まで満たされていない限りメモリのサイズに依存しないため、メモリは「外部」と見なされる)。このメモリ行列をDNCのRAMと考えるならば、 「コントローラ」と呼ばれるネットワークは、微分可能なCPUである。その動作は、勾配降下法で学習される。

DNCアーキテクチャは、メモリを選択的に読み書きすることができ、メモリの内容を繰り返して修正することが可能である点で、近年のニューラル・メモリー・フレームワークとは異なっている。DNCの以前の形式であるニューラル・チューリング・マシンは、同様の構造を持っていたが、メモリアクセスの方法がより制限されていた(詳細は「Method」の章を参照されたい)。

従来のコンピュータが、メモリ内容にアクセスするためにユニークなアドレスを使用するのに対し、DNCは微分可能なAttentionメカニズムを使用して、$N×W$メモリ行列である$M$内の$N$行、「ロケーション」上に分布を定義する。この分布が、各ロケーションが読取りまたは書込み操作に、関わる程度を表現している。我々はそれを「重み付け」と呼んでいる。

メモリM上の読み出しで、重み付け$w^r$によって返される読み出しベクトル$r$は、メモリ・ロケーションにわたって重み付けされた和である。$r = \sum_{i=1}^N  M [i、\cdot ] w^r [i] $である。ここで、「$\cdot$」は全ての$j = 1, ... ,W$を表している。

同様に、書き出しの操作は、書き出しの重み付け$w^w$を使う。まず、消去ベクトル$e$を使って消去し、その後で、書き出しのベクトル$v$を追加する。
 $M[i,j] \leftarrow M [i、j](1-w^w [i]e[j])+ w^w [i]v[j]$

重みづけを決定して適用する機能の単位は、読み書きヘッドと呼ばれる。ヘッドの動作は、以下に要約する。形式的な記述は、「Methodの」章を参照されたい。

ヘッドとメモリーの間の相互関係


ヘッドは3つの異なる形の微分可能なAttentionを用いる。

コンテンツ検索


第一は、コンテンツ検索である。そこでは、コントローラによって出力されたキー・ベクトルが、類似性の尺度(コサイン類似度を使う)に従って、メモリ内の各ロケーションの内容と比較される。この類似性のスコアが、連想記憶のために読取りヘッドによって利用される重み付け、あるいは、メモリ内の既存のベクトルを修正するために書込みヘッドによって使用される重み付けを決定する。

重要なことは、メモリ・ロケーションのコンテンツと部分的にしか一致しないキーも、そのロケーションに強く注目するために使用できるということである。これによって、パターンを完成させるような形式も可能になる。なぜなら、メモリのロケーションを読み取ることによって回復される値には、キーには表現されていない追加の情報が含まれているからである。

一般に、キー値での値の検索は、外部メモリ内の連想データ構造をナビゲートするための豊富なメカニズムを提供する。これは、あるアドレスのコンテンツが他のアドレスへの参照を効果的にエンコードできるからである。

時間的リンク行列


第二のAttentionメカニズムは、$N×N$の時間的リンク行列Lである。それは、連続して書き込まれたロケーション間の遷移を記録する。$L [i、j]$は、$i$が$j$の後に書き込まれた次の位置であれば1に近く、そうでない場合には0に近い値を持つ。

任意の重みづけ$w$に対して、操作$Lw$は、フォーカスを、$w$で強調された後に書き込まれた位置に、前方に滑らかにシフトさせる。$L^Tw$は、フォーカスを後方にシフトする。これにより、DNCは、連続した書き込みが、近接した時間の範囲内に発生しなかった場合でも、シーケンスを書き込んだ順序で復元するネイティブな機能を提供する。

メモリー割り当て


第三のAttentionの形式は、書き込みのためのメモリを割り当てる。各ロケーションの「利用状況」は0と1の間の数として表され、使用されていない場所を選ぶ重み付けが、書込みヘッドに送られる。

利用状況は、ロケーションへの書き込みごとに自動的に増加するだけでなく、読み取りごと減らすことができる。これにより、コントローラは不要になったメモリを再割り当てできる。

割り当てメカニズムはメモリのサイズと内容とは無関係である。つまり、あるサイズのメモリを使用してあるタスクを解決するためにDNCを訓練し、後で再訓練することなく、大容量のメモリにアップグレードすることができる。原理的には、これは、任意のロケーションの最小使用可能量が特定の閾値を超えるたびに、自動的にロケーションの数を増加させて、無制限の外部メモリを使用することを可能にする。

海馬の機能との類似


Attentionメカニズムのデザインは、主に計算上の考慮によって動機づけられている。コンテンツ検索は、連想データ構造の形成を可能にする。時間的リンクは、入力シーケンスの逐次検索を可能にする。メモリーの割り当ては、書き込みヘッドに未使用のロケーションを提供する。

しかし、興味深いのは、DNCの記憶メカニズムと哺乳動物の海馬の機能の能力との間には、類似点があることである。 DNCの記憶の修正は速く一次的であり得るのだが、それは、海馬CA3およびCA1シナプスの長期的な増強に似ている。

海馬歯状回は、ニューロンの形成をサポートすることが知られている領域であるが、そこでは記憶の表現をさらに疎なものにして、それにより記憶容量を拡大しているのではと提案されている。我々のモデルでの、利用状況に基づくメモリ割り当てと疎な重み付けは、それと類似の機能を提供しているのかもしれない。

人間の「自由想起」の実験では、最初に提示されたのと同じ順序の時、想起の確率が高まることが示されるのだが、それは、時間的なコンテキスト・モデルによって説明される海馬依存の現象である。それは、我々のモデルでの時間的なリンクの形成とある類似性を有する。(「method」の章を参照されたい。)





a Controller


リカレント・コントローラ・ネットワークは、外部のデータソースから入力を受け取り、出力を生成する。

b Read and Write Heads

c Memory


コントローラは、1つの書き込みヘッド(緑)と複数の読み取りヘッド(この場合は2つの青とピンク)をパラメータ化するベクトルも出力する。

書き込みヘッドは、$N×W$ メモリ行列を編集するために使用される書き込みベクトルおよび消去ベクトルを定義し、その要素の大きさおよび符号は、それぞれ四角の領域および色の濃さによって示されている。

さらに、コンテンツ検索では、書き込みキーを使用して、以前に書き込まれた場所を検索して編集する。書込みキーは、メモリ行列内の行 すなわちロケーションにわたって書込み動作を選択的に集中させる重み付けの定義に、影響を与えることができる。

読み取りヘッドは、読み取りモードと呼ばれるゲートを使用して、読み取りキー( 'C')を使用してコンテンツ検索と、書かれた順に前方( 'F')または後方( 'B')への読み出しとを切り替える。

 d Memory Usage and Temporal Links


利用状況のベクトルは、これまで使用されていたロケーションを記録し、時間的リンク・行列は、ロケーションに書き込まれた順序を記録する。ここでは、ロケーションの順序は、矢印で表されている。

コメント

このブログの人気の投稿

TensorFlow Foldについて

TPU論文の翻訳(1)

可微分ニューラルコンピュータとは何か(1) 概論