e4exp / paper_manager_abstract

0 stars 0 forks source link

Deep Reinforcement Learning for Programming Language Correction #357

Open e4exp opened 3 years ago

e4exp commented 3 years ago

初心者のプログラマーは、プログラミング言語の形式的な構文に悩まされることが多い。 そこで我々は、強化学習が可能な新しいプログラミング言語修正フレームワークを設計した。 このフレームワークでは、エージェントがテキストのナビゲーションと編集のために人間の動作を模倣することができる。 本研究では、プログラミング言語の正式な構文を知らなくても、生の入力、つまりプログラムテキストそのものから直接、自己探索によってエージェントを学習できることを実証する。 また,学習データの10分の1を専門家によるデモンストレーションで補うことで,学習の高速化を実現した. 提案手法は,プログラミング入門コースの学生が書いた6975個の誤字脱字のあるCプログラムで評価された. 提案手法は,完全に教師付きのニューラル機械翻訳アプローチを用いた最先端のツールであるDeepFixの修正結果と比較して,プログラムの修正数が14%,コンパイラのエラーメッセージの修正数が29%多いことがわかった.

e4exp commented 3 years ago

本作品の主な貢献は以下の通りです。

  1. 強化学習に適したプログラミング言語修正の新しいフレームワークを設計する。
  2. プログラミング言語の修正にA3Cを使用し、専門家の実演により学習を加速する。 3.実験の結果、我々の手法は、専門家の実演を用いた最先端のツールであるDeepFixを、訓練データの10分の1だけで凌駕することができた。さらに、我々の手法は、DeepFixの性能に匹敵しながら、デモなしでも動作する。
  3. RLAssistの実装はオープンソースとします。
e4exp commented 3 years ago

image

image image image

e4exp commented 3 years ago

6 結論と今後の課題

プログラミング言語の修正という問題に取り組み、RLAssistと呼ばれる新しい深層強化学習ベースのソリューションを提示する。 RLAssistと最先端のツールであるDeepFixを、6975人の学生が書いた誤ったCプログラムのタイポグラフィエラーを修正するタスクで比較した。 実験の結果,RLAssistはDeepFixよりも優れていることがわかった. さらに,RLAssistは,専門家の実演がなくても,DeepFixと同等の性能を維持しながら学習できることを示した. RLAssistは,プログラミング言語に依存せず,C言語のプログラムで評価されています. 将来的には、他のプログラミング言語でも実験を行う予定です。 また、RLAssistを拡張して、より多くのクラスのエラーを対象としたり、プログラムのより深い構文的・意味的特性を学習・利用できるRLアルゴリズムを開発したりすることを計画しています。