BoostCamp Pstage day4

Dae Hee Lee·2021년 8월 26일
0

BoostCamp Pstage

목록 보기
8/9

pretrained vit를 사용했지만 성능 개선이 거의 이뤄지지 않았다. 어떠한 문제로 학습이 되지 않는지에 대해 알아볼 필요가 있으며, 이제 팀이 병합되기 때문에 그 전에 ResNet을 활용한 모델을 사용하겠다.

ResNet101e pretrained모델을 사용했으며 오히려 성능이 오버피팅이 일어날 정도였다. 오버피팅 문제를 해결하는 것이 좋아보인다.

현재 f1-score는 0.621이다.
img size를 224로 한 결과 batchsize 20 기준으로 1 epoch당 3분30초 정도 소요되었다.

해볼 것

  • 성능 개선
    0. img size 384로
  1. mismatch 데이터 바꿔주기
    - 같은 사람 중 마스크 종류가 안맞는 경우
    - 성별이 맞지 않는 경우
    2. Gradient Accumulation
    - loss 업데이트를 Num_accum마다 시행하기
  2. Focal Loss
  3. EarlyStopping과 k-fold-Validation?
    • train-validation 나눌 때 클래스 감안해서 나누기 (stratified)
  • 생산성 개선
    1. validation에 f1 score도 보이게
  1. wandb chart로 나오게
    3. wandb chart 이름 지정~~
    4. tensorboard하기

resnet_2에서 고친 것
1.f1 score
2.chart 보이게
3.chart 이름 지정
4.사이즈 384로
5.labeling 오류 마스크만

  • 000020, 004418, 005227

img size를 키워서 역시 학습 속도는 같은 조건에서 epoch당 8분 정도 소요된다.
15 epoch 돌리는데 2시간이 소요되는 속도다.

15 Epoch를 돌렸으나 결과는 처참했다. 아마 validation데이터셋을 나누는데 있어서 startified하게 나누지 못했기도 했고, overfitting이 일어났을 것이라 생각한다.

다음 학습은 어떤 식으로 진행할지 생각해봐야겠다.

  1. Earlystopping과 stratified fold 진행
  2. 이미지 사이즈, batch size

스케쥴러를 활용한 모델이었다. 11 epoch, 20batch였다.

의 성능이 나왔다.

scheduler = ReduceLROnPlateau(optimizer, 'max')

stratified k - fold를 활용하였으며
5split, 5epoch만큼 돌렸다. 위의 결과보다 소폭 상승한 모습이다.

epoch 수를 늘려서 다시 split을 해볼 생각이다. Earlystopping을 걸어놓아 Overfitting이 되지 않도록 할 것이다. 또한 scheduler를 앞서 설정해놓은 것처럼 활용할 예정이다. COunter와 best acc를 fold 내에서 설정해주었다.

위의 모델을 학습하고 난 후에는 위의 scheduler를 활용한 모델을 불러와 다시 stratified k fold를 시행할 예정이다.

profile
Today is the day

0개의 댓글