Project
오늘의 목표 및 진척상황
- Low Precision Training 적용
- LR Scheduler 및 LR 실험
- MADGRAD 성능 확인
- Weight Decay 성능 확인
직면했던 문제와 학습한 내용
- Low Precision Training
Training 시 Low Precision으로 수행하는 Code를 적용했다. 실제 제출까지는 수행하지 않고, 일정 Epoch까지의 Loss를 체크해봤다. 성능 향상에는 다소 방해가 될 것으로 판단 되나, 속도의 향상이 눈에 띄었다. Colab의 P100과 V100에서는 속도의 차이는 없었으나, P40에서는 약 25%정도의 속도 향상이 있었다. 최종 결과를 생성할 때에는 해당 코드를 제외할 예정이나, 여러 실험 간에 큰 도움이 될 것 같다.
- LR Scheduler 및 LR
이게 며칠동안 계속 말썽이다. 수렴 시점에 LR을 낮춰주면 성능이 올라갈 것이라고 생각했으나, 그렇지 않았다. 이전에 Step LR Scheduler 실험 시에는 Step을 5로 고정하고, gamma 값만 바꿨었고 좋은 결과를 얻지 못했다. 오늘은 수렴 시점인 15로 Step을 바꾸고, gamma를 0.1을 줬다. 하지만, 여전히 Scheduler가 없느니만 못한 결과가 나왔다. 지금은 Cosine Annealing Warm Restart를 실험해보고 있다. 중간 Loss값만 확인한 결과로는 없는 것 보다는 낮게 나오고 있다. 문제는 Step LR Scheduler도 Loss 값은 낮았다는 점이다.
위 실험을 위해서 먼저 유효한 LR값을 확인했다. 일반적으로 사용되는 1e-3은 3 Epoch쯤에서 Validation Loss가 최소값을 찍고 튕겨 나갔다. 기본적으로는 1e-4가 가장 좋은 성능을 보였기에, 기본값으로 사용했다. 1e-5는 20 Epoch까지 수렴하지는 않았으나 꾸준히 상승하는 모습을 보였다. Step LR Scheduler의 gamma를 0.1로 잡은 이유가 이것이다.
- MADGRAD
MADGRAD를 사용하는 Peer들이 있고, 성능이 좋다길래 실험해봤다. 결론은 AdamP보다 성능이 좋게 나오지 않았다. 이 실험으로 기본 Optimizer는 AdamP로 결정할 수 있었다.
- Weight Decay
오피스 아워 시간에 멘토님께서 Weight Decay에 대한 언급을 잠깐 하셨고, Baseline Code에도 이 값이 설정되어 있었다. 안그래도 어떻게 적용해볼까 고민하고 있던 차에, 좋은 기본값이 있어서 실험중에 있다.
추가로 진행 할 사항
- 실험결과 기준으로 Default Code 결정 (Cosine Warm, Weight Decay 제출)
- Weight Focal Loss, F1 Loss 실험
- Tqdm Bar에 표시되는 Metric F1으로 변경
- Noisy Data 처리 방법 공부
- Class Imbalanced Problem 공부
'네이버 부스트캠프 AI Tech' 카테고리의 다른 글
[P1] Day 46 (0) | 2021.04.11 |
---|---|
[P1] Sunday 5 April (0) | 2021.04.11 |
[P1] Day 45 (0) | 2021.04.11 |
[P1] Day 44 (0) | 2021.04.11 |
[P1] Day 43 (0) | 2021.04.11 |
Uploaded by Notion2Tistory v1.1.0