Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ニューラルチューリングマシン入門

11,504 views

Published on

DeepMind社より発表されたNeural Turing Machineをまとめてみました

Published in: Technology
  • Be the first to comment

ニューラルチューリングマシン入門

  1. 1. • 森山 直人(もりやま なおと) • もともと中国国籍 ⇒ 帰化(国籍変更)して日本人に • 趣味でpythonを始める(仕事はエンジニアではない) • 勢いでディープラーニング始める(自然言語) • 最初からディープラーニングに入ったため、 統計的手法や確率論が弱い ←のんびりPRML
  2. 2. • すべて個人の見解による内容であり、所属会社、団体の公式見解 ではありません • 概念理解を優先しているため、一部厳密の定義は割愛しています • 日本語表記と英語表記混在していますが、他意はありません (基本日本語だが、長くなるものは英語にしています)
  3. 3. 最近DeepMind社(Google)を始めとした機械学習領域の 先進企業が取り組んでいる外部メモリの概念を紹介します • ニューラルネットワークのおさらい(私の理解ベース) • Neural Turing Machineの基本概念(論文ベース) • 外部メモリの可能性(私の見解) についてお話させて頂きます ※基本概要にとどめ、理論の証明や細かい実装は割愛します
  4. 4. • 強化学習 • アテンション • ベイジアンネット(グラフィカルモデル系) • 生成モデル • 同じ外部メモリの仲間で、Facebook社が精力的に 取り組んでいる「メモリーネットワーク」
  5. 5. • ニューラルネットワークが画像分野の「パターン認識」問題で 良い成果をあげながらも、「推論」が求められる自然言語領域 ではまだまだ汎用的な手法が提案されていない • このあたりがニューラルネットワークの限界だろうと思ったが、 外部メモリの概念に触れ、突破口を感じた(個人感) • すでにDeepMind社では、外部メモリを活用した論文がいくつ か発表されており、今後トレンドになると感じた!
  6. 6. 入力層 中間層 出力層 中間層(隠れ層)をもつ有向グラフ ■強み • 単調な非線形表現を積み重なることで、 複雑な非線形表現(合成関数)を獲得 • パターン認識問題が得意 ■弱み • 現在のデータだけでなく、過去の情報が必要な問 題は苦手 ⇒云わば現在のデータのみでは答えを導 けない推論(思考)問題を解くことが難しい
  7. 7. 入力層 中間層 出力層 (過去のデータが必要な)推論問題を解くために、 過去のデータも伝搬する仕組みを作る ■理想 • 過去の入力すべてに現在の入力を加えたネッ トワークを形成 ■現実 • LSTMの実装で、内部に過去の入力の 「状態」を保存(メモリセル) • 逆伝搬のコストが過剰に増えるため、実質 数ステップ分の学習しかできない
  8. 8. • RNN(LSTM)の弱点は計算量と時間のみでなく、記憶を司る メモリセルのデータ構造にも課題がある • LSTMの学習では、メモリセルの更新は部分的でなく、 全体が更新されるため、表現力の幅は限定的 • そこで求められるのは、 ①表現力の高いメモリ処理 ー必要に応じて必要な箇所のみを更新、取り出し ②多くの情報を蓄えるメモリ構造 ー大規模なデータを蓄積できるようにする
  9. 9. • あえて堅苦しく言うと、ノイマン型のシステム構造上に、 ニューラルネットワークとチューリングマシンの「ヘッド」を 取り付けたようなもの • 構造は複雑だけどちゃんと微分可能!(学習できる) • 概要をつかむ程度であれば、チューリングマシンの理解は不要 ただ、ある程度理解があると腹落ちします!
  10. 10. • RNN(LSTM)をコントロー ラーに据えて、ヘッド、メ モリと呼ばれる部品を取り 付けた構造 • LSTMのメモリセルを拡張 し、データの“細切れ”に分 けた(詳細後述) • メモリの操作はチューリン グマシンのヘッドの動作に 近い 画像引用元:https://arxiv.org/pdf/1410.5401v2.pdf
  11. 11. 入力 出力 制御 演算 メモリ NeuralTuring Machine ノイマン型 コンピュータ 構造はノイマン型コンピュータに近い
  12. 12. この部分は通常のRNN (LSTM) ヘッドは外部メモリに対し て、計算に使う部分の選定 や書き換えを行う 中央のコントローラー はヘッドの動作をコン トロール
  13. 13. コントローラー :データの入出力を処理するインターフェース メモリ :RAMに似た働きを行うデータ格納スペース ヘッド :メモリにデータを書き込んだり、読み込んだりする機能 ・・・・・・ ヘッド メモリ コントローラー ヘッドを操作 するための各 種パラメータ を発行 ヘッドがコント ローラーの情報 をもとにメモリ 読み込み、書き 込みを行う 計算時にヘッ ドを通じて必 要なメモリを 呼び出す
  14. 14. 2 1 2 7 4 020 4 0 0 2 1 311 2 4 4 1 0 022 3 3 0 0 0 054 ・・・ 0.2 0.3 0.1 0.1 ・・・ ヘッド メモリ ②メモリ位置 N ①各メモリのサイズ M ③時刻tにお ける各メモリ の重み 𝑊𝑡 N*Mの行列
  15. 15. 2 1 2 7 4 020 4 0 0 2 1 311 2 4 4 1 0 022 3 3 0 0 0 054 ・・・ 0.2 0.3 0.1 0.3 ・・・ ヘッド メモリ 位置 N ベクトルサイズ M重み 𝑊𝑡 • コントローラが使う情報をメモリ から算出する • 時刻tにおける重み𝑊𝑡を各メモリ 掛け合わせて、𝑟𝑡を算出 𝑟𝑡 ← 𝑖 𝑤𝑡(𝑖)𝑀𝑡(𝑖) ※ただし 𝑖 𝑤𝑡 𝑖 = 1, 0 ≤ 𝑤𝑡 𝑖 ≤ 1
  16. 16. 2 1 2 7 4 020 4 0 0 2 1 311 2 4 4 1 0 022 3 3 0 0 0 054 ・・・ 0.2 0.3 0.1 0.3 ・・・ ヘッド メモリ 位置 N ベクトルサイズ M重み 𝑊𝑡 LSTMのように、メモリを更新する この工程は②ステップに分かれる ① 情報削除 削除ベクトル𝑒𝑡が与えられる 𝑀𝑡 𝑖 ← 𝑀𝑡−1 𝑖 1 − 𝑤𝑡 𝑖 𝑒𝑡 ② 情報追加 追加ベクトル𝑎 𝑡が与えられる 𝑀𝑡 𝑖 ← 𝑀𝑡 𝑖 + 𝑤𝑡(𝑖)𝑎 𝑡 ~ ~
  17. 17. • ヘッドによるメモリの操作はわかった • そのヘッドのパラメータ重み調整は直前のメモリ及び重みと コントローラから出力される5つのパラメータをもとに、 ④ステップで構成される (これけっこうややこしいです・・・)
  18. 18. コントローラー Memory Key : k -コントローラから与えられたベクトル Contents Addressing Parameter : β -ベクトル集中度調整 Interpolation Parameter : g -前のヘッド状態をどれくらい引き継ぐか Convolutional Shift Parameter : s -ヘッド内の数字の移動方向 Sharpening Parameter : γ -ベクトル集中度の調整
  19. 19. 画像引用元:https://arxiv.org/pdf/1410.5401v2.pdf ステップ① ステップ② ステップ③ ステップ④ 前ページの5つのパラメータと直前のメモリ、ヘッド重みを用いて ④ステップを通じて学習を行う
  20. 20. コントローラーから与えられたベクトル𝑘 𝑡とメモリ内の 各ベクトルの類似度を計算し、その類似度をもとにヘッ ドの重みを初期化して𝑤𝑡 𝑐 を作る 𝑤𝑡 𝑐 ← exp(β 𝑡 𝐾 𝑘 𝑡,𝑀𝑡 𝑖 ) 𝑗 exp(β 𝑡 𝐾 𝑘 𝑡,𝑀𝑡 𝑖 ) , K u, v = 𝑢∙𝑣 | 𝑢 |∙| 𝑣 |
  21. 21. Content Addressingで出力された𝑤𝑡 𝑐 と直前の重み𝑤𝑡−1 に対してパラメータgをかけ合わせ、𝑤𝑡 𝑔 を生成 ※LSTMでいうと入力ゲートのような働き 𝑤𝑡 𝑔 ← 𝑔𝑤𝑡 𝑐 + (1 − 𝑔)𝑤𝑡−1
  22. 22. Interpolationで出力された𝑤𝑡 𝑔 と方向パラメータ𝑠𝑡を計算 し、𝑤𝑡を生成 𝑤𝑡 ← 𝑖=0 𝑁−1 𝑤𝑡 𝑔 (𝑗)𝑠𝑡(𝑖 − 𝑗) ~ ~
  23. 23. 方向パラメータ𝑠𝑡は何をしているか ∟ヘッド内の重みベクトル 𝑤𝑡 𝑖 を左右に調整 ∟メモリ位置ごとの関係性を学習 0 0 1 2 2 左 中 右 1 0 0 𝑠𝑡は左右への移動量を示す 中は動かないことを示す 0 1 2 2 0 0 0 1 2 2 0.5 0 0.5 1 0.5 1 1.5 1 この場合は、単純に 左に1つ移動 各ベクトルが左右に 半分ずつ移動 ヘッド
  24. 24. Convolutional Shiftで出力された𝑤𝑡に対して、集中度 パラメータ𝛾𝑡をかけ整形し、最終ヘッドの重み𝑤𝑡を生成 𝑤𝑡 ← 𝑤𝑡(𝑖) 𝛾𝑡 𝑗 𝑤𝑡(𝑗) 𝛾𝑡 ~ ~ ~
  25. 25. • LSTMのような複雑な構造を持つが、各処理は異なる概念を 持つため、全体像のイメージが難しい • 一方、異なる概念の処理が多いことが、多彩な表現力を獲得 する側面もある • 逆伝搬の計算の流れはご想像におまかせします・・・
  26. 26. 画像引用元:http://awawfumin.blogspot.jp/2015/03/neural-turing-machines-implementation.html
  27. 27. • 表現力の向上でLSTMでは成し得なかった‘本質的な記憶’を実現 • メモリを細切れにし、必要に応じて必要な箇所を変更、使用 することで、(通常のニューラルネットワークより)人間の脳に 近い処理が可能に • Neural Turing Machineではまだメモリの操作が荒かったが、 直近ではより洗練された手法が開発されている (Differentiable neural computersなど) • ニューラルネットワークの可能性を広げる手法として期待できる
  28. 28. • 仮想世界の謎解き冒険ファンタジーですが、 計算とは何か、思考とは何かを題材とする • オートマトンやチューリングマシンの概念を 奇跡的にわかりやすく解説 • コンピュータサイエンス・自然言語処理に於 いて多くの気づきを与えてくれる • この本の素晴らしさを語るだけで、一つLTが できると思います

×