주최
데이콘, 크라우드웍스, 피씨엔
대회 개요
- 국내 인공지능 기반 Large-Scale 이미지 분류 알고리즘 개발 저변 확대 모색
- 고성능 딥러닝 알고리즘의 확보를 통한 개발기간의 단축과 개발비용 감소
- 불균형 데이터셋을 해결하기 위한 집단지성 활용
개발 목표
대용량 이미지에서 랜드마크 이미지를 분류하는 인공지능 알고리즘 개발
분야
컴퓨터 비전 | 이미지 분류 | GAP
링크
dacon.io/competitions/official/235585/overview/prize#prize-info
후기
이 대회는 정말 무지막지한 리소스가 필요했던 것으로 기억이 난다. 당시에 2080ti라는 좋은 리소스를 가지고 있었음에도 불구하고 2~3일을 학습해야만 어느정도 결과를 볼 수 있었었다.(물론 대회하면서 회사 업무를 병행하는 것이 쉽지도 않았다.)
랜드마크 분류대회는 Computer Vision분야에 몸을 담고 있거나, Kaggle을 좀 해보신 분이라면 다들 알고 계실거라 생각한다. Kaggle에서 매년 진행하는 대회이기 때문이기도 하고 크고 많은 이미지를 학습해야 할 때 참고할만한 code와 discussion이 많기 때문이다.
이 대회를 참가했던 이유는 간단하다.
1. 2080ti 구매
2. 늘 kaggle landmark clf 대회 참가하고 싶었다.
3. 데이콘대회에 캐글 수상자 솔루션을 적용 시킨다면 어떨까? 라는 생각이 들었다.
위 2가지 이유 때문인데 사실 2번이 1번에 종속되어 있다. 로컬gpu가 없었기 때문에 2번을 하지 못했었다. 물론 코랩을 사용해서 할 수도 있긴 하겠지만, 코랩 프로를 써본 사람으로써 중간에 자꾸 끊기는 것도 짜증이 났었고 24시간 제한 시간도 불편했었다.(그럼에도 불구하고 코랩을 이용해서 딥러닝 하시는 분들은 리스펙합니다)
이 대회를 처음으로 pytorch-lighting을 사용해봤는데, multi-gpu를 사용하시는 분들에게 유용할 것 같다는 생각이 들었는데 gpu할당이 쉬웠기 때문이다. 나중에 2개 이상의 gpu를 사용하시는 분들이라면 pytorch-lighting을 추천한다.
참고로 데이콘의 랜드마크 대회와 캐글의 랜드마크 대회는 성격이 꽤 다르므로 참고하길 바란다.(캐글의 경우 라벨이 없는 데이터도 있었기 때문에, 이를 극복하려는 trial and error가 많이 있었던 것으로 안다. 나의 경우에는 이러한 부분을 제거하고 모델 아키텍처, 학습/검정 방법, 앙상블 기법 등을 많이 사용했다.
솔루션
늘 그렇듯이 베이스라인 모델을 먼저 구축하고 다양한 실험을 하는 것으로 목표를 세웠다.
단, 이번에는 캐글 솔루션을 이해해야 했기 때문에 이 부분에서 상당한 시간이 소요되었다. 대회를 참가했었도 아니여서 대회 자체에 대한 이해도도 낮았었고 이는 늘 "why?"라는 의문부호가 따라다녔다.
데이터가 매우 많았고 large image 특성 상 256x256으로 resize을 한 뒤 학습을 하여도 gradient exploding현상이 발생하였다. 이 현상에 대한 원인을 정확히 진단을 하진 못하였지만 조사해본 결과 high lr, large scale image 등이 있었다. 최대한 방지하기 위해서 batch size와 start lr을 컨트롤 했었다.
'CV Strategy'
Multi-Stratified KFold를 이용하여 각 랜드마크 클래스당 추출하여 진행했다.
아쉬운 점은 5fold를 하지 못한점이다.(학습이 느렸기 때문에)
'Model'
Efficientnet b1~b3를 사용하였다. (앙상블)
'Model Architecture'
차후에 마저 작성
'Augmentation'
이 대회의 핵심은 이미지 사이즈였다. 후에 상위권에 들은 팀에게 들은 이야기인데 이미지 사이즈를 크게 해서 학습을 한 후 낮은 lr로 깊은 학습을 진행했다고 했다. 점수차이가 오밀조밀했기 때문에 이러한 테크닉이 유효했던 것 같다.
'Learning Technique'
차후에 마저 작성
'Ensemble'
simple average ensemble을 하였다.(b1~b3)
최종 결과
8/436
결과는 생각보다 아쉬웠지만 그래도 만족한다.
내가 가진 리소스를 최대한 활용했다고 생각하기 때문에...
참고
solution github
github.com/hyeonho1028/landmark-classification
kaggle solution
https://www.kaggle.com/c/landmark-recognition-2020/discussion/187821
https://www.kaggle.com/c/landmark-recognition-2020/discussion/190983
'Competition > 기타 대회' 카테고리의 다른 글
Sleep AI Challenge SNUH 참여 후기 - First Place(1등) (0) | 2021.04.20 |
---|