デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。現在のデジタルコンピュータは計算処理を担当するプロセッサと1次記憶や長期記憶を担当する外部メモリから構成される。計算の際に外部記憶に格納されている値を参照する仕組みは変数や関数の仕組みの実現につながり、問題の抽象化を達成する。f(x,y)=2x+yという関数は変数xとyを変えることで再利用でき、別の関数の結果を変数として使うことで関数同士を組み合わせることもできる。関数自身を変数とみなすこともでき、高階関数のような高度な計算能力を備えた計算機を実現できる。拡張可能な外部記憶は、新しいタスクを効率よく覚えられるという長所がある。記憶容量が固定の場合、新しいタスクを覚えるたびに既存の記憶が汚染され、既存のタスクの性能が低下する恐れがある。新しいタスクを覚えるごとに記憶領域を増やすことで、既存の知識を汚染せずに学習することができる。Computers(DNC)1)を紹介する。Machine(NTM)の後継であり、NTMより複雑なタスクを解けるようになった。DNCはNTMと同様にプロセッサに相当する微分可能なコントローラと、外部メモリに相当する外部記憶から構成される。DNCは外部記憶にデータを読み書きするが、この位置を決めるのがソフトアテンションとよばれる機能であり、通常の記憶装置と同様に書き込みヘッド、読み込みヘッドと呼ぶことにする。DNCのヘッドは通常の離散的なアドレッシングとは違って、位置に対する重み分布を使ってどこに書き込むか、どこから読み込むのかを決める。外部記憶はN個の行から構成されるN×Wの行列Mで表される。・・・,N]を持ち、各アドレスには長さWのベクトルが格納されている。読み込み時のアテンションは長さNの実数ベクトルwrで表され、これにより読み込み結果のベクトルrはとして表される。M[i,・]はMのi行目のベクトルを意味する。同様に、ベクトルvを外部記憶に書き込む場合は書き込みヘッドである長さNのベクトルwwを使い、さらに長さMの消去ベクトルeを使い、次のように外部記憶を更新する。M[i,j]M[i,j](1−ww[i]e[j])+ww[i]v[j]コントローラは各時刻に、入力xと前の時刻の読み込み結果rを受取り、これらの入力情報とRNNの内部状態に基づいて出力yと書き込む内容v、そして読み込みヘッドwr、書き込みヘッドwwを出力する。この書き込みヘッドに基づいて、外部記憶にvが記録される。アテンションの仕組みを活用DNCの核心はどのように読み込み/書き込みヘッドwr、wwを決めるのかである。DNCは3つの微分可能なアテンションを組み合わせてヘッドを決定する。1つ目は、コンテンツベースのアテンションである。連想記憶と同様に、コントローラにより決定されたキーベクトルkとのコサイン距離を重みとしてアテンションを決め、似ているほど1に近く、似ていない場合は0になるような重み分布を与える。このコンテンツベースのアテンションは補完の役割を果たす。猫の半分しか写っていない画像に対応するキーから、過去の猫の全体を捉えた記憶を思い出すことができる。2つ目は、連続するステップで書き込んだ順を覚えておき、それを利用してアテンションを決める。N行N列の時間遷移行列Lは、L[i,j]が位置jに書き込んだ後に位置iに書き込んだ場合に1に近く、そうでない場合は0となるような行列とする。ある時刻の重み分布をwとした時、行列Lを掛けたLwは次の時刻に書き込んだ位置に相当する重み分布となり、LTwは1つ前の時刻に書き込んだ位置に相当する重み分布となる。このLを使えば、過去に書き込んだ順番に応じて読み込むことが可能となる。以前のNTMでは連続した位置、例えばiの次はi+1といったように書き込むようにしていた。コンテンツベースのアテンションの仕組みがあると、書き込む位置は位置上としては非連続となり、NTMは位置情報ベースだけでは途中で記憶をたどれなくなるという問題があった。DNCはこの時間遷移行列Lを使うことで外部記憶上に仮想的な遷移グラフを作り、多様な記憶の系列を保存し、読み込むことが可能となった。3つ目は、使っていない空いている領域にアテンションを掛ける仕組みである。これはメモリ割り当てにおけるフリーリストと同様の役割を果たす。各位置にその位置がどの程度重要な新しい情報を含んでいるか、過去に使われたかといった情報を保存しておく。書き込む際は最も使われていない領域にアテンションを掛け、そこへ書き込むようにする。この3つのアテンションの仕組みを組み合わせて最終的な読み込みヘッダ、書き込みヘッダを決める。DNC全体は誤差逆伝播法を使って学習可能であり、教師あり学習や強化学習と組み合わせて使うことができる。Researchが公開しているbAbIデータセットでDNCを評価した。これは20種類の質問応答タスクからなる(図1)。