콘텐츠로 이동

데이터 증강 (Data Augmentation)

핵심 요약: 데이터가 부족할 때 기존 데이터를 변형하여 늘리는 기법이다. “고양이 사진 1장 → 회전/반전/밝기 조절 → 8장.” 단, 도메인을 모르고 무작정 변형하면 오히려 해가 된다.

  • 데이터 증강(Data Augmentation): 기존 데이터에 회전, 반전, 노이즈 추가 등의 변환을 적용하여 학습 데이터를 인위적으로 늘리는 기법.
  • Mixup: 두 이미지를 일정 비율로 섞어 새로운 학습 샘플을 만드는 기법. 고양이 70% + 개 30% = 라벨도 [0.7, 0.3]으로 혼합.
  • TTA(Test-Time Augmentation): 추론 시에도 입력을 여러 번 변형하여 예측을 평균 내는 기법. 정확도가 소폭 향상된다.
  • 과적합(Overfitting): 학습 데이터에 너무 맞춰져 새로운 데이터에 일반화하지 못하는 현상. 데이터 증강은 이를 줄이는 데 효과적이다.

상황: 개/고양이 분류, 원본 학습 이미지 500장.

전략실질 학습 데이터검증 정확도
원본만 사용500장78%
회전 + 반전 + 크롭~4,000장87%
+ 색상/밝기 변환~8,000장90%
+ Mixup/CutMix~8,000장 + 혼합92%

원본 500장에서 증강만으로 정확도 14%p 향상. 핵심은 새로운 정보를 추가하는 게 아니라, 모델이 위치/색상/방향에 불변하도록 학습시키는 것이다.

데이터 증강(Data Augmentation)은 기존 데이터에 변환을 적용하여 학습 데이터의 양과 다양성을 인위적으로 늘리는 기법이다. 데이터 수집이 비용이 크거나 어려운 상황에서 과적합을 줄이고 모델의 일반화 성능을 향상시키는 데 핵심적인 역할을 한다. 특히 이미지 분류에서는 사실상 필수 기법이며, 텍스트, 오디오, 정형 데이터 등에도 다양한 기법이 존재한다.


데이터 증강의 중요성이 현대 딥러닝에서 각인된 결정적 계기는 AlexNet(2012)이다. Krizhevsky et al.은 ImageNet 대회에서 CNN을 활용해 압도적 성능을 달성했는데, 이 성공의 숨겨진 핵심 요인 중 하나가 랜덤 크롭, 수평 뒤집기, PCA 기반 색상 변환 등의 기본 증강 기법이었다. 증강 없이는 120만 장의 학습 데이터로도 과적합이 심각했다.

이후 데이터 증강은 급속히 발전했다. 2017년 Zhang et al.이 제안한 Mixup은 두 샘플을 선형 보간하여 결정 경계를 부드럽게 만드는 혁신적 아이디어를 선보였다. 2019년 Yun et al.의 CutMix는 이미지의 일부를 다른 이미지로 대체하면서 라벨도 면적 비율로 혼합하는 방식으로 Mixup을 한 단계 발전시켰다. Google Brain의 AutoAugment(2018)는 강화학습으로 최적의 증강 정책을 자동 탐색했고, 이를 간소화한 RandAugment(2020)는 실무에서 널리 채택되었다. 현재 데이터 증강은 이미지뿐 아니라 텍스트(Back Translation), 오디오(SpecAugment), 정형 데이터(SMOTE) 등 거의 모든 도메인으로 확장되었다.


범주기법설명
기하학적 변환회전, 뒤집기, 크롭, 확대/축소, 이동위치/방향에 불변하도록 학습
색상 변환밝기, 대비, 채도, 색조 변경조명 조건 변화에 강건
노이즈가우시안 노이즈, 블러이미지 품질 변화에 강건
마스킹Random Erasing, Cutout, GridMask부분 가려짐에 강건

주요 라이브러리:

  • Albumentations: 빠르고 다양한 증강 제공, 파이프라인 구성 용이
  • torchvision.transforms: PyTorch 내장, 기본적 증강
기법설명주의점
동의어 치환WordNet 또는 임베딩 기반 유사어로 대체의미 변질 주의
역번역 (Back Translation)한국어 → 영어 → 한국어자연스러운 패러프레이즈
Random Insertion/Deletion/SwapEDA 기법과도한 변형 주의
LLM 기반 증강GPT로 paraphrase 생성품질 높지만 비용

두 샘플을 선형 보간하여 새 샘플을 생성한다:

x~=λxi+(1λ)xj\tilde{x} = \lambda x_i + (1-\lambda) x_j y~=λyi+(1λ)yj\tilde{y} = \lambda y_i + (1-\lambda) y_j λBeta(α,α)\lambda \sim \text{Beta}(\alpha, \alpha)

직관: 결정 경계를 부드럽게 만들어 과적합을 줄인다.

이미지의 일부 영역을 다른 이미지로 대체하고, 라벨도 면적 비율에 맞게 혼합한다.

y~=λyA+(1λ)yB,λ=1wrhrWH\tilde{y} = \lambda y_A + (1-\lambda) y_B, \quad \lambda = 1 - \frac{w_r \cdot h_r}{W \cdot H}

이미지의 일부를 0(또는 랜덤 색)으로 마스킹한다. Random Erasing과 유사하다.

입력 대신 중간 은닉층에서 mixup을 적용한다. 더 깊은 수준의 표현 공간에서 결정 경계를 부드럽게 한다.

Mixup 계열 비교:

기법적용 위치영역라벨 혼합
Mixup입력전체 이미지비율 혼합
CutMix입력부분 영역면적 비율
Cutout입력부분 영역 (마스킹)원본 유지
Manifold Mixup은닉층전체 표현비율 혼합

오디오:

  • SpecAugment: 시간/주파수 축 마스킹 (ASR에서 표준)
  • 시간 신축 (time stretching)
  • 피치 변환 (pitch shift)

정형 데이터:

  • SMOTE (증강과 오버샘플링의 경계)
  • Feature noise injection: 소량의 노이즈 추가
  • Mixup for tabular data

추론 시 입력에 여러 증강을 적용하고, 각 증강 버전의 예측을 평균(또는 다수결)한다.

Test-Time Augmentation (TTA) 다이어그램

  • 추론 시간이 증강 수만큼 증가하지만, 성능 향상을 얻을 수 있다 (보통 0.5~2% 정도)
  • 대회에서 자주 사용되며, 프로덕션에서는 지연 시간 제약을 고려해야 한다
  1. 도메인 지식 기반: 숫자 인식에서 180도 회전은 6과 9를 혼동시킨다. 의료 영상에서 좌우 반전은 장기 위치를 바꾼다.

  2. 점진적 강도 증가: 약한 증강으로 시작하여, 모델이 수렴하지 않을 때 강도를 높인다.

  3. AutoAugment / RandAugment: 증강 정책을 자동으로 탐색하거나, 랜덤하게 조합한다. 수동 설계보다 우수한 경우가 많다.


상황추천 증강효과
이미지 분류 (데이터 부족)기하학적 + 색상 + Cutout매우 높음
이미지 분류 (데이터 충분)Mixup, CutMix정규화 효과
텍스트 분류 (데이터 부족)역번역, 동의어 치환중간~높음
음성 인식SpecAugment매우 높음
객체 탐지Mosaic, Mixup, 기하학적높음
정형 데이터SMOTE, Noise injection제한적
최종 추론 정확도 향상TTA중간

의료 영상: 180도 회전 증강이 진단을 오염시킨 사례

섹션 제목: “의료 영상: 180도 회전 증강이 진단을 오염시킨 사례”

한 의료 AI 팀이 흉부 X-ray에서 심장 비대(cardiomegaly)를 진단하는 모델을 개발하면서, 이미지 데이터 부족 문제를 해결하기 위해 일반적인 이미지 증강 파이프라인을 그대로 적용했다. 여기에는 90도/180도 회전, 좌우 반전 등이 포함되어 있었다. 학습 정확도는 높았지만, 외부 병원 데이터로 검증했을 때 성능이 크게 하락했다:

  • 좌우 반전(horizontal flip): 심장은 정상적으로 흉부 좌측에 위치한다. 좌우 반전된 이미지에서는 심장이 우측에 위치하게 되어, 모델이 우심증(dextrocardia)이라는 희귀 질환의 패턴을 정상으로 학습하게 되었다
  • 180도 회전: 흉부 X-ray의 상하가 뒤집히면 해부학적 구조가 완전히 달라져, 모델이 비현실적인 패턴을 학습했다
  • 올바른 증강: 밝기/대비 조절, 작은 각도 회전(5~15도), 약간의 확대/축소 등 해부학적 타당성을 유지하는 증강만 적용했을 때 외부 검증 성능이 크게 개선되었다

이 사례는 도메인 지식 없는 증강이 오히려 모델을 오염시킬 수 있다는 점을 강조한다. 증강 기법을 선택할 때는 항상 “이 변환을 적용한 결과가 실제 세계에서 발생할 수 있는 상황인가?”를 자문해야 한다.


  1. 과도한 증강: 너무 강한 증강은 원래 데이터의 학습 신호를 훼손한다. 모델이 수렴하지 못하거나 성능이 오히려 하락할 수 있다.

  2. 도메인 부적합 증강: 위성 사진에서 상하 반전은 유효하지만, 필기체 인식에서는 문제가 된다. 도메인 지식이 증강 설계의 기반이 되어야 한다.

  3. 테스트 데이터에 증강 적용 (학습 시): 증강은 학습 데이터에만 적용한다. 테스트/검증 세트는 원본 데이터로 평가해야 한다. (TTA는 추론 시 별도의 전략)

  4. 증강이 데이터 수집을 대체한다: 증강은 다양성을 높이지만, 근본적으로 새로운 정보를 추가하지는 않는다. 더 많은 실제 데이터가 항상 더 낫다.

  5. 데이터 누수: 같은 원본 이미지의 증강 결과가 학습과 검증에 모두 포함되면 성능이 과대 추정된다. 분할 후에 증강을 적용해야 한다.