Boostcamp AI Tech (Day 030)
멘토링
전체 대회 일정
● 약2주-3주정도의대회기간
● 통상적인 회사에서의 개발 혹은 Kaggle 대회에서는 몇 달의 기간을 가지고 일을 진행함.
● 목적과 목표를 명확하게 정하는 것이 중요!
대회초반부
-대회를본격적으로진행할수있도록환경을설정하고/이론적인토대를만드는시기.
○ Baseline code 작성 (Git, dataset split, train, eval, wandb or tensorboard)
○ 협업 가이드 작성 (Git 설정, 실험 정리는 어떻게 할지, 실험 결과 시각화 wandb)
○ 데이터 EDA (데이터 분석, 시각화 등)
○ 모델탐색
○ 가설을세우고,이에맞는실험계획수립
● Baseline code 작성 (Git, 데이터셋을 Train/Val 셋으로 나누는 코드 등)
○ Git 레포에서 작업 (특히, 베이스라인 코드가 ipynb인데, py로 바꾸기!)
프로젝트 코드에 익숙해지기! (https://cow-coding.github.io/posts/day6_torch2/)
○ 데이터를 Train/Val로 나누는 코드 작성.
■ 데이터 특성을 보고, class가 잘 나누어지게 하는 방식 등 적절한 방식을 선택해야함
■ Val - Test 경향성이 잘 일치하는지?
○ Wandb 혹은 Tensorboard와의 연동
● 협업 가이드 작성
○ Git commit & pull request convention
○ 실험 정리는 어떻게 할지? (notion? excel?)
● 데이터 EDA
○ 데이터분석
○ 데이터셋의 라벨링이 제대로 되어 있는지
○ 데이터셋 내의 클래스 분포가 균일한지? (단, 대회에서는 30장 내외로 균일하게 되어있다고 쓰여있음)
○ 각 클래스별 정보량이 어느정도인지?
=> 실제 데이터들을 보면서 전처리, 모델링, Loss 설정 (Focal Loss, F1 Loss 등)에 대한 실마리를 얻자!
● 모델탐색
○ 대회 task와 관련된 최신 논문 survey
■ 예를 들어 Sketch를 분류하는 task인 경우 sketch-recognition 등의 키워드로 최신 논문 검색 ○ 얻어낸 논문들로부터 빠르게 아이디어를 결정!
○ https://paperswithcode.com/task/sketch-recognition/codeless
○ https://arxiv.org/pdf/2405.03099v1
● 가설을세우고,이에맞는실험계획수립
○ 데이터 EDA와 논문 survey를 통해서 얻어진 아이디어들을 통해 가설을 세우고, 실험 계획을 수립해야함!
■ ex)한이미지에여러객체가있는경우도존재하고,각각의이미지의해상도도다르고+특히질감이 중요한 것 같으니 random resize crop을 이용해서 augmentation을 하면 잘 되지 않을까?
■ ex) Gray Scale로 & Edge Detection(sobel filter) 적용해서 하면 더 잘 되지 않을까? ○ 생각할수있는모든경우의수를고려.
■ 실험전에안될거같은데요…?->잘되는경우도많음.
■ 결국에는 실험을 통해서 검증을 해보는 것이 필요하다! ○ 가능한 아이디어를 정리 후 각자 구현해보는 경험을 쌓기를!