Skip to main content
QUICK REVIEW

[論文レビュー] How to Improve Deep Learning for Software Analytics (a case study with code smell detection)

Rahul Yedida, Tim Menzies|arXiv (Cornell University)|Feb 2, 2022
Software Engineering Research被引用数 4
ひとこと要約

この論文は、ファジィオーバーサンプリングとハイパーパramータ最適化を組み合わせたフィードフォワードニューラルネットワークが、コードスモール検出において最先端の性能を達成することを示しており、複雑なディープラーニングモデルを上回っている。このアプローチは「特徴依存症」に対して99%を超えるAUCを達成し、「誤ったクラス配置」に対しては10個のデータセットのうち8個で最先端の性能を示しており、適切な前処理を施した単純なモデルがソフトウェアアナリティクス分野で複雑な学習器を上回ることを示唆している。

ABSTRACT

To reduce technical debt and make code more maintainable, it is important to be able to warn programmers about code smells. State-of-the-art code small detectors use deep learners, without much exploration of alternatives within that technology. One promising alternative for software analytics and deep learning is GHOST (from TSE'21) that relies on a combination of hyper-parameter optimization of feedforward neural networks and a novel oversampling technique to deal with class imbalance. The prior study from TSE'21 proposing this novel "fuzzy sampling" was somewhat limited in that the method was tested on defect prediction, but nothing else. Like defect prediction, code smell detection datasets have a class imbalance (which motivated "fuzzy sampling"). Hence, in this work we test if fuzzy sampling is useful for code smell detection. The results of this paper show that we can achieve better than state-of-the-art results on code smell detection with fuzzy oversampling. For example, for "feature envy", we were able to achieve 99+\% AUC across all our datasets, and on 8/10 datasets for "misplaced class". While our specific results refer to code smell detection, they do suggest other lessons for other kinds of analytics. For example: (a) try better preprocessing before trying complex learners (b) include simpler learners as a baseline in software analytics (c) try "fuzzy sampling" as one such baseline.

研究の動機と目的

  • GHOSTフレームワーク(ファジィオーバーサンプリングとハイパーパramータ最適化を特徴とする)が、コードスモール検出におけるディープラーニングの性能を向上させるかどうかを評価すること。
  • より単純なフィードフォワードネットワークが、ソフトウェアアナリティクスタスクにおいて、複雑なディープラーニングアーキテクチャを上回る可能性があるかどうかを調査すること。
  • 複雑なディープラーニングモデルの使用が一般的である傾向にあるのを是正し、単純なベースラインとより良い前処理を提唱すること。
  • ファジィサンプリングによるクラス不均衡の緩和が、欠陥予測を越えてコードスモール検出にも有効であるという実証的証拠を提供すること。
  • 今後の研究の再現可能性を支援するため、コードとデータセットをオープンソース化すること。

提案手法

  • 研究では、関数近似における理論的普遍性と単純さを考慮し、コアとなるディープラーニングアーキテクチャとしてフィードフォワードニューラルネットワークを採用した。
  • コードスモールデータセットにおけるクラス不均衡を是正するため、ファジィオーバーサンプリングが適用され、トレーニング中のマイノリティクラスの表現が向上した。
  • 最適なパフォーマンスを得るために、ベイズ最適化を用いてネットワークアーキテクチャ、学習率、バッチサイズのハイパーパramータ最適化が実施された。
  • 特徴工学と次元削減のためにオートエンコーダーが使用され、分類の前段階でより良い入力表現が得られた。
  • 複数の公開済みコードスモールデータセットを用いて手法の評価が行われ、AUC、F1、および精度再現率メトリクスで性能が測定された。
  • アブレーションスタディにより、ファジィオーバーサンプリングとハイパーパramータチューニングの必要性が確認され、ベースラインのディープラーニングおよび従来のオーバーサンプリング手法よりも顕著なパフォーマンス向上が示された。

実験結果

リサーチクエスチョン

  • RQ1RQ1: 既存のディープラーニング手法と比較して、ファジィオーバーサンプリングはコードスモール検出で最先端の結果を達成できるか?
  • RQ2RQ2: ファジィオーバーサンプリングを用いたフィードフォワードネットワークが、ソフトウェアアナリティクスタスクでなぜこれほど優れた性能を発揮するのか?
  • RQ3RQ3: パフォーマンスの向上は、アーキテクチャ、オーバーサンプリング手法、それともハイパーパramータチューニングに起因するのか?
  • RQ4RQ4: 適切にチューニングされ、前処理が施された単純なモデル(例:フィードフォワードネットワーク)は、複雑なディープラーニングモデルを上回ることができるか?
  • RQ5RQ5: GHOSTフレームワークは欠陥予測を越えて、他のソフトウェアアナリティクスタスクにも一般化可能か?

主な発見

  • ファジィオーバーサンプリングとハイパーパramータ最適化を組み合わせた手法は、評価されたすべてのデータセットで「特徴依存症」スモールに対して99%を超えるAUCを達成した。
  • 「誤ったクラス配置」スモールに関しては、10個のデータセットのうち8個で最先端の性能を達成し、先行研究を著しく上回った。
  • ファジィサンプリングを用いたフィードフォワードネットワークは、RNN や CNN といったより複雑なディープラーニングモデルをコードスモール検出タスクで上回った。
  • 本研究では、適切な前処理(特にファジィオーバーサンプリング)が、アーキテクチャの複雑さよりもソフトウェアアナリティクスにおいてより大きな影響を持つことが確認された。
  • 結果から、注意深くチューニングされ、データ拡張が施された単純なモデルが、複雑なモデルを上回ることができることを示唆しており、より深いネットワークが常に優れるという仮定に疑問を呈する。
  • GHOSTフレームワークは欠陥予測を越えて一般化可能であり、コードスモール検出においても最先端の結果を達成した。これは、ソフトウェアアナリティクス分野における広範な適用可能性を示している。

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

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

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

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