Skip to main content
QUICK REVIEW

[論文レビュー] Neural Programmer-Interpreters

Scott Reed, Nando de Freitas|arXiv (Cornell University)|Jan 1, 2016
Advanced Neural Network Applications被引用数 148
ひとこと要約

Neural Programmer-Interpreter (NPI) は、タスクに依存しない再帰的コア、持続的キーバリュー型プログラムメモリ、ドメイン固有のエンコーダーを備えた再帰的で構成的ニューラルネットワークであり、豊富な完全な教師付き実行トレースから、プログラムの表現と実行を学習する。NPI は、低レベルのプログラムを組み合わせることで、サンプルの複雑さを低減し、一般化性能を向上させ、少数の豊富な完全な教師付き実行トレースから、加算、ソート、3D モデルの標準化といったタスクを1つのモデルで学習・実行可能にする。

ABSTRACT

Abstract: We propose the neural programmer-interpreter (NPI): a recurrent and compositional neural network that learns to represent and execute programs. NPI has three learnable components: a task-agnostic recurrent core, a persistent key-value program memory, and domain-specific encoders that enable a single NPI to operate in multiple perceptually diverse environments with distinct affordances. By learning to compose lower-level programs to express higher-level programs, NPI reduces sample complexity and increases generalization ability compared to sequence-to-sequence LSTMs. The program memory allows efficient learning of additional tasks by building on existing programs. NPI can also harness the environment (e.g. a scratch pad with read-write pointers) to cache intermediate results of computation, lessening the long-term memory burden on recurrent hidden units. In this work we train the NPI with fully-supervised execution traces; each program has example sequences of calls to the immediate subprograms conditioned on the input. Rather than training on a huge number of relatively weak labels, NPI learns from a small number of rich examples. We demonstrate the capability of our model to learn several types of compositional programs: addition, sorting, and canonicalizing 3D models. Furthermore, a single NPI learns to execute these programs and all 21 associated subprograms.

研究の動機と目的

  • 構成的かつ一般化可能な方法でプログラムの表現と実行を学習するニューラルモデルの開発。
  • 弱い教師付き学習に代えて、豊富な完全な教師付き実行トレースを活用することで、プログラム学習におけるサンプルの複雑さを低減すること。
  • 持続的キーバリュー型メモリを用いて、既存のプログラムを基盤として新たなタスクを効率的に学習できるようにすること。
  • 中間結果を外部環境(例:メモ帳)にオフロードすることで、再帰ユニットの長期計算負担を軽減すること。
  • 単一の統一されたモデルアーキテクチャを用いて、加算、ソート、3D モデルの標準化といったタスク間での一般化を実証すること。

提案手法

  • NPI は、入力シーケンスを処理し、プログラム実行中に隠れ状態を維持するタスクに依存しない再帰的コアを使用する。
  • 中間プログラム状態やサブプログラムを格納・取得するため、持続的キーバリュー型プログラムメモリを採用する。
  • 視覚的に異なる環境に適応するため、ドメイン固有のエンコーダーを用い、異なる機能への転移を可能にする。
  • 入力に条件づけられたサブプログラム呼び出しを示す教師付き実行トレースを通じて、低レベルのプログラムを高レベルのプログラムに組み合わせて学習する。
  • 中間計算結果を外部環境(例:読み書きポインタを備えたメモ帳)にキャッシュすることで、再帰的隠れユニットの負担を軽減する。
  • 各プログラムがサブプログラム呼び出しの例のシーケンスに関連付けられている、完全な教師付き実行トレースを用いて訓練を行う。

実験結果

リサーチクエスチョン

  • RQ11つのニューラルモデルが、多様な知覚的環境において、複数の種類の構成的プログラムを組み合わせて実行できるか?
  • RQ2豊富な完全な教師付き実行トレースを用いることで、弱い教師付き学習に比べてサンプルの複雑さが低減するか?
  • RQ3持続的プログラムメモリにより、既存のサブプログラムを再利用することで、新しいタスクの効率的学習が可能になるか?
  • RQ4中間計算を外部環境にオフロードすることで、モデルのパフォーマンスと一般化性能がどの程度向上するか?
  • RQ5統一されたモデルアーキテクチャが、加算、ソート、3D モデルの標準化といったタスクに一般化できるか?

主な発見

  • 1つの NPI モデルが、加算、ソート、3D モデルの標準化を含む21個の異なるサブプログラムおよびそれらに関連する高レベルプログラムを正常に実行することに成功した。
  • 少数の豊富な完全な教師付き実行トレースから学習することで、一般化性能が向上し、サンプルの複雑さが低減した。
  • 持続的キーバリュー型プログラムメモリにより、既存のサブプログラムを組み合わせることで新しいタスクを効率的に学習できる転移学習が可能になった。
  • 中間計算を外部環境(例:メモ帳)にオフロードすることで、再帰的隠れユニットの長期記憶負担が軽減された。
  • ドメイン固有のエンコーダーのおかげで、コアの再トレーニングなしに入力表現を適応可能にしたため、視覚的に多様な環境間で一般化が達成された。
  • 構成的アーキテクチャにより、単純で再利用可能なサブプログラムを組み合わせることで、複雑なプログラムの学習が可能になった。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。