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)|2022. 02. 02.
Software Engineering Research인용 수 4
한 줄 요약

이 논문은 피드포워드 신경망에 퍼지 과표본화와 하이퍼파rameter 최적화를 통합함으로써 코드 스멜 탐지에서 최신 기술 수준의 성능을 달성하며, 복잡한 딥러닝 모델을 능가함을 보여준다. '기능 의존성'에 대해 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 프레임워크(퍼지 과표본화 및 하이퍼파rameter 최적화를 포함)가 코드 스멜 탐지에서 딥러닝 성능을 향상시키는지 평가하는 것.
  • 더 복잡한 딥러닝 아키텍처보다 단순한 피드포워드 네트워크가 소프트웨어 분석 과제에서 더 나은 성능을 내는지 조사하는 것.
  • 복잡한 딥러닝 모델 사용이라는 일반적인 경향을 도전하기 위해 단순한 베이스라인과 더 나은 전처리를 주장하는 것.
  • 결함 예측을 넘어 코드 스멜 탐지로까지 확장되는, 퍼지 샘플링을 통한 클래스 불균형 완화의 효과를 실증적으로 입증하는 것.
  • 미래 연구를 위해 코드와 데이터셋을 오픈소스로 제공함으로써 재현 가능성을 뒷받침하는 것.

제안 방법

  • 연구는 기능 근사에서 이론적으로 보편적인 성질을 지닌 단순성과 이론적 보편성을 고려해 핵심 딥러닝 아키텍처로 피드포워드 신경망을 선택하였다.
  • 퍼지 과표본화는 코드 스멜 데이터셋의 클래스 불균형 문제를 해결하기 위해 적용되며, 학습 중 소수 클래스의 표현을 향상시킨다.
  • 하이퍼파rameter 최적화는 베이지안 최적화를 사용하여 네트워크 아키텍처, 학습률, 배치 크기 등을 최적화하여 최적의 성능을 도출한다.
  • 자동에코더는 특징 공학 및 차원 축소를 위해 사용되어 분류 이전에 더 나은 입력 표현을 가능하게 한다.
  • 성능는 AUC, F1, 정밀도-재현율 지표로 측정하며, 여러 공개된 코드 스멜 데이터셋을 대상으로 평가된다.
  • 제거 실험을 통해 퍼지 과표본화와 하이퍼파rameter 튜닝의 필수성을 확인하였으며, 기존 딥러닝 및 전통적 과표본화 대비 뚜렷한 성능 향상을 보였다.

실험 결과

연구 질문

  • RQ1RQ1: 기존 딥러닝 방법과 비교해 퍼지 과표본화가 코드 스멜 탐지에서 최신 기술 수준의 성능을 달성할 수 있는가?
  • RQ2RQ2: 왜 피드포워드 네트워크에 퍼지 과표본화를 적용했을 때 소프트웨어 분석 과제에서 뛰어난 성능을 내는가?
  • RQ3RQ3: 성능 향상 요인이 아키텍처, 과표본화 기법, 또는 하이퍼파arameter 튜닝 중 어느 것인가?
  • RQ4RQ4: 적절히 튜닝되고 전처리된 단순한 모델(예: 피드포워드 네트워크)이 복잡한 딥러닝 모델을 능가할 수 있는가?
  • RQ5RQ5: GHOST 프레임워크는 결함 예측을 넘어서 다른 소프트웨어 분석 과제로 일반화 가능한가?

주요 결과

  • 퍼지 과표본화와 하이퍼파arameter 최적화를 조합한 방법은 평가된 모든 데이터셋에서 '기능 의존성' 코드 스멜에 대해 99% 이상의 AUC를 달성하였다.
  • '잘못된 클래스' 스멜에 대해선 10개 데이터셋 중 8개에서 최신 기술 수준의 성능을 기록하였으며, 이는 이전 접근 방식을 크게 능가하는 결과였다.
  • 퍼지 샘플링을 적용한 피드포워드 네트워크는 코드 스멜 탐지 과제에서 RNN 및 CNN과 같은 더 복잡한 딥러닝 모델보다 뛰어난 성능을 보였다.
  • 연구는 적절한 전처리(특히 퍼지 과표본화 포함)가 소프트웨어 분석 과제에서 아키텍처의 복잡성보다 더 큰 영향을 미친다는 것을 확인하였다.
  • 결과는 단순한 모델이 주의 깊은 튜닝과 데이터 증강을 거치면 복잡한 모델을 능가할 수 있으며, 더 깊은 네트워크가 항상 더 나은 성능을 내는 것은 아니라는 가정을 도전한다.
  • GHOST 프레임워크는 결함 예측을 넘어서도 일반화 가능하며, 코드 스멜 탐지에서 최신 기술 수준의 성능을 달성함으로써 소프트웨어 분석 분야에서 광범위한 적용 가능성을 보여준다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.