Skip to main content
QUICK REVIEW

[論文レビュー] Learning to Represent Programs with Property Signatures

Augustus Odena, Charles Sutton|arXiv (Cornell University)|Feb 13, 2020
Machine Learning and Algorithms参考文献 35被引用数 18
ひとこと要約

本稿では、入出力ペアに対して一連のブール値の性質を評価することに基づき、プログラムおよび仕様の機械学習に適した表現としての性質シグネチャを導入する。合成器が合成された関数の性質シグネチャを予測することで、ベースラインと比較して正しく動作するプログラムを2倍の速さで見つけることができ、著しく高い成功確率を達成した。これは、多様な関数型プログラミング問題において顕著な改善を示している。

ABSTRACT

We introduce the notion of property signatures, a representation for programs and program specifications meant for consumption by machine learning algorithms. Given a function with input type $τ_{in}$ and output type $τ_{out}$, a property is a function of type: $(τ_{in}, τ_{out}) ightarrow exttt{Bool}$ that (informally) describes some simple property of the function under consideration. For instance, if $τ_{in}$ and $τ_{out}$ are both lists of the same type, one property might ask `is the input list the same length as the output list?'. If we have a list of such properties, we can evaluate them all for our function to get a list of outputs that we will call the property signature. Crucially, we can `guess' the property signature for a function given only a set of input/output pairs meant to specify that function. We discuss several potential applications of property signatures and show experimentally that they can be used to improve over a baseline synthesizer so that it emits twice as many programs in less than one-tenth of the time.

研究の動機と目的

  • 機械学習を支援する一般用途のプログラムおよび仕様の表現を開発すること。
  • 性質シグネチャをインダクティブバイアスとして活用することで、プログラム合成のパフォーマンスを向上させること。
  • 手動で設計するのではなく、学習によって有用なプログラムの性質を自動的に発見できること。
  • 性質シグネチャが、複雑で人間が書いたプログラミング問題において合成を著しく高速化できることを実証すること。

提案手法

  • 本稿では、ターゲット関数の入出力ペアにおける単純な不変条件をチェックするブール関数として性質を定義する。
  • 性質シグネチャは、関数の入出力例に対して固定された性質の集合を評価することで得られる2値のベクトルである。
  • 本手法では、関数の合成からその成分関数の性質シグネチャを推定する合成予測モデルを学習する。
  • 合成器は性質シグネチャを用いて探索をガイドし、予測された性質の一致に基づいて候補プログラムをフィルタリングする。
  • 本手法は、合成中に高速なプログラム実行を可能にするために、独自に設計されたチューリング完全な関数型言語Searchoで評価されている。
  • システムはオープンソース化されており、言語、ランタイム、探索インfra、および学習データを含む。これにより、将来のMLガイドド合成分野の研究を支援する。

実験結果

リサーチクエスチョン

  • RQ1性質シグネチャは、プログラム合成における有効なインダクティブバイアスとして機能するか?
  • RQ2学習されたモデルは、関数の合成からその成分関数の性質シグネチャを予測でき、合成の効率を向上させられるか?
  • RQ3性質シグネチャは、ベースラインの合成器が見つけることができないプログラムの合成を可能にするか?
  • RQ4性質シグネチャを補完する合成器の性能は、複雑で人間が書いたプログラミング問題において、ベースラインと比較してどうなるか?

主な発見

  • 性質シグネチャ手法は、185個の関数型プログラミング問題から成るテストセットにおいて、ベースラインの合成器よりも2倍以上のプログラムを合成した。
  • この性能向上は、ベースラインが要請する時間の10分の1未満の時間で達成された。
  • 性質シグネチャを用いて合成されたプログラムの半数以上は、1日間の探索を経てもベースラインが見つけることができなかった。
  • 合成予測モデルは中間の性質シグネチャを効果的に推定できており、合成中の前提選択に有効に機能した。
  • 本手法は、連続する重複要素をリストから削除するという複雑なプログラムを正常に合成できたが、ベースラインはそのようなプログラムを発見できなかった。
  • オープンソース化されたシステムは、将来の機械学習ガイドドプログラム合成分野の研究基盤を提供する。

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

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

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

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