Open e4exp opened 3 years ago
本論文は、診断フィードバックからのプログラム修復に2つの貢献をしている。 まず、プログラム修復における推論プロセスをモデル化するために、プログラムフィードバックグラフを提案した。 これは、修復のために複数行のコードを分析する必要がある場合に、特に有用であると考えられる。 第二に、ラベル付けされていないプログラムを破損し、評価者(コンパイラ)からのフィードバックを得ることで、余分なプログラム修復例を作成する自己教師付き学習パラダイムを導入しました。 これは、プログラム修復のためのラベル付きデータが少ないことを克服するために有効であることがわかった。 本稿では主にプログラム修復に焦点を当てていますが、フィードバックに基づいて編集を学習するという我々のフレームワークは、書かれたフィードバックに基づいてエッセイを編集する学習から、インタラクティブな対話におけるユーザーからの学習など、多くのアプリケーションを持つ、潜在的に強力でより一般的なパラダイムであることに留意します。と述べています(Liu et al.、2018)。 重要なのは、強化学習のように単一の数字の報酬(コンパイルするかしないかなど)を使用するのではなく、診断フィードバックを介して高帯域のフィードバックを得ることで、例えば本作で発表したようにグラフニューラルネットワークを使用して効果的に組み込むことで、より多くの情報を得ることができるということです
参考
実験での比較対象など
ここでは、診断フィードバック(コンパイラのエラーメッセージなど)からプログラムを修復することを学習する問題を考える。 プログラムの修復には2つの理由がある。 第一に、ソースコードと診断フィードバックの間でシンボルを推論し追跡する必要がある。 第二に、プログラム修復に利用できるラベル付きデータセットは比較的少ない。 本研究では、これら2つの課題に対する新しい解決策を提案する。 第一に、ソースコードと診断フィードバックに含まれるプログラム修復に関連するシンボルを結びつけるプログラムフィードバックグラフを導入し、その上にグラフニューラルネットワークを適用して推論プロセスをモデル化する。 次に、プログラム修復のための自己教師付き学習パラダイムを提示する。 これは、オンラインで入手可能なラベルのないプログラムを活用して、大量のプログラム修復例を作成し、モデルの事前学習に使用するものである。 我々の提案するアプローチを、プログラミング入門の課題の修正(DeepFixデータセット)と、プログラム合成の出力の修正(SPoCデータセット)という2つのアプリケーションで評価する。 最終的なシステムであるDrRepairは、DeepFixで68.2%の完全修復率(過去のベストと比較して22.9%増)、SPoCで48.4%の合成成功率(過去のベストと比較して3.7%増)を達成し、先行研究を大幅に上回る結果となった。
https://github.com/michiyasunaga/DrRepair https://worksheets.codalab.org/worksheets/0x01838644724a433c932bef4cb5c42fbd