안녕하세요, 제가 했던 전처리에 대한 피드백을 듣고, 여러분이 어떤 전처리를 사용했는지 알고 싶어 이렇게 글을 씁니다.
이번 대회가 제대로 참여하는 첫 대회라서 GPU서버 설정부터 데이터 전처리까지 하나하나 알아가며 해서 초반에 많이 헤맸던 것 같습니다.
ego+crash, timing은 val F1 Score가 잘 나와서 대부분의 전처리는 Weather에 했었는데 전처리들이 성능이 좋지 않았던 이유가 뭘지 생각해 봤습니다.
- 전처리 자체의 성능이 좋지 않았다.
- 코드를 잘못 짰다.
- label이 test의 기준과 달랐다.
- 데이터 수가 부족해서 어떤 전처리를 하여도 성능 향상이 없다.
정확한 이유는 모르겠지만 시도했던 전처리 절반 이상이 별로였습니다. 혹시 예상 가는 이유가 있다면 알려주세요!
성능 향상 o
- ego+crash, timing, weather 3 가지 주제로 나누기
- normalize -> 3D ResNet 18의 pre-trained dataset (kinetics-400)의 mean, std 사용 (성능 많이 상승)
- 이상치 제거 -> 데이터 중 터널 안, 셀카, 바닥 보는 것 등등 구도가 블랙박스의 그것과는 다르거나 낮/밤, 날씨를 알 수 없는 데이터는 제거했습니다만, test dataset을 보니 제거하지 않는 것이 나았을지도 모르겠습니다.
- label 0 datset labeling 및 잘못 labeling된 data re-labeling -> 제 생각엔 성능 향상에 가장 큰 영향을 미친 것 같습니다.
- Img size resizing -> 이미지 크기를 키워도 보고 줄여도 봤는데 대체적으로 128 ~ 200이 좋은 것 같습니다.
- train_test_split -> 개인적으로 영향이 크다고 생각합니다. 좋은 데이터라면 그 수가 많을수록 유리하기 때문에 labeling이 잘 되어 있고, 학습 방법이 올바르다고 생각한다면 validation 비율을 줄일 수 있습니다.
성능 향상 x
- ego, crash, timing, weather 4 가지 주제로 나누기
- Resampling -> weather의 class imbalance issue를 해결하기 위해 Oversampling, Undersampling 모두 시도해 보았지만 둘 다 성능이 거의 좋아지진 않았습니다.. (Oversampling은 Augmentation과 섞어서 사용한다면 좋을 것 같습니다.)
- weather를 normal / others, snowy / rainy로 나누기 -> snowy / rainy는 잘 분류하지만 예상 외로 normal / others를 잘 분류하지 못했습니다.
- Video to Image -> weather를 이미지로 분류하는 방법에 대한 토크를 보고 Xception을 이용해 학습해 val f1 score 0.86까지 도달했지만 막상 test val f1에서는 더 좋지 않은 성능을 나타냈습니다.
- Video Augmentation: 1) train 밝기 감소, val, test 그대로, 2) train 그대로, val, test 밝기 증가, 3) colorjitter 및 randomcrop, Randomflip, 4) centercrop, 5) Adversarial Training
그 외 시도들
- classifier에 Dense Layer 대신 SVM 써보기
- Ensemble
- Focal Loss (성능이 하락했는데 많은 분들이 채택하신 걸로 보아 제가 구현을 잘못 했나 봅니다.)
- 3D ResNet 50, slowfast -> 모델이 깊을수록 overfitting이 일어나 가벼운 model이 좋은 성능을 냈습니다, (ex. 3D ResNet 18)
- L2 Regularization -> optimizer에 weight_decay 추가하시면 됩니다.
Best Val F1 Score (train_test_split = 0.1, 0.2, 0.2 기준)
ego+crash: 0.962 img size = 128
timing: 0.985 img size = 200
weather: 0.820 img size = 200
피드백은 언제나 환영입니다!
좋은 글 잘 봤습니다. 고생하셨습니다:)