[Boostcamp AI Tech] [P-stage] 14주차 Day 5 대회 회고

bluegun·2021년 11월 8일
0

AI Tech 2기 활동

목록 보기
67/87

대회 회고


프로젝트 요약

  • 주제 : 10가지 재활용 품목 분류를 위한 Object Setection 모델 개발
  • 사용한 방법
    • Swin HTC, UPerNet 모델을 Ensemble
    • Pseudo labeling, Test Time Augmentation으로 성능 향상

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

지난 Detection 대회를 진행한 뒤, 강의를 완전히 이해하고 이를 바탕으로 대회를 설계하고 진행하는 것보다 일단 최대한 다양한 모델을 다양한 환경에서 실험을 해보고 그 과정에 강의를 들으며 실험 결과를 통찰하고 발전시켜 나가는 것이 대회 스킬과 이론 습득 모두를 진행하는 데 적합하다고 생각하였다. 그래서 이번 대회는 최대한 다양한 모델을 실험하면서 모델을 학습시키는 감을 익히고 매번 변인을 조금씩 바꿔 실험하며 어떤 식으로 학습했을 때 잘 되는지 기록하는 것이 목표였다. 즉, 대회를 진행하고 코드를 짜는 데에 중점을 뒀다.

시도한 점

개인으로 시도한 점

  • Segmentation 모델들을 보고, 기존 경험으로 보아 Efficient-unet이나 HRNet이 성능이 좋을 것 같아 먼저 해당 모델을 사용 해 실험하였다.
    • 실험마다 약간씩 파라미터를 바꿔 어떤 변화가 있는 지 관찰하였다.(Efficient-unet의 경우 backbone의 크기를 b0~b7까지 바꿔가며 실험, epoch이나 augmentation 적용에 따른 변화를 관찰)
  • 학습한 모델에 Data가 주어졌을 때 masking한 결과를 visualizing 하여, 팀원들의 모델이 어떤 특징을 가지고 있는 지 분석하였다. 이는 이론만으론 이해하기 힘든 모델의 특성을 이해하는 데 도움이 되었고, 모델의 장단점 파악을 통해 성능 향상에도 기여할 수 있었다.
  • visualizing을 통해 얻은 지식을 바탕으로 팀원의 모델들을 Ensemble 하여 LB score를 끌어올렸다.

팀으로 시도한 점

  • 각자 모델을 나눠 맡아 학습을 진행하고 공유하였다.
  • baseline 코드로 주어진 pytorch 코드 뿐만 아니라, MMsegmentation과 MMdetection을 활용해 모델 학습을 진행하였다.
  • Multiscale과 TTA를 시도하였다.
  • 성능이 어느정도 나오는 모델을 활용해 Pseudo labeling을 하여 Dataset에 추가하였다.

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

  • 사용한 모델 : 기본적으로 swin transformer가 높은 성능을 냈고, HRNet은 다소 아쉬운 성능을 보였다.
    • Swin HTC : cascade mask R-CNN 기반의 모델로, Instance segmentation task에서 뛰어난 성능을 보이는 모델이다. 대회 task에 활용하기 위해 mask를 Instance화 하는 과정을 없애고 사용하였다. ( LB score : 0.734 )
    • Swin + UPerNet ( LB score : 0.729)
    • HRNet : 모델 forward 시 다른 모델과 달리 이미지의 고해상도를 유지하고 다양한 해상도를 병렬적으로 연결해 구성한 모델로서, 작은 크기의 object masking에 괜찮다고 알려져 있으나 현 대회에 적용했을 때는 크게 좋은 성능을 보여주진 못하였다. ( LB score : 0.627)
  • 사용한 기법
    • Augmentation(Multiscale, Flip), TTA
    • Pseudo labeling
    • Ensemble ( hard voting )

결과

    • 최종 LB score : Public 0.763, Private 0.714
  • 개인
    • 최고 LB score : Public 0.627 ( HRNet )

대회를 통해 얻은 것

  • 지금까지 대회 중엔 가장 대회에 참여하는 느낌으로 접근한 것 같다. 가설을 세운 후 여러 실험을 하며 결과를 분석하고 다시 새로운 실험을 하는 과정이 제대로 대회를 진행하고 있다는 느낌을 줬고, 대회에 몰두하는 감을 얻은 것 같아 이젠 Kaggle 같은 데서 다른 대회를 진행해도 할 수 있을 것 같단 자신감을 얻었다.
  • 지난 Detection 대회와 더불어 CV task는 Data visualizing이 정말 중요하다는 것을 깨달았다. visualizing을 통해 모델의 특성과 장단점을 알고 이를 통해 더 합리적이고 잘못될 가능성이 적은 가설을 세울 수 있게 된다는 점을 다시 한 번 새겼다.

아쉬운 것

  • 결국 이번 대회도 내가 만든 모델이 팀 내에서 좋은 성적을 기록하진 못했다. HRNet을 사용한 팀원 중에선 가장 높았지만, transformer 계열 모델이 이번 대회에 너무 잘 맞아서 score 차이가 좀 컸던 게 아쉽다.
  • 대회에 몰두하느라 각 모델 이론을 완전히 습득하고 사용하지 않았다. 대략적인 모델의 특징은 알지만 세부 구조를 잘 익히지 못한 점이 아쉽다.
  • 다양한 실험을 위해 모델을 가져다 쓰기만 했고, 실제 구현은 해보지 못했다.
  • 체계적인 팀 협업을 하지 못했다. 1등 팀의 발표에서 팀 간 체계적인 스케줄링이 정말 대단하게 느껴졌다.

앞으로 준비할 것

  • 팀 협업을 위한 다양한 스케줄링 기법이나 툴을 익혀두고, 팀원들과 미리 얘기해 한번 시도해 보는 것이 좋을 것 같다.
  • 이젠 좋은 대회가 있으면 참여해 혼자 대회를 해보며 경험을 쌓는 것이 좋을 것 같다.

0개의 댓글