월간 데이콘 Computer Vision 이상치 탐지 알고리즘 경진대회

알고리즘 | CV | 분류 | 이상탐지 | Macro f1 score

  • moneyIcon 상금 : 100만원 + ɑ
  • 1,372명 마감

 

[Private 3rd, 0.90494] EfficientNet with Post-processing

공동작성자

stroke
2022.05.18 17:34 2,426 조회 language

- efficientnet-b1,b2를 이용하여 학습을 진행했습니다.
- arcface loss, mixup 등 시도에서 별다른 성능 향상을 가져오지는 않았습니다.
- 다른 팀들과는 다르게 efficientnet-b6,b7에 대해서 성능이 좋지 않아서 사용하지 않았습니다.
- 따라서, 기존에 학습했던 모델들을 이용해서 앙상블 및 후처리에 대하여 고민을 했습니다.
- 첫번째로 클래스 불균형으로 인한 good의 과한 예측을 피하고자 하였습니다.
    1. 기본적으로 good인 이미지들은 어떠한 기하학적 변형을 해도 매우 확실하게 good이라고 예측할거라 가정했습니다.
    2. 너무 과하게 good으로 예측하는 경우를 조금이라도 완화시키고자 각 모델들 output에 softmax를 취한 후 앙상블했습니다.
    3. 비정상의 경우를 bad로 통일한 후 모델을 학습한 결과를 이용하여 후처리를 진행했습니다.
- 두번째로 위의 결과를 이용해도 헷갈려하는 클래스들(pill, zipper, toothbrush, transistor, capsule)에 대해 추가 학습을 진행했습니다.
    1. 한 개의 클래스에 대해서만 학습을 한 후 하드보팅 또는 단일 모델의 결과를 가지고 후처리를 진행했습니다. 

https://github.com/alswlsghd320/dacon-anomaly

코드
로그인이 필요합니다
0 / 1000
성은황
2022.05.22 10:48

코드 공유 감사합니다. 혹시 단일 모델 예측 같은 경우에는 이진분류로 toothbrush과 toothbrush이 아닌 나머지 클래스들에 대해서 학습을 하셨나요??

내가누구게
2022.05.22 21:43

안녕하세요. train_df.csv에서 toothbrush-good과 toothbrush-defective 만 추출하여 학습을 진행하였고 inferece 시에는 원래 88개의 레이블에 대해 학습한 모델이 toothbrush라고 예측한 것에 대해서만 inference를 진행했습니다. (88개 레이블 학습한 모델이 클래스(ex. toothbrush, screw)는 절대 틀리지 않았을 것이라고 가정하고 진행했습니다.)

ZZY
2022.05.23 02:57

보통 상위권 분들은 커다란 모델을 쓰시는 편이라서 한정된 gpu자원으로는 따라하는 것 조차 버거웠는데, 내가누구게님 덕분에 처음으로 제대로 따라해볼 수 있던 것 같습니다. 정말 많은 걸 배워감에 감사드립니다. 혹시 이렇게 모델이 헷갈려하는 label 위주로 2중 3중으로 학습하는 기법을 통틀어 일컫는 용어 같은 것이 있을까요?

내가누구게
2022.05.26 04:35

오히려 저희가 감사합니다 ㅎㅎㅎ
질문하신 내용은 저희도 특정 용어가 존재하는지는 모르겠어서 단순히 앙상블+후처리를 진행했다고만 적었습니다.