Home Boostcamp AI Tech 11주차 회고록 [Wrap-Up]
Post
Cancel

Boostcamp AI Tech 11주차 회고록 [Wrap-Up]

11주차 회고록 - Wrap Up

Wrap Up

학습 목표 및 활동 내용

  • mmdetection 실습
    • Local Library 환경 구성
    • model, dataset, scheduler 및 runtime과 같은 Configs 조정
    • Code Level로 학습 매커니즘 분석
    • Weights & biases 적용
  • Yolo V7 실습
    • Yolo Format 및 데이터셋 디렉터리 구조 이해
    • 하이퍼 파라미터 구성 이해
  • 공통 목표
    • NMS 기반 Ensemble 이해

모델 개선 방법

  • Imbalanced Dataset 개선을 위한 Loss 함수 다양화
    • Focal loss
    • Label smoothing
    • Label smoothing with Focal loss
  • Image Scaling
    • 512
    • 640
    • 1024
    • 1280
    • 1472

실험 결과

  • Loss 함수 적용
    • Class Imbalance를 확인하였으나, 이를 개선하기 위한 Loss 함수는 미미하거나 부족한 결과를 반환
    • BBox 시각화를 바탕으로 박스와 별개로 박스를 감싼 노끈General trash로 분류하거나 플라스틱을 감싼 비닐 속의 플라스틱은 취급하지 않아 타 Class의 영역을 포함하는 경우를 다수 식별
    • 일반 Crossentropy Loss함수에서 가장 개수가 적은 Battery를 약 100% 가량의 높은 정확도로 도출
    • Imbalance의 문제보다 정답 BBox의 모호한 기준이 학습에 큰 방해 요인으로 취급
  • Image Scaling
    • 기존 이미지 사이즈가 1024이긴 하지만, 모델의 연구에 따른 기본 크기로 학습
    • YoloV7 Aux 모델의 경우 1280을 권장하지만, Mosaic 시 Interpolation이나 사라지는 BBox 영역을 보완하기 위해 1472의 사이즈로 학습
    • 예상한 대로, 크기가 클수록 우수한 성능을 반환

한계 및 아쉬운 점

  • setuptools의 이해
    • mmdetection을 라이브러리로 이해하여 pip를 통한 설치로 인해 local setting의 적용 실패
    • template 정리를 위해 baseline의 setup 파일을 지우거나 관련 폴더를 제거하여 재설치에 장애 발생
    • slack 내에서 타 캠퍼들의 도움을 받아 setuptoolspip 관계를 이해
  • YoloV7 활용
    • YoloV7에서 가중치 파일로 재학습 시 오류 발생
  • mmdetection의 활용
    • 훅과 같이 문자열로 함수를 정의하는 등 힌트가 없어 이해하는 데에 많은 시간을 요구
    • Dataset 호출 방식, Augmentation, Hyperparameter 등이 Docs를 필수로 요구하는 구조
    • Object detection에 대해 깊이 이해하지 못해 Layer 튜닝에 실패
  • 프로젝트 기간
    • 3주를 진행하였으나 실질적으로 1주는 Object detection을 이해하는 데에 소모하였고, 차기 2주도 라이브러리에 적응하는 데에 시간을 소요
    • 일일 10회 정도 제출할 수 있는 프로젝트임에도 불구하고, 기초 학습에 따른 최종 64회의 적은 횟수의 제출
    • 라이브러리를 이해하는 과정을 생략하고 바로 학습 후 제출하여 모델 결과를 꾸준히 쌓는 것도 괜찮지 않았을까 하는 아쉬움 존재
  • 의욕 저하
    • Object detection의 난이도로 제대로 학습하지 못하고, Code-Level로 체계적으로 분석하지 못하여 팀원들 보다 낮은 이해도로 접근

새롭게 시도해 볼 것

  • 멘토의 조언
    • Augmentation으로 학습 성능을 끌어올리는 것은 AI가 아닌 Backend 개발자도 가능
    • AI Developer/Engineer로 거듭나기 위해 Model과 Hyperparameter를 Code-level로 체계적으로 분석
  • 학습 과정
    • 학습 시에 대한 이해보다 실습과 동반한 이해
  • 적용에 대한 분석
    • 주제의 범위가 벗어나더라도 학습이 가능하다면 적용

피어세션

  • 대회형 프로젝트
    • Wrap-up 보고서 작성

이벤트 세션

  • 스페셜 피어세션
    • 대회형 프로젝트를 마무리하며 각자 팀원들의 진행 방법을 제시
  • 마스터 클래스
    • PT를 통해 대회 우승자의 메소드 공유

문제점 및 개선 방향

문제점

  • 논문 리뷰로 인한 프로젝트 참여도 저하
    • MAE 논문 발표자로 선정
    • 첫 논문 리뷰인 만큼 너무 꼼꼼이 분석

개선 방향

  • 핵심 추출 능력 강화
    • 글로 정리하기 위한 리뷰는 논문을 가볍게 훑어 보는 방법과 확연한 차이 식별
    • 논문을 제대로 이해하기 위해선 구현까지 요구하나, 우선적으로 글로 정리하는 능력을 요구

뭔가, 프로젝트 대신 Object detection이라는 분야에 학습하는 데에 더 많은 시간을 투자했더라면 더욱 유용하지 않았을까라는 아쉬움이 남았다. 대다수의 캠퍼가 mmsegmentation이라는 낯선 라이브러리를 제대로 숙지하지 못하고 본 프로젝트를 진행하려고 하니 많은 인원들이 힘들고 지쳤던 것 같다. 논문 리뷰로 인해 제대로 참여하진 못하였지만, 팀원들은 위와 같은 어려움을 가지고 한 주를 보냈을 것으로 생각하니 마음이 불편했다.
팀원들에게 이러한 신세들을 지다 보니, 팀원들을 위해 어떠한 것들을 해줄 수 있을 지에 대해 많이 고민하는 것 같다. 능력적으론 부족하다고 느껴 분위기를 긍정적으로 이끌어 가려고 노력하지만, 정신적으로 위로를 해주기 위해 팀에 입성한 것이 아니라고 생각한다.
위와 같은 생각과 달리 팀원들은 저런 생각하는 나를 무안하게 만들 정도로 착한 것 같다. ‘모두가 그렇게 생각한다.’와 같은 말들이 마음 속 깊이 깊이 오갔었던 것 같다.
논문 때문이라고 탓하고 싶지 않다. 모두가 다 할 논문 리뷰이기 때문에, 내가 논문 때문에 힘들어한다면 추후의 남들도 거부감을 느낄 것 같았다. 우리 팀원들은 대회형 프로젝트의 목적이 순위가 아닌 학습이라는 것을 잘 알고 있는 것 같다. 비록 욕심은 가끔 부릴 수 있으며, 그러한 점에 열정이 타기 마련인 것 같다. 팀원들과 함께 소통으로 열정을 도출하였고, 열정을 바탕으로 학습을 진행하였다.
팀 프로젝트 대회에 많이 참여하지 못한 것 같아 미안하지만, 기죽지 않고 내가 왜 못한 지를 다시 짚어보고 차기 프로젝트에서는 이번에 못한 만큼 더 할 수 있도록 성장하는게 목표이다.

This post is licensed under CC BY 4.0 by the author.