研究課題/領域番号 |
19K22840
|
研究機関 | 東京大学 |
研究代表者 |
千葉 滋 東京大学, 大学院情報理工学系研究科, 教授 (80282713)
|
研究期間 (年度) |
2019-06-28 – 2022-03-31
|
キーワード | プログラミング言語 / ソフトウェア工学 / 機械学習 |
研究実績の概要 |
大量のプログラムのトークン列を機械学習することにより、ある種の文法構造を獲得することができる。最新の機械学習技術を応用することで獲得する文法構造の精度を改善し、それを異なる言語で書かれたプログラムの間のクローン(同一の内容をもつプログラム片)を探す問題に適用した。異なるプログラミング言語で書かれたプログラムの場合、同一の内容のプログラムであってもプログラムの表面的な字面は異なる。このため類似性の判定にはプログラムからいわゆる抽象構文木に相当する構造を得て比較する必要がある。本研究ではこれを教師なし機械学習によって得た embedding を用いて表現し、比較した。この結果、我々の過去の研究成果に比して良い成果が得られた。単純な LSTM に始まり、Transformer の利用など様々な手法による学習を試し、優れた性能を示すモデルを探った。我々の過去の研究は、プログラミング言語の文法は既知のものとして通常の構文解析をおこない、得られた構文木を使って同様のクローン検出の問題を教師あり機械学習で解く研究であった。部分的には教師なし学習を用いたが、類似性の学習に教師データを用いたため、訓練データセットの品質に性能が大きく依存するという欠点があった。またモデルが二値の判定器であったため、膨大なプログラムの中から似ているコード片を探すためのの計算効率が著しく悪かった。本研究により、検出精度の点でも、また探すための全体的な計算効率の面でも過去の研究より優れた結果を得られた。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
昨年度までの研究成果について同様の成果が海外の研究グループより先に発表されてしまったため、これまでに得られた研究成果を別の応用に向けるべく研究をおこなった。これにより当初の計画とは応用の方向が少し修正されたが一定の成果があげられた。進捗は計画とほぼ同等か、あるいは若干の遅れがあると認識している。
|
今後の研究の推進方策 |
これまでの研究成果をさらに発展させて、教師なし機械学習によるプログラムの異なる言語への翻訳を試みる。これによってプログラミング言語分野における機械学習の可能性をさらに広げる。
|
次年度使用額が生じた理由 |
コロナ禍で予定していた出張ができなくなったことと、研究成果の応用先を少し修正したのでより発展的な研究を追加でおこなう必要が生じた。コロナ禍の状況によるが出張が困難な場合は、その分を研究に必要な計算機の購入(物品費)と研究に参加する大学院学生に対する謝金に振り向ける。
|
備考 |
「教師ラベルなし単言語学習データのみでのcross-languageコードクローン検出の試み」は日本ソフトウェア科学会第37回大会優秀発表賞を受賞。
|