Home Boostcamp AI Tech 6주차 회고록
Post
Cancel

Boostcamp AI Tech 6주차 회고록

6주차 회고록

피어세션

  • LV1 대회 참여에 대한 베이스라인 분석 및 코드 제작

이벤트 세션

  • 스페셜 피어세션
    • 타 팀원간의 미팅 진행
    • 팀 구성과 대회에 대한 아이디어 공유
  • 멘토 클래스
    • 가상환경 이해 및 설정
    • EMA 기법에 대한 지식 제공
  • 마스터 클래스
    • 대회에 대한 팁 제공
  • 오피스 아워
    • 베이스라인 설명
    • Pycharm에 대한 전반적인 설명

프로젝트

  • 베이스라인 코드
  • 서버 환경설정

회고

LV1 대회는 2,700명의 데이터에 대해 각각 7가지의 마스크 착용 이미지를 통해 Age(나이)와 Gender(성별), Mask(마스크 착용 방법)를 분류하였다.
제공된 베이스라인 코드가 전반적으로 마음에 안들어서 코드를 직접 제작 하였다.
특히 Age와 Gender가 한 이미지에 일대일 대응으로 7개씩 확장되는 것과, 7개로 펼친 데이터를 train과 validation으로 나누는 것이 많이 신경쓰였다.
이 점을 보완하기 위해 Ensemble 기법을 선택하여 코드를 제작하였다.
우선 사람에 대해 train과 validation으로 나누었고, Age와 Gender는 7장의 이미지 중 랜덤으로 한 이미지를 불러와 Augmentation과 같은 효과를 유도하였다.
Mask는 2,700 * 7 = 18900 장으로 확장하여 shuffle 하였다.

팀원들이 Baseline을 중점적으로 분석하여 개인적으로 Ensemble 모델을 만들어서 비교적 많은 시간을 소요하였다.
하지만 개인적으로 느끼기에 코드 작성에 대한 이해도가 크게 높아진 것 같았다.
Baseline이 더욱 Pythonic한 코드여서 적당히 참조를 한 것 같다.

처음에는 Age에 대한 labeling을 잘못해서 높은 학습 결과에 비해 테스트에서 낮은 결과를 도출하였다.
현재는 Mask와 Gender에 대해 약 98퍼의 정확도를 도출하지만, Age에 대한 정확도가 약 77%로 매우 낮았다.
데이터를 개략적으로 분석해보았을 때, 55세 내외의 데이터가 매우 많고, 60세 데이터가 매우 적었다.
즉 55세 인원에 대해서 60세와 다르게 분류하기엔 큰 한계가 있다고 생각한다.

나이를 분류하기 위해 0<30<60<61 의 범위가 아니라 0<30<55<60 정도로 분류해야할 수도 있겠다는 생각이 들었다.
정당성을 위해 다음과 같이 label을 분류할 때 모드가 동일한 조건을 갖추기 위한 일관된 전처리가 필요할 것으로 예상한다.

추후 나이에 대한 언더샘플링으로 학습을 진행해보고자 하지만, 60세의 데이터가 매우 적어 효과를 볼 수 있을지는 확신이 없다.

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