"Imperfect dataset 문제 해결"
"접근방법과 해결 과정"
AI 모델링 능력을 키우기 위해 실시간 랭킹보드에 딥러닝 모델을 올리며 순위를 경쟁하는 NAVER AI RUSH 2020에 참가했습니다. 2라운드 네이버 쇼핑 리뷰이미지 자동분류 부문에 도전하며 Imperfect dataset 문제를 처음 경험했습니다.
주어진 데이터셋에 불균형라벨과 노이즈가 섞여 있지만, 데이터에 직접 접근할 수 없는 형태로 주어졌기 때문에 알고리즘적으로만 접근 가능했습니다. 이를 해결하기 위해 Imbalance dataset, Noise robustness에 대한 논문과 Bag of tricks 자료 등을 모으고 쉽게 사용할 수 있는 기술부터 단계적으로 적용해나갔습니다.
불균형으로 인해 부족한 데이터셋 비율을 Oversampling을 이용한 Augmentation data로 채우고, Label smoothing loss 계산으로 노이즈 데이터 일반화를 억제했습니다. 해당 기법을 적용했을 때 최초 F1-score 0.46에서 0.67까지 상승하는 결과를 확인했습니다. 하지만 그 이후 여러 파라미터 튜닝을 거쳤지만 더는 성능이 좋아지지 않아 난관에 부딪혔습니다.
그러던 중 Self-training을 이용하여 일정 Confidence score를 넘는 데이터만 Pseudo labeling 하는 노이즈 정제 방법을 적용하기로 계획했습니다. F1-score 0.67의 모델을 Teacher 모델로 삼아 정제한 데이터셋으로 더 나은 Student 모델을 생성하고, 생성된 Student 모델을 다시 Teacher로 삼아 데이터를 정제시키는 순환 구조를 반복했습니다. F1-score를 0.81까지 상승하는 효과를 얻을 수 있었습니다. 이후 정제된 데이터 라벨을 이용하여 여러 네트워크 구조의 모델을 학습하고 Ensemble로 성능을 끌어올려 F1-score 0.879의 최종 모델을 만들었습니다.
"결과"
대회에서 2위를 차지했습니다. 진심으로 즐기며 몰두했기 때문에 문제를 해결하고 높은 순위까지 도달할 수 있었다는 생각이 들었습니다. 원인 분석과 체계적인 구현을 통해 Imperfect dataset 문제를 해결하는 접근법을 배웠고 Image classification의 기본지식을 충실히 익히며 한 층 더 성장하는 값진 경험이 됐습니다.
"아쉬운 점"
대회가 끝난 후, 모델 성능 향상에 관한 자료나 세미나를 찾아보며 K-fold 교차검증, Image mixup augmentation 그리고 작은 배치사이즈가 Flat 한 모양으로 학습되기 때문에 Generalization에서 더 유리하다는 점 등을 알게 됐습니다. 쉽게 적용할 수 있는 간단한 기법이지만 대회 당시에 적용하지 못한 것이 아쉬움으로 남았습니다. 만약 유사한 대회에 또 나가게 된다면 1등을 목표로 더욱 성장한 실력을 드러내야겠다고 결심했습니다.아쉬운점 1
아쉬운점 1 내용은 잘 작성했습니다. 질문에서 요구하는 대로 내용을 잘 요약해서 썼습니다. 아쉬운 점은 이 경험 역시, AI관련 경험이라는 것입니다. 지원자는 응용 소프트웨어 개발자로 지원하고 있고 자신이 백엔드 개발에 가장 자신 있다고 말했는데, 본 자기소개서에 개발과 관련한 내용이 거의 없다는 점이 아쉽습니다.