1. 문제 요약 및 전체 개요
- 문제 맥락
- 문서 이미지 데이터셋에 대해 17개 클래스로 분류를 해야 함.
- 학습(Train) 세트는 상대적으로 작고, 테스트(Test) 세트는 레이블이 없으며,현업 환경을 모사하기 위해 다양한 노이즈(augmentation 등)가 추가된 대규모 데이터로 구성됨.
- 각 클래스 간 데이터 불균형(imbalance) 문제가 존재.
- 특정 클래스들 간의 유사도가 높아 잘못 분류되는 혼동(Class confusion) 문제가 발생.
- 평가 지표: 특히 macro F1 점수를 최대화해야 함.
- 주요 이슈
- 테스트 세트 레이블 부재: 직접적인 지도학습 기반 평가 및 모델 선택이 어려움.
- 데이터 불균형: 소수 클래스에 대한 학습이 충분치 않아, macro F1에서 손해가 클 수 있음.
- 클래스 간 유사도: 비슷한 클래스끼리 오분류가 발생, 특히 macro F1 지표에서 과소평가.
- 노이즈 및 도메인 차이: 테스트 세트에 추가된 노이즈나 도메인 스펙트럼 확장으로 인해, 훈련 세트 분포와 실제 예측 환경(테스트 세트)의 분포가 달라질 가능성.
2. 해결 접근의 우선순위
아래는 문제 특성에 비추어 고려해볼 만한 접근 순서입니다.
A. 데이터 분석 및 사전처리
- 클래스별 분포 재확인
- 혹시 놓친 클래스별 데이터 수량/품질 문제가 있는지, 파악할 필요가 있음.
- 불균형이 특히 심한 클래스는 따로 분류 기준(레이블의 정확도, 대표 샘플, 이미지 품질 등)을 살펴보면 좋음.
- 유사 클래스 특성 파악
- 혼동이 잦은 클래스들에 대해, 실제 데이터 시각화(예: 히트맵, 샘플 이미지 확인)를 통해 어떻게 다른지/비슷한지 구체적으로 분석.
- 필요하다면 유사 클래스들을 서브그룹으로 묶어서 특징을 더 명확하게 구분하는 추가 정보나 전처리 방안 모색.
B. 모델링 및 불균형 대응
- 가중치 조정(Weighted Loss) 또는 Focal Loss
- 클래스별 비율에 따라 가중치를 다르게 두는 Weighted Cross-Entropy 혹은
- 소수 클래스를 강조해주는 Focal Loss(참고: 1) 등
- macro F1 극대화를 위해 적절한 손실함수 활용 필요.
- 샘플링 기법
- Oversampling(예: SMOTE, Adasyn) 또는 언더샘플링을 통해 클래스 분포 맞추기.
- 단, 문서 이미지는 보통 텍스처나 글자 등이 중요하기에, 무작정 oversampling보다는 실제 의미가 왜곡되지 않는 방향으로(이미지 증강 기법과 함께) 진행하는 것이 중요.
- 메타데이터나 사전 정보 활용
- 만약 문서 형태(예: 폼 문서 vs. 영수증 vs. 계약서 등)나 레이아웃 정보가 있다면, 함께 활용하여 클래스 구분을 더 명확히 할 수 있는지 검토.
C. 도메인 적응 및 반지도 학습
- ~~Pseudo-labeling(반지도학습)~~
레이블이 없는 테스트 세트(또는 별도의 대규모 이미지)에 대해, 현재 모델로 일단 예측 레이블을 부여하고, 신뢰도 높은 샘플부터 재학습에 활용하는 방법.
데이터 품질을 높이려면, 예측 확률 스코어가 매우 높은 샘플부터 선별해서 사용.
- 도메인 어댑테이션(Adaptation)
- 노이즈가 많은 테스트 세트 분포와 기존 학습 세트를 맞춰주는 기법(예: MMD, DANN 등) 고려.
- 문서 이미지에 특화된 noise augmentation 등을 학습 단계에서 일부 적용해두면, 도메인 차이를 줄이는 데 도움.
D. 유사 클래스 분류 정밀화
- 앙상블(Ensemble) 접근
- CNN, Transformer 기반 모델, 혹은 두 가지 다른 아키텍처를 앙상블하여, 특히 비슷한 클래스들에 대한 오분류를 줄일 수 있음.
- 최종 예측 시 다수결 혹은 가중평균으로 결정.
- 두 단계 분류
- (1) 먼저 17개 클래스 중 유사 클래스들을 하나의 묶음으로 분류,
- (2) 이후 해당 서브그룹 내에서 더 세밀한 특성 추출로 파인튜닝 분류(혹은 다른 모델) 진행.