2017/09/16

Differentiable Neural Computers(DNC)の概要

いきなりまとめ


Differentiable Neural Computers(DNC)はNeural Turing Machines(NTM)の強化版。
構造データの記録、構造データを使用した質問への回答が可能。
例えば、
  • 地下鉄最短経路の探索
  • 家系図の探索
  • 複雑な指示の実行
が可能。



Today I Learned


Differentiable neural computers
を参考に。


Differentiable Neural Computersとは


DNCはmemory augmented neural networkの一種。

メモリを使用することで複雑かつ構造データに関わる質問に回答可能。
例えば、ストーリーの作成、家系図、地下鉄の地図。
reinforcement learningを使ってブロックパズルゲームを解くことも可能。



Differentiable Neural Computersの中身


Neural Turing Machinesと同様にコントローラーとメモリーバンクを搭載。

違いはメモリーバンクへのアドレスを生成する方法。
読み込み時にはassociative temporal linksによって連続的に書き込まれた情報にアクセス。
メモリのusageが記録され使用率の低いアドレスから書き込みに使用される。



Differentiable Neural Computersの威力


DNCに複雑な構造データを作成させ、そのデータに従い質問に回答させるでテストを実施。

グラフデータは任意に結合した経路やサイクルを表現する際に重要。
DNCは任意のグラフに関して説明、質問に対する回答が可能。


・地下鉄の地図

例えばロンドン地下鉄。
ボンドストリートからスタートして、
中央線に乗って1駅、
環状線に乗って4駅、
ジュービリー線に乗って2駅乗る、
するとどの駅に着くか?
といった質問に答えることが可能。
またムーアゲートからピカデリーサーカスまでのルートの提案が可能。


・家系図

家系図問題においては複雑な推論が可能。
例えば、両親、子供、兄弟といった関係のみから、
フレイヤの母方の曾祖父は誰か?
といった質問に回答可能。


・Reinforcement Learning

DNCはreinforcement learningにも応用可能。
カラーブロックの配置問題。
青のブロックを緑の下に、
オレンジのブロックを赤の左に、
紫をオレンジの下に、
青を紺色の右に、
・・・といった一連の指示が実行可能。
DNCはそれぞれの指示をメモリーに格納し、順次実行。



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増加



2017/09/02

ベイズを用いたハイパーパラメーターの最適化

いきなりまとめ


ハイパーパラメーターの自動最適化方法の1つがBayesian Optimization。
Bayesian Optimizationとは
  • gaussian processによるブラックボックス関数のモデル化
  • グリッドサーチよりも少ないトレーニング時間
  • ベストなパフォーマンス



Today I Learned


Bayesian Optimization for Hyperparameter Tuning
を参考に。


ハイパーパラメーターの自動最適化


ほとんどのハイパーパラメーター最適化アルゴリズムはSequantial Model-based Global Optimization SMBO。
これらは真のブラックボックス関数(ハイパーパラメーターからvalidation setに対するパフォーマンス)を近似するために代理関数を使用。
代理関数を最大化するようなパラメーターが次の試行に使用。
SMBOは代理関数を最大化する基準および代理関数のモデル化によって違いが存在。


・Bayesian Optimizationとは

代理関数のモデル化にgaussian processをベースとしたexpected improvementを使用。
expected improvementは新たなパラメーターがもたらす改善についての期待確率。

Gaussian Processとは
  • 関数についての確率分布
  • データに分布関数を適合させるようトレーニング
  • パラメーター空間における任意のexpected improvementが計算可能
最も高いexpected improvementが次の試行におけるハイパーパラメーターの設定。

Bayesian Optimizationの実装で有名なのはSpearmint


・Bayesian Optimizationのパフォーマンス

Bayesian Optimizationのテストのためにthe San Francisco Crimes datasetを使用。
モデルのテストにおいては時間と場所を用いて39の犯罪カテゴリを予測。

GPUを使ったトレーニングは1回あたり25分。
指定したパラメーター空間に対してグリッドサーチを行うと12.6日。
Bayesian Optimizationは15.8時間かかり、ベストなパフォーマンスを獲得。
ランダムサーチの場合13.7時間かかり、Bayesian Optimizationに次ぐパフォーマンス。

Relation Netowrksの概要

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