프로젝트 주제
성별(남,여), 마스크착용(착용, 미착용, 대충착용), 연령대(30세 이하, 31세~59세, 60세 이상)
18개의 class를 classification 하자
프로젝트에 사용된 기술
- Pytorch
- WandB
- Data Augmentation:
- TTA (TestTimeAugmentation)
- face recognition
- k-fold
- cutmix
- soft ensemble
- Multi-Class Model Concatenation
- 사용한 모델
- Rexnet
- Efficientnet
- Regnety
진행 요약
1주차
첫주차때는 개인전으로 개인이 직접 Zero base부터 구성하는 작업을 했다.
이 기간을 나는 파이토치에 대한 감을 잡는 시간으로 활용했다.
EDA를 통해 데이터가 어떻게 분포되어있고 활용할 수 있는 데이터가 무엇인지를 확인했다.
Dataset을 구성하고 기본적인 Loader를 만들고 training을 시도했는데 결과가 너무 안좋았다.
제출까지는 해봤지만 성능저하에 대한 이유를 알 수 없었다.
2주차
2주차는 팀전이다
1주차가 끝날 때 즈음 아직 제출을 해보지 못한 팀원이 있었기 때문에 2주차를 어떻게 진행해야할까에 대한 이야기를 나눴다
팀전을 진행할 준비가 된사람들끼리 먼저 역할분담을 하기로했다.
여러 테스크들을 정리하고, 분배했다.
하루에 팀별로 제출 횟수가 10회로 정해져있기 때문에, 멘토님의 의견으로 training dataset에서 랜덤으로 데이터를 10퍼센트 정도 추출하고 team_eval_set을 만들어서 자체적으로 제출해봤다.
팀원 중 한명이 파이썬에 능숙해서 그분의 도움으로 2주차가 수월하게 진행됐다.
학습 데이터가 더 많았다면 효과를 더 많이 볼 수 있었을것 같다.
나는 WandB를 맡아서 하기로했다.
WandB에 대해 간단히 설명하자면 Team Project로 관리가 가능한 TensorBoard다
- Model select
- Ensemble
- k-fold
- Data-Augementation
위의 4개의 큰 주제를 위주로 시도해봤다
마감하기 하루 전 WandB의 Sweeps라는 기능을 알게 돼서 이 방법으로 나머지 Hyperparameter Tuning을 편하게 할 수 있었다.
결과 요약
- EDA
- Train데이터 라벨의 분포 확인
- Train데이터 라벨의 분포 확인
- Model
- Model은 Pre-trained된 것을 쓰는게 좋다.
- pretrained된 모델을 쓸 때 그 model이 어떤 주제로 pre-trained되었는지도 중요하다
- Learning_rate
- 대체적으로 낮을수록 성능이 좋았다
- 계속 0.001로 사용했는데 마지막쯤에 lr만 0.0005를 사용했는데 성능이 거의 다 올랐다
- 더 낮은 lr을 시도해 보지는 못했다
- Data Augmentation
- data augmentation을 위한 TTA 기술을 알게되었다.
- Training에 사용된 Face Recognition, Transformer, Albumentation
- Training
- K-fold
- Ensemble
- Validation을 할 때에도 똑같이 Transform을 적용해줘야 높은 점수가 나온다는것을 알게되었다.
느낀점
한달간 진행한 Boostcamp에서 이번 P-stage를 통해 가장 큰 성장을 했다고 느꼈다.
결과는 우수하지는 않았지만 우리 조는 전원이 모든 스텝에 성장했다고 느꼈다.
Transform을 통해 데이터의 전처리가 얼마나 중요한지를 알게 되었다.
Transform의 변화에 따라 모델의 성능이 달라지고, 아무 Transform을 사용하는게 아니라 내가 하려는 도메인의 성격에 따라 맞게끔 해줘야 하는것을 알게되었다
Test사진은 다 정면인데 이걸 굳이 상하반전 할 필요는없다
팀원들이 해준 모든것을 제대로 이해는 못했지만 이번 주말에 개인적으로 코드를 리뷰하고 다시 공부할 예정이다
EDA부분에서 좋은 정보를 얻지 못했다.
EDA에대해 더 공부하고 Visualization을 더 공부해야겠다.
대회 1등한 조는 pseudo-labeling을 사용했다.
Wandb의 Sweeps를 사용하면 모델 선택부터 hyperparameter tuning까지 모든 업무를 대신해줄 수 있지 않을까?
'부스트캠프 AI Tech 2기 > 2기 P-Stage' 카테고리의 다른 글
1주차 - PStage 마스크 착용 분류 (0) | 2021.08.27 |
---|