[Boostcamp AI Tech] [P-stage] 12주차 Day 1 학습 기록

bluegun·2021년 10월 18일
0

AI Tech 2기 활동

목록 보기
51/87

재활용 쓰레기 Segmentation 대회가 시작되었다!
대회 하자마자 대회라 그냥 자연스러운 느낌인 것 같다.
이번 대회는 지난 Detection 대회의 경험을 살려, 최대한 다양한 모델을 활용하여 많은 실험을 돌려보고, 대회 score를 높여보는 경험을 제대로 해보고 싶다. 가능하면 스페셜 미션으로 제공되는 다양한 모델 구현 과제도 해결해 보고 싶다.

대회 진행 상황

대회 서버에 제공받은 FCN baseline 코드가 굉장히 상세하게 잘 되어있어(EDA부터 Dataset, model, train, vadlidation, 그리고 중간중간마다 prediction을 visualization까지 해주셨다..) 이를 보고 전체 과정을 이해하는 데 시간을 할애하였다.
팀원께서 MMsegmentation을 활용할 수 없는 지 조사해 보셨지만, Coco dataset을 사용하지 않아 활용할 수 없다고 알려주셨다.

baseline 코드를 그대로 돌려 제출해본 결과, 0.450 정도의 score를 얻었다.

최대한 학습을 많이 해보기 위해, 기존 baseline에서 model만 바꿔 학습을 진행해보기로 하였고, 그 중 EfficientUNet을 사용해보기로 결정하였다.

EfficientUNet을 설치하여 EfficientUNet-b5 모델로 돌려보았으나(b7을 쓰려했지만 CUDA out of memory가 발생) 모델 학습이 제대로 되지 않았다.
기존 baseline 코드는 학습할수록 mIoU가 상승하여 validation set에 대해 mIoU 0.5정도의 성능까지 올렸지만, EfficientUNet은 처음 상태인 0.2 정도에서 더 이상 올라가지 않았다.
각 class별 IoU를 분석한 결과, background나 plastic bag에 대해선 비교적 높은 score를 기록했지만, 그 외의 class는 거의 0에 가까운 예측율을 보였다. 이를 보고 학습이 잘 되지 않은 것은 데이터 비중이 높은 plastic bag나 background만 집중적으로 예측하도록 학습되었기 때문이고, 이렇게 된 원인은 efficientUNet-b5 모델이 너무 커서 그렇거나, 모델 구조의 문제가 있거나, 내가 모델을 설정할 때 설정을 잘못 한 경우 중 하나일 것이라 생각한다.
우선 efficientUNet-b2 정도의 적은 parameter의 모델을 사용해보고, 그래도 학습이 잘 안될 경우 모델의 문제일 가능성을 생각해 efficientUNet의 내부 구조를 분석해봐야 할 것 같다.

실제로 특정 class에 대해서만 학습하는 모델을 보고 분석하게 되어 만족스럽다.

0개의 댓글