[TIL]KDT팀프로젝트2021/03/11
852개의 데이터셋과 약 만이천개 정도의 데이터셋에 대해 모델을 돌려보았다. 작은 데이터셋에서는 total loss가 가장 좋은게 0.01365까지 나왔고, 큰 데이터셋에서는 0.4344정도인데 팀장님이 데이터 보강하신 것으로 다시 돌려볼 예정이다. 훈련 기록과 쓰인 파라미터는 따로 정리중이다.
detectron2에서는 이미 만들어져 있는 모델을 가져와 쓰고, 파라미터를 조정해보는 것이 최선인 것 같다. 이미 만들어져 있는 모델의 성능을 향상시키기가 매우 어렵다고 한다.
만약 학습중에 floating error가 발생하면 로스를 0.000001정도로 아주아주 작게 주면 해결이 된다.(작은 데이터셋 돌릴때 그랬음)
오버피팅을 확인하는 방법들에 대해 찾아보았다.
멘토님과의 Q&A
Q: ’with_mask’, ‘without_mask’, ‘mask_weared_incorrect’에 대해서 852장의 데이터셋을 가지고 훈련을 하고 있습니다. 여기에 새로운 마스크 착용/미착용으로만 분류된 데이터셋(대충 만이천 몇장)을 추가해보려는데 성능향상에 어느정도 도움이 될지 모르겠습니다. 마스크 잘못쓴 것(Incoreect)에 대해서는 데이터 수가 너무 작고 나머지 두 카테고리의 데이터가 지나치게 많아질텐데 괜찮을까요?
A: 제 생각에는 학습을 두번에 진행하면 더 좋을 듯합니다.
먼저 많은 데이터셋에 학습을 진행하고 나서, mask_weared_incorrect 타겟이 있는 데이터셋을 진행하면 결과가 더 좋을 것 같아요.
링크로 올리신 데이터를 먼저 한차례 학습한 후에, 수가 적은 데이터셋으로 따로 2번째로 학습시키는게 좋을듯해요.
데이터셋을 합치지 말고, 2step으로 진행하면 괜찮을 수 있어요
Q: 멘토님 디텍트론 계속 돌려보다 궁금한 점이 있는데요, 이런 형식에 맞춰서 model_dir에 COCO-Detection/faster_rcnn_X_101_32x8d_FPN_3x.yaml 등등 이미 만들어진 모델을 가져와서 쓰거나 파라미터들을 조정해주는 것 외에 성능을 향상시키거나 모델을 보완할 수 있는 일이 있을까요?
A: detectron2에서는 딱히 없을것 같아요. 만들어놓은 모델 성능을 향상시키는일이 쉽지 않아요