2017/09/09

Neural Turing Machinesの概要

いきなりまとめ


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 件のコメント:

コメントを投稿

Relation Netowrksの概要

いきなりまとめ Relation Netowrksとは関係性の推論を行えるニューラルネット。 画像や音声の単純な認識ではなく、複雑な思考が可能。 例えば、 グレーの物体から最も離れている物体の形は何か? ボールは今何処にあるか? ランダムに動くボール群のどれが...