Skip to main content
QUICK REVIEW

[論文レビュー] Program Synthesis Through Reinforcement Learning Guided Tree Search

Riley Simmons-Edler, Anders Miltner|arXiv (Cornell University)|Jun 8, 2018
Software Engineering Research参考文献 20被引用数 3
ひとこと要約

本稿では、強化学習を用いた木探索(RLGTS)を提案する。これは、プログラム生成を強化学習で解くマルコフ決定過程(MDP)として定式化し、局所最適解を回避するために優先度付き探索木を組み合わせた、新しいプログラム合成手法である。RLGTSは最先端のベースラインを上回り、次善の手法に比べて少なくとも2倍のプログラムを解決可能であり、純粋な強化学習ベースラインに比べて70–100%高い性能を達成する。

ABSTRACT

Program Synthesis is the task of generating a program from a provided specification. Traditionally, this has been treated as a search problem by the programming languages (PL) community and more recently as a supervised learning problem by the machine learning community. Here, we propose a third approach, representing the task of synthesizing a given program as a Markov decision process solvable via reinforcement learning(RL). From observations about the states of partial programs, we attempt to find a program that is optimal over a provided reward metric on pairs of programs and states. We instantiate this approach on a subset of the RISC-V assembly language operating on floating point numbers, and as an optimization inspired by search-based techniques from the PL community, we combine RL with a priority search tree. We evaluate this instantiation and demonstrate the effectiveness of our combined method compared to a variety of baselines, including a pure RL ablation and a state of the art Markov chain Monte Carlo search method on this task.

研究の動機と目的

  • 既存のプログラム合成手法が大規模なラベル付きデータセットや特定の言語構造を仮定するという限界を解消すること。
  • 強化学習と探索ベースの合成の長所を組み合わせ、ドメイン特化言語におけるスケーラビリティと一般化性能を向上させること。
  • 教師あり事前学習への依存を減らしつつ、入出力例から正しいプログラムを合成する際の高い成功率を維持すること。
  • 真のプログラム長が不明または不正確に推定される場合でも、サンプル効率と頑健性を向上させること。
  • 微分可能言語構造や学習データの可用性に関する仮定を避けることで、既存のプログラミング言語技術との統合を可能にすること。

提案手法

  • 本稿では、プログラム合成をマルコフ決定過程(MDP)としてモデル化し、状態は部分プログラムを表し、行動はコード行を表し、報酬は部分的な正しさに基づく。
  • 深層Qネットワーク(DQN)を強化学習により訓練し、正しいプログラムに至る累積報酬を最大化する方策を学習する。
  • 探索をガイドするため、優先度付き探索木を統合し、正解に至る可能性の高いパスを優先し、局所最適解に費やす時間を削減する。
  • 微分可能言語構造や大規模な学習データセットを必要とせず、実行可能な部分プログラムと報酬関数のみに依存する。
  • 評価は、RISC-Vアセンブリ言語の浮動小数点演算をターゲットとしたサブセット上で実施され、成功確率とサンプル効率が性能指標として用いられる。
  • 本アプローチは、プログラミング言語分野で既存の合成技術と合成可能に設計されており、ハイブリッドソリューションの構築を可能にする。

実験結果

リサーチクエスチョン

  • RQ1大規模なラベル付きデータセットや微分可能言語機能を必要とせずに、強化学習をプログラム合成に効果的に適用できるか。
  • RQ2優先度付き探索木と強化学習を組み合わせることで、純粋な強化学習や標準的な探索手法と比較して、サンプル効率と成功確率がどのように向上するか。
  • RQ3真のプログラム長に不確実性がある場合、特に探索深さの上限が真の長さを3行超えて超過している場合に、本手法の頑健性はどの程度か。
  • RQ4本手法は、異なるプログラム長や行動空間の複雑さに対してどの程度一般化可能か。
  • RQ5特に探索深さや命令セット制約が変化する条件下で、RLGTSの性能はMCMCのような最先端の探索ベース手法と比べてどの程度か。

主な発見

  • RLGTSは、全テスト対象のプログラム長において、最良のベースライン(多腕バンディット)に比べ、少なくとも2倍のプログラムを解決する。
  • 優先度付き探索木の統合により、純粋なQ関数のみを用いた強化学習のアブレーションに比べ、性能が70–100%向上する。
  • 探索深さの上限が真のプログラム長にぴったり一致する場合、MCMCは競争力のある性能を示すが、上限が真の長さを3行超えると性能が50–80%低下する。
  • 行動空間が2–3命令に制限された状況でも、RLGTSは40–50%の成功確率を維持するのに対し、MCMCは20,000回の試行で4命令以上のプログラムを1つも解決できない。
  • 100万回の試行制限下では、MCMCは2命令プログラムでのみRLGTSと同等の性能を示し、17命令のプログラムは一切解決できないが、RLGTSはその約9%を効率的に解決する。
  • 生成されたプログラムの約30%は凸型の報酬構造を示し、これは最良優先探索で容易に解けるが、人間が書いたプログラムでは稀であるため、フィルタリング対象となっている。

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

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

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

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