Skip to main content
QUICK REVIEW

[論文レビュー] DeepCoder: Learning to Write Programs

Matej Balog, Alexander L. Gaunt|arXiv (Cornell University)|Nov 7, 2016
Software Engineering Research被引用数 230
ひとこと要約

DeepCoder は入力出力例からプログラム属性を予測するニューラルネットワークを訓練し、これらの予測を用いて検索ベースのプログラム合成を案内する。ベースラインに対して大幅なスピードアップを達成し、競技スタイルの簡単な問題を解決する。

ABSTRACT

We develop a first line of attack for solving programming competition-style problems from input-output examples using deep learning. The approach is to train a neural network to predict properties of the program that generated the outputs from the inputs. We use the neural network's predictions to augment search techniques from the programming languages community, including enumerative search and an SMT-based solver. Empirically, we show that our approach leads to an order of magnitude speedup over the strong non-augmented baselines and a Recurrent Neural Network approach, and that we are able to solve problems of difficulty comparable to the simplest problems on programming competition websites.

研究の動機と目的

  • 機械学習を用いて入力出力の例からプログラム競技風の問題を解くことを動機づける。
  • LIPS というフレームワークを提案し、プログラム属性を誘導することを学習し、既存ソルバーをガイドする。
  • 大規模な監視付き学習を可能にする DSL とデータ生成パイプラインを開発する。
  • 非 augmentation ベースのベースラインおよび RNN アプローチに対して大幅なスピードアップを実証する。

提案手法

  • 単純な操作と高階操作の両方を持つ高レベルデータ操作関数の DSL を定義する。
  • トレーニング用にプログラム・属性・入力出力例の大規模データセットを生成する。
  • 入力出力例の集合をプログラム属性の分布へ写像するニューラルネットワークを訓練する。
  • ニューラル予測を探索技術(DFS, Sort and add, SMT-based Sketch and λ²)に統合して、プログラム空間の有望な部分を優先する。
  • 属性の出現を予測するネガティブクロスエントロピー損失で学習し、候補プログラムの体系的なランキングを可能にする。)

実験結果

リサーチクエスチョン

  • RQ1入力出力例から学習して DSL 上の探索を導く高レベルのプログラム属性を予測できるか。
  • RQ2機能の有無を予測することは、異なるソルバーにわたる探索ベースのプログラム合成の効率を改善するか。
  • RQ3学習済みのガイダンスは、訓練時に見ていない長さの異なるプログラムにどれほど一般化するか。
  • RQ4様々なエンコーダ/デコーダアーキテクチャがプログラム合成のガイダンスに与える影響はどれほどか。

主な発見

  • ニューラルガイダンスは、 priors や非拡張探索に依存するベースラインと比較して複数の探索戦略で大幅なスピードアップをもたらす。
  • Sort and add 探索は平常の DFS よりも予測された属性の周辺度数に恩恵を受け、多くの設定で最大の利益を達成する。
  • DeepCoder は DSL の範囲内で最も簡単なプログラミング競技問題と同程度の難易度の問題を解くことができる。
  • エンコーダ–デコーダモデルは訓練長を超える長さのプログラムにも一般化し、欠落した予測を探索手順が補正する。
  • RNN ベースのデコーダと比較して、提案された binary-attribute デコーダと単純なフィードフォワードエンコーダは訓練とパフォーマンスが安定している。

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

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

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

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