Overview

  • 정의: 기존 학습 데이터를 인위적으로 변형·추가하여 데이터 다양성을 높이는 기법
  • 목적: 일반화 성능 향상, 과적합 방지, 데이터 부족 문제 완화
  • 중요성: 증강의 강도(다양성)와 연산 비용 간 트레이드오프가 존재함

Pros

  • 모델의 일반화 성능 향상 → 다양한 데이터 분포에 적응 가능
  • 과적합(Overfitting) 완화 → 학습 데이터 암기 방지
  • 데이터 다양성 증가 → 실제 환경의 변동성에 대응
  • 소량 데이터 상황에서도 효과적

Cons

  • 연산량 증가 → 학습 속도 저하
  • CPU 병목(I/O Bottleneck) → CPU에서 증강 후 GPU로 전송 시 지연 발생
  • 클래스 경계 모호화(Class Boundary Confusion)
    • 과도한 변형이 클래스 간 특징을 흐림
      • 예: 색상 증강 → 유사 색상 과일(바나나-파파야, 오렌지-당근) 오인식
      • 예: 회전 증강 → 숫자 9를 6으로 인식
  • 클래스 분포 중첩(Distribution Overlap)
    • 강한 증강이 서로 다른 클래스의 데이터 분포를 겹치게 만들어 분류 혼동 유발
  • 클래스 단위 성능 저하 가능성

Computational Perspective

  • 증강 연산이 CPU에서 수행되면 GPU로 데이터를 제때 전달하지 못해 병목 발생
  • GPU 기반 증강을 사용하면 연산을 병렬화하여 속도 개선 가능
ToolFramework비고
torchvision.transforms.v2PyTorchGPU 텐서 기반 변환 지원
NVIDIA DALIPyTorch / TF고성능 데이터 파이프라인
KorniaPyTorchGPU에서 실행되는 differentiable CV 라이브러리
tf.image / Keras LayersTensorFlowGPU 내장 증강 기능 제공

Trade-off Summary

관점증강 강도 증가 시장점단점조건
일반화 성능초기 향상 → 과도 시 저하다양한 데이터 학습클래스 경계 모호화데이터셋 크기 고려
연산 효율성CPU 병목 심화-처리 속도 감소GPU 증강으로 완화
데이터 품질불안정다양성 증가레이블 안전성 위반도메인 지식 필요

적절한 증강 강도와 빈도가 성능과 효율의 균형을 결정함


Design Guidelines

  • 증강 강도와 확률을 점진적으로 조정할 것
  • 데이터셋 특성(자연 이미지, 숫자, 의료영상 등)에 맞는 증강 조합 선택
  • 클래스 불균형 고려: 소수 클래스는 보수적 증강, 다수 클래스는 적극적 증강
  • GPU 병목 최소화 → DALI, Kornia 등 GPU 기반 도구 사용
  • 증강과 학습 병렬화로 전체 처리 시간 단축
  • 검증 전략: 증강 적용 전후 validation set에서 모니터링
    • 평균 정확도 (average accuracy) + 클래스별 정확도 (per-class accuracy)
    • 모호한/세밀한 클래스 성능 특별 관찰
    • F1-score, macro-average 등 불균형 이슈 반영 메트릭 사용
  • 자동 증강 기법 고려: AutoAugment, RandAugment로 수동 튜닝 비용 절감