Skip to main content
QUICK REVIEW

[論文レビュー] Learning to Infer Program Sketches

Maxwell Nye, Luke Hewitt|arXiv (Cornell University)|Feb 17, 2019
Software Engineering Research被引用数 32
ひとこと要約

この論文では、入出力例と自然言語の仕様から中間的なプログラムスケッチを生成する能力を学ぶ、神経記号的プログラム合成システムであるSketchAdaptを提案する。自己教師あり学習の目的関数により、神経パターン認識と記号的探索の動的バランスをとることで、記憶性能ではニューラルモデルと同等に、一般化性能では記号的手法と同等の、英語からコードへのタスクで最先端の性能を達成する。

ABSTRACT

Our goal is to build systems which write code automatically from the kinds of specifications humans can most easily provide, such as examples and natural language instruction. The key idea of this work is that a flexible combination of pattern recognition and explicit reasoning can be used to solve these complex programming problems. We propose a method for dynamically integrating these types of information. Our novel intermediate representation and training algorithm allow a program synthesis system to learn, without direct supervision, when to rely on pattern recognition and when to perform symbolic search. Our model matches the memorization and generalization performance of neural synthesis and symbolic search, respectively, and achieves state-of-the-art performance on a dataset of simple English description-to-code programming problems.

研究の動機と目的

  • プログラミング・バイ・エクサムプルおよび自然言語の仕様に対応する、ドメインに依存しないプログラム合成システムを構築すること。
  • 明示的な教師信号なしに、パターン認識と記号的探索のどちらに依存すべきかを学習できるようにすること。
  • データ効率を向上させ、特に珍しいまたは未学習のサブ式に対して一般化性能を向上させること。
  • 純粋なニューラルモデルや記号的モデルが苦手とする、複雑で現実世界のプログラミングタスク(例:AlgoLisp)において、本手法の有効性を検証すること。

提案手法

  • モデルがさまざまな具体度のプログラム表現を生成できる、柔軟でドメインに依存しないスケッチ文法を導入する。
  • 入力例と自然言語記述を条件としてスケッチを提案する、学習されたニューラルスケッチ生成器を採用する。
  • スケッチの穴を埋めるために、実装候補の探索を行う記号的列挙型プログラム合成器を用いる。
  • タスクの難易度に応じて適切なスケッチの粒度を学習するように促す、新しい自己教師あり学習の目的関数を適用する。
  • プログラム出力からのコントラスト学習と再構成信号を用いて、エンド・トゥ・エンドでシステムを訓練する。
  • 動的適応をサポート:単純なタスクではスケッチがより完全(神経的優位)になり、複雑なタスクではより抽象的(記号的優位)になる。

実験結果

リサーチクエスチョン

  • RQ1神経記号的システムは、明示的な教師信号なしに、パターン認識と記号的推論のバランスを学習できるか?
  • RQ2中間スケッチの生成能力が、未学習のタスクにおけるデータ効率と一般化性能に与える影響は何か?
  • RQ3記憶と一般化の両方を要請する英語からコードへのプログラミングタスクで、最先端の性能を達成できるか?
  • RQ4トレーニング中に「odd」が登場しなかったにもかかわらず、テストデータに「odd」が含まれる635のプログラムを正しく解けるか?
  • RQ5入出力例に加えて、非構造化された自然言語の仕様をどの程度活用できるか?

主な発見

  • SketchAdaptは、AlgoLispの英語からコードへのデータセットで最先端の性能を達成し、RNNベースのベースラインおよび完全に記号的な手法を上回った。
  • ビームサイズ10、全トレーニングデータを用いた場合、SketchAdaptはほぼ完璧な正確性を達成し、以前に報告されたSOTA結果を顕著に上回った。
  • 小さなトレーニングサブセットでも、SketchAdaptは「Generator only」RNNベースラインよりも一般化性能が優れており、データ効率の向上が確認された。
  • 「odd」というサブ式に対して、ゼロショット一般化が強く現れ、トレーニングデータに含まれなかった「odd」を含む635のテストプログラムを正しく解いた一方、RNNベースラインはこのタスクに失敗した。
  • 「even」プログラムに対しても効果的に一般化しており、学習済みおよび未学習のサブ式の両方に対して、強固な性能を示した。
  • 記号的合成部は強力な一般化性能を提供し、ニューラル部は高い記憶精度を確保するため、従来のモデルが達成できなかったバランスを実現した。

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

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

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

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