Boostcamp AI Tech (Day 038)
모든 강의를 다 들었다. 그래서 kaggle에서 detection대회를 찾던 중 우리처럼 class분포가 불균형한 데이터로 열린 competition을 발견했다.
GBDT(Gradient-Boosted Decision Trees) 모델과 이미지 기반 딥러닝 모델의 앙상블을 활용한 접근법 대회에서는 3D 전신 사진에서 잘린 피부 병변 이미지를 사용하여 피부암을 분류하는 과제를 제시
솔루션 개요
우승자의 솔루션은 GBDT 모델과 이미지 모델을 결합하여 성능을 극대화
- GBDT 모델: CatBoost, LightGBM (LGBM), XGBoost 모델을 사용
- 이미지 모델: 두 가지 주요 아키텍처로 EVA02-small과 EdgeNeXt-base를 사용
앙상블 모델은 이미지와 표 형식의 데이터를 모두 사용해 피부 병변을 분석 합성 데이터 생성과 이전 대회의 데이터를 통합하여 모델 성능을 향상시킨 점
교차 검증(Cross-Validation) 전략
5-Fold Stratified Group KFold 교차 검증을 사용하여, 각 폴드에 서로 다른 그룹의 데이터가 포함되도록 하면서도 분포를 균형 있게 유지했습니다. 성능 평가를 위해 통계적 검증(예: t-test)을 사용하여 유의미한 변화가 있는지 확인 모델 성능을 개선하기 위해 여러 가지 시드를 사용해 모델을 반복적으로 훈련
GBDT 모델
GBDT 모델 중 CatBoost는 Optuna를 사용하여 하이퍼파라미터를 최적화 CatBoost, LGBM, XGBoost 모델 모두 여러 번 훈련하여 예측 값을 앙상블 각각의 모델이 가지는 약점을 보완하고 성능을 향상시키는 방법
CatBoost 주요 하이퍼파라미터:
learning_rate
: 0.026depth
: 6bagging_temperature
: 0.874l2_leaf_reg
: 18이미지 모델
EVA02-small과 EdgeNeXt-base 모델은 데이터 증강을 통해 학습됨 클래스 불균형 문제를 해결하기 위해 1:1 비율로 클래스별 샘플을 균형 있게 배치하는 방법을 사용 각 모델은 여러 가지 시드로 훈련되었으며, 5-Fold 교차 검증을 기반으로 조기 종료(early stopping)를 적용
모델 예측 통합
이미지 모델의 예측 결과를 표준화하여 GBDT 모델에 입력 특성으로 사용 성능 향상에 기여함 각 환자의 여러 병변 간의 예측 비율을 계산하여 GBDT 모델의 성능을 추가로 향상시킴
GBDT 모델과 이미지 모델의 앙상블을 기반으로, 이미지 데이터와 표 데이터 모두를 통합하여 성능을 극대화한 접근법
1. Stable Diffusion을 사용한 합성 데이터 생성 과정
- Stable Diffusion 1.5 모델을 사용하여 긍정적인 표본을 대상으로 50 epoch 동안 fine-tuning(미세 조정)을 진행했습니다. 배치 크기는 8, 해상도는 128x128이었습니다.
- 체크포인트는 40, 45, 50번째 epoch에서 저장되었습니다.
- 6,000개의 합성 이미지를 생성했으며, 두 가지 해상도(512x512, 128x128)로 이미지를 생성했습니다.
- 생성된 합성 데이터는 모델 훈련에 사용되었습니다.
2. 실제 악성 병변 사진과 합성 이미지 비교
- 첫 번째 열은 실제 악성 피부 병변 이미지입니다.
- 두 번째 열은 Derm-T2IM 모델을 기반으로 생성된 합성 이미지입니다.
- 세 번째, 네 번째 열은 512x512 및 128x128 해상도로 생성된 합성 이미지입니다. 이는 실제 이미지와 비교했을 때 품질의 차이를 보여줍니다.
3. **합성 데이터 사용 후 성능 변화
합성 데이터를 사용한 모델은 교차 검증(CV) 점수에서 일관되게 더 나은 성능을 보였지만, 최종 앙상블 모델에 합성 데이터를 사용한 모델을 포함하지 않았음
- CV, Public Score, Private Score에서 합성 데이터를 사용한 모델과 기본 모델의 성능을 비교했습니다. 합성 데이터를 사용한 모델이 CV 점수에서는 더 나은 성능을 보였지만, 최종 Private Score에서는 큰 차이가 없었습니다.
- CV 점수를 세부적으로 비교한 결과, 합성 데이터를 사용한 모델이 대체로 더 나은 성능을 보였습니다.