[Boostcamp AI Tech] [P-stage] 11주차 Day 4 학습 기록 - 대회 회고

bluegun·2021년 10월 15일
0

AI Tech 2기 활동

목록 보기
50/87

개인 회고

프로젝트 요약

  • 주제 : 10가지 재활용 품목 분류를 위한 Object Detection 모델 개발
  • 사용한 방법 : Swin transformer, YOLO v5, Cascade R-CNN으로 각자 학습한 모델을 ensemble

프로젝트 기간 동안 나의 목표

Classification 대회에 비해 Detection 모델을 실제로 학습시켜 본 적이 없고, 관련 지식도 부족하다고 생각했다. 따라서 제공된 강의 영상을 통해 Detection model에 대해 확실히 이해하고 나서 대회를 진행하려 하였고, 이번에도 Classification 대회와 마찬가지로 여러 시도를 해보면서 실력 향상에 초점을 맞췄다.

시도한 점

개인으로 시도한 점

  • Detection model은 inference를 해도 model이 어떤 특징이 있고 강점과 약점이 어딘지 확인하기 쉽지 않아서, 직접 model을 train dataset과 test dataset에 대하여 output을 만들고 bounding box를 visualizing하는 코드를 만들었다.
  • MMdetection을 활용하기로 하여 이를 공부하고, MMdetection에서 내가 원하는 모델과 파라미터를 설정하는 법을 배웠다.
  • Detecction 이론을 공부한 결과, cascade R-CNN이 성능이 좋을 것이라 판단하여 MMdetection에서 제공하는 cascade R-CNN에 optimizer나 lr등의 parameter를 변경시켜가며 학습을 진행하였다.
  • 팀원들이 만든 모델을 가지고 Ensemble을 진행하였다.

팀으로 시도한 점

  • 각자가 개별적으로 공부 후 모델을 하나씩 맡아 학습하였다.(Swin, YOLO 등)
  • Ensemble 과정에서 어떻게 하면 성능이 오를 지 의논하였다.

대회동안 사용한 모델, 기법

  • EDA 및 데이터 전처리 : Class imbalance를 발견하여, 팀원이 만들어 준 Stratified grouped K-fold 적용
  • 사용한 라이브러리 : MMdetection
  • Model
    1. Faster R-CNN
      • MMdetection내에 제공받은 baseline 코드 사용
    2. Cascade R-CNN
      • MMdetection 내의 config에서 optimizer를 AdamW, lr를 cosine annealing으로 변경 후 사용
  • WandB를 통한 학습 Visualizing

결과

  • Faster R-CNN : 최고 mAP 0.451
  • Cascade R-CNN : 최고 mAP 0.181
    • MMdetection 내 cascade config를 그대로 활용했지만 성능이 나오지 않았고, 이를 해결하지 못했다.
    • Underfitting 문제로 판단된다.

대회를 통해 얻은 것

  • Detection 문제에 대해 어떤 식으로 접근해야 하고, 어떤 식으로 model을 개선할 수 있는 지 알게 되었다.
    • Model의 각 class 별 mAP를 통해 어느 부분을 잘 예측하는 지 파악하고, 다른 부분에 강점을 가지는 model을 ensemble하는 식으로 성능을 개선할 수 있다.
  • 이론적인 학습도 중요하지만, 다양한 실험을 통해 얻은 결과가 개인 학습에 더 큰 도움이 된다는 점을 알게 되었다.

아쉬운 것

  • 이번에도 만든 model이 성능이 제대로 나오지 않아 아쉬웠다. 다른 팀원이 cascade R-CNN을 사용하였을 땐 성능이 많이 높게 나와 내가 좀 더 제대로 했으면 하는 아쉬움이 있다.
  • Detection 이론 공부에 시간을 많이 할애하여 실제 코드 작업은 많이 못해본 점이 아쉽다.

앞으로 준비할 것

  • 강의를 보며 Domain 지식을 익히는 것도 중요하지만, 최대한 빨리 실험을 할 환경을 세팅하고 다양한 실험을 해가며 이해가 안되는 부분을 공부하는 식으로 하는 게 좋을 것 같다.
  • Segmentation 대회에서도 Detection 대회의 지식을 많이 사용할 것 같으므로, 이번 대회에 사용한 내용을 잘 정리해 다음 대회에서도 활용할 수 있도록 하겠다.

0개의 댓글