728x90
Boostcamp AI Tech
141

[Wrap-up report] Image Classification

Problem Definition 카메라로 촬영한 사람 얼굴 이미지의 마스크 착용 여부를 판단 입력되는 이미지는 모두 정면을 바라보고 있으며 아시아인 남녀로 구성되고 20대부터 70대까지 연령층이 다양함 마스크 착용, 이상하게 착용, 미착용의 분류와 나이(젊은층, 중년층, 노년층), 성별까지 종합한 총 18개의 label를 분류하여 출력 이미지 데이터의 특성상 해당 분류 문제는 카메라를 정면을 바라봐야하고 촬영되는 사람도 카메라 화면상 중앙에 위치해야 성립 얼굴이 일부 보이는 마스크(투명한 마스크)일 경우와 사람이 얼굴이 프린트된 마스크일 경우와 같은 이미지일 경우 제대로 인식하는가에 대한 문제가 발생 EDA 데이터의 불균형 확인을 위해 feature, label별 분포확인 Normalize의 mean과..

Boostcamp AI Tech 2021.09.03

[실험 일지 작성_목] Image Classification

efficientnet_b7 실험 1. efficientnet_b7을 사용한 실험을 이어서 진행 -> lr = 5e-6, weight decay = 1e-6, train batch size = 16, valid batch size = 8을 주었고 cutmix는 중년층에 40%, 젊은층에 20%를 적용 -> 그래프를 보았을 때 안정적인 모양을 띄었지만 score가 낮게 나옴 -> lr을 너무 낮게 주어서 학습이 미약하게 진행되어서 그래프가 안정적인 모양을 띄웠다고 생각 2. lr을 수정하여 더 실험해보고 싶지만 제출 시간이 부족하여 중단

Boostcamp AI Tech 2021.09.02

[실험 일지 작성_수] Image Classification

Model 변경 1. "swin_large_patch4_window7_224" 모델을 사용하여 이전에 cutmix로 성과를 얻은 방법으로 다시 실험 -> 12 epoch 이후로 계속 valid score가 떨어지는 현상이 나타남 -> cutmix 비율을 30%에서 20%로 줄이고 다시 실험 -> wave 폭이 커지는 현상이 나타나서 중간에 중단(대회 종료까지 시간이 얼마안남았기 때문) -> 레이어의 깊이가 깊어질 수록 overfitting의 위험이 높아지기 때문에 generalization 또한 높게 주어야한다는 생각을 해서 cutmix 비율을 50%로 변경 후 재실험 -> 6epoch 이후부터 30%를 적용했을 때와 비슷한 그래프 모양을 띔 -> 10 epoch 지점의 checkpoint.pt로 inf..

Boostcamp AI Tech 2021.09.01

[실험 일지 작성_화] Image Classification

Augmentation(CutMix) 1. resnet50 - train set의 중년층 cutmix 30% 적용 - requires_grad=True -> score가 점점 떨어지면 학습이 종료됨 2. cutmix를 적용할 때 왼쪽 반 오른쪽 반을 섞는 방식으로 변경 3. 현재 마스크 쓴 것 : 잘못 쓴 것 : 안 쓴 것의 비율이 5 : 1 : 1인데 중년층의 모든 이미지에 cutmix를 적용시킨 것은 데이터 수가 부족한 "잘못 쓴 것, 안 쓴 것"에도 적용한다는 것이기 때문에 학습이 안되는(?)것이라고 생각 -> 중년층에서도 마스크를 쓴 이미지에만 cutmix를 적용 -> 기본 모델보다 f1 score가 약 0.1 상승 -> 일반화가 잘 수행되었다고 판단 Preprocessing 1. MTCNN과 c..

Boostcamp AI Tech 2021.09.01

[실험 일지 작성_월] Image Classification

Baseline Code 1. 코드를 다시 천천히 보다가 cosineanealingLR의 tmax가 weight decay로 설정되어있는 것을 확인 -> ...... Augmentation 1. transfer learning을 하면서 parameter들의 requires_grad를 모두 False하면 augmentation을 적용했을 때 성능 차이를 확인할 수 있다고 생각했지만 반대로 pre-train된 모델은 다른 데이터로 학습된 것이기 때문에 augmentation을 적용했을 때 성능을 제대로 판단 할 수가 없을 수도 있다고 생각 -> pre-train된 모델이 backpropagation이 일어날 수 있게 하고 augmentaion을 적용시켰을 때 성능이 향상될 수 도 있고 아닐 수도 있지만 반대..

Boostcamp AI Tech 2021.08.31

[주말 실험 일지_일] Image Classification

Data Imbalance 1. 데이터가 30~50세에 편향되어 있는 것을 확인 -> 특히 50세에 집중적으로 분포되어있기 때문에 55세 이상 60세 미만인 이미지를 60세로 labeling해서 균형을 맞추는 것을 생각 -> 10% ~ 50%를 10%단위로 적용 -> earlystopping의 patience 5를 적용시 학습이 일찍 끝나는 문제가 발생하여 patience 10을 적용하고 60세 비중이 높을 수록(60세로 넘기는 비율이 높을 수록) f1 score가 낮아짐 -> overfitting의 위험이 낮아졌다고 생각 CutMix 1. 토요일 resnet50을 사용하여 중년층에 50% 적용한 결과 제출 -> 기본 모델도 f1 score가 0.3 하락 -> 무언가 잘못되었다고 판단 -> train, ..

Boostcamp AI Tech 2021.08.30

[주말 실험 일지_토] Image Classification

Baseline Code 1. python 파일로 baseline이 나온 것을 기준으로 지금까지 구현한 코드를 적용 -> 같은 팀원들에게 공유하여 빠르게 실험할 수 있게 진행 2. inference 부분 코드를 수정하지 않음 -> 모델을 load할 때 error가 발생 -> model에 DataParallel을 적용하고 model.state_dict()를 save한다면 inference에도 model을 load 할 때 DataParallel을 적용하고 load_state_dict를 실행해야함 Augmentation 1. 고정된 hyperparameter(batch size, lr, epoch, loss, optimizer, lr_scheduler, earlystopping-patience)와 고정된 mo..

Boostcamp AI Tech 2021.08.30

[Boostcamp Day-19] Image Classification - Ensemble

Ensemble 싱글 모델보다 더 나은 성능을 위해 서로 다른 여러 학습 모델을 사용하는 것 Model Averaging (Voting) Cross Validation TTA(Test TIme Augmentation) 테스트 이미지를 Augmentation 후 모델 추론, 출력된 여러가지 결과를 앙상블 Trade-off 앙상블 효과는 확실히 있지만 그 만큼 학습, 추론 시간이 배로 소모됨 Hyperparameter Optimization Hyperparameter? 시스템의 메커니즘에 영향을 주는 주요한 파라미터 Optuna 파라미터 범위를 주고 그 범위 안에서 trials 만큼 시행 Experiment Toolkits & Tips Tensorboard Weight and Bias (wandb)

Boostcamp AI Tech 2021.08.27

[Boostcamp Day-18] Image Classification - Training & Inference

Training & Inference 모델 학습을 진행 -> 학습 프로세스에 필요한 요소 = Loss, Optimizer, Metric Loss loss.backward()를 실행하면 모델의 파라미터의 grad 값이 업데이트(requires_grad=False라면 업데이트가 안됨) Focal Loss Class Imbalance 문제가 있는 경우, 맞춘 확률이 높은 Class는 조금의 loss를, 맞춘 확률이 낮은 Class는 Loss를 훨씬 높게 부여 Label Smoothing Loss Class target label을 One-hot 표현으로 사용하기 보다는 조금 soft하게 표현해서 일반화 성능을 높이기 위함 Optimizer LR scheduler : 학습 시 learning rate를 동적으로..

Boostcamp AI Tech 2021.08.27

[Boostcamp Day-17] Image Classification - Model

Model model은 시스템을 표현해주고 input을 주면 class를 구분해주는 것이다. PyTorch low-level, pythonic, flexibility 1. nn.Module Pytorch 모델의 모든 레이어는 nn.Module 클래스를 따른다. 2. modules "_ init _"에서 정의한 또 다른 nn.Module 3. forward 이 모델(모듈)이 호출 되었을 떄 실행 되는 함수 4. nn.Module Family nn.Module을 상속받은 모든 클래스의 공통된 특징 -> 모든 nn.Module은 forward() 함수를 가진다. 5. Parameters 모델에 정의되어 있는 modules가 가지고 있는 계산에 쓰일 Parameter 각 모델 파라미터 들은 data, grad,..

Boostcamp AI Tech 2021.08.25
728x90