いきなりまとめ
Neural Turing Machinesはワーキングメモリを搭載したニューラルネットワーク。
NTMではメモリーの使用法を含むすべてがトレーニング可能。
コピータスクを実行させると人間と同様の操作を学習。
Today I Learned
Neural Turing Machines
を参考に。
Neural Turing Machinesとは
ワーキングメモリを搭載したニューラルネット。
NTMはコントローラーとメモリーバンクから構成。
コントローラーは通常のニューラルネットと同様の入出力+メモリーバンクに対して読み書き。
コントローラーから出力され読み書きを行う機能をヘッドと呼ぶ。
Neural Turing Machinesの中身
・コントローラー
コントローラーはfeedforwardネットでも可能だが、RNN(LSTMなど)が良い。
context-dependent computationが可能となるため。
・メモリーバンク
メモリーバンクは行がアドレスを表す行列。
NTMではメモリー操作を含むすべてがトレーニング可能。
読み書き用ヘッドはメモリへのアクセスのためにメモリーアドレスに対応したベクトル(weighting vector)を出力。
weighting vectorは補完的な2つのadressingメカニズムから生成。
content-based addressingはコントローラーから出力されるkey vectorとアドレスごとのコンテンツの類似度を算出。
location-based adressingではshift weightingにもとづいてアドレスを移動。
読み込みではweighting vectorを用いてmemory matrixの行の加重和によりread vectorを算出。
書き込みは2つ操作から構成。
まず前回までのmemory matrixに対してweighting vectorとerase vectorを用いて要素ごとの削除を実行。
削除後のmemory matrixに対してweighting vectorとヘッドから出力されるadd vectorにより追加を実行。
Neural Turing Machinesのパフォーマンス
ランダムなビット列を入力し、出力するコピータスクを実行。
通常のLSTMをアウトパフォーム。
コピータスクでトレーニングしたNTMはコピータスクを人間がプログラミングする場合と同様の操作を学習。
初期化:ヘッドをスタート位置に戻す
区切り文字が含まれない間ループ
input vectorの読み込み
ヘッド位置にinputの書き込み
ヘッドの位置を1増加
ヘッドをスタート位置に戻す
ループ
ヘッド位置からoutput vectorを読み込み
outputの出力
ヘッド位置を1増加
0 件のコメント:
コメントを投稿