[프로젝트 3 - Segmentation] 5. Semantic segmentation 대회 팁

Jade·2021년 4월 30일
0

부스트캠프 AI Tech

목록 보기
48/54

프로젝트 3 - Semantic segmentation 대회 팁

  • 주의사항
  • Validation

[주의사항]

  1. 재현 가능성
    torch, numpy, os 시드를 고정해서 같은 모델을 재현할 수 있도록 한다.

  2. 실험 기록
    네트워크, augmentation, 하이퍼파라미터 등 성능에 영향을 주는 조건을 바꿔 가며 실험한 뒤 결과를 기록한다.
    실험 결과를 팀원과 끊임없이 공유할 것!

  3. 실험은 한 번에 하나씩
    한 번에 여러 개의 방법을 적용하면 어떤 방법이 성능 향상에 영향을 끼쳤는지 알 수 없다.

  4. 팀원 간 역할 분배
    공통 베이스라인 코드를 기반으로 가장 좋은 솔루션을 찾을 것인가? 독립적으로 베이스라인 코드를 만들어서 마지막에 앙상블할 것인가?
    EDA/코드 작성/솔루션 조사/디스커션 조사 등으로 역할을 나눌 수도 있다.

옵티마이저나 augmentation 등이 모든 모델에 공통적으로 효과가 있다고 볼 수는 없다. 따라서 공통 베이스라인으로는 2~3개 정도 모델을 두고 발전시킨 다음 마지막에 앙상블하는 것이 효과적이다.


[Validation]

  1. Hold out
    학습/검증 셋을 일정 비율로 나누고 학습 결과를 검증하는 방법.
    빠르게 검증할 수 있지만 검증셋은 학습에 참여할 수 없어서 잘 쓰이지 않는다.

  2. k-fold
    데이터를 k쌍(학습/검증)으로 분리해서 k개의 모델을 만들고 k개 모델의 결과를 앙상블하는 방법. 시간이 길고 k값을 적절하게 선택해야 한다.

  3. Stratified k-fold
    그냥 k-fold는 class distribution을 고려하지 못하기 때문에 fold마다 클래스 분포가 동일하도록 나누는 방법.

  4. Group k-fold


[피어 세션]

스케줄러 - stepLR, cosine
모델 - DeepLabV3+, HRNet, swin > smp에 있는 기타 모델 시도해보고 좋은 거 있으면 공유, 없으면 HRNet 파보기
aug - cutmix, flip, rotate,

앙상블 - 모델 성능을 가중치로 줘서 투표
stratified k-fold 할 수 있도록 데이터 나누기
backbone은 lr 낮게, 분류기는 lr 높게

pretrained 가중치 안 갖고 왔더니 성능 형편없음

profile
반가워용

0개의 댓글