CertNote/ 출퇴근 학습 노트
로드맵
KOEN
CLF-C02 · FoundationalCloud Practitioner - Foundational
DVA-C02 · AssociateDeveloper - Associate
SAA-C03 · AssociateSolutions Architect - Associate
SOA-C02 · AssociateCloudOps Engineer - Associate
SAP-C02 · ProfessionalSolutions Architect - Professional
DOP-C02 · ProfessionalDevOps Engineer - Professional
SCS-C03 · SpecialtySecurity - Specialty
MLA-C01 · AssociateMachine Learning Engineer - Associate
AIF-C01 · FoundationalAI Practitioner - Foundational
DEA-C01 · AssociateData Engineer - Associate
MLS-C01 · SpecialtyMachine Learning - Specialty
  • Week 1
    • 1.ML 수명주기(ML Lifecycle): 비즈니스 문제 정의부터 A/B 테스트까지
    • 2.ML용 데이터 저장소: S3·EFS·FSx for Lustre·데이터 포맷
    • 3.데이터 수집: Kinesis·Glue·배치 vs 스트리밍
    • 4.데이터 레이블링: SageMaker Ground Truth·액티브 러닝(Active Learning)·레이블 품질
    • 5.1주차 종합 복습: ML 개요와 데이터 엔지니어링 1
  • Week 2
    • 1.데이터 변환과 ETL: AWS Glue, Spark, 그리고 EMR
    • 2.학습 데이터 파이프라인 자동화: Step Functions와 SageMaker Pipelines
    • 3.데이터 증강과 합성: 부족한 데이터·불균형 데이터 대응
    • 4.학습 데이터 저장·접근 최적화: Pipe 모드 vs File 모드·FSx for Lustre·분산 학습
    • 5.2주차 종합 복습: 데이터 변환부터 분산 학습 데이터 공급까지
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← MLS-C01/Week 2/Day 3

기준: MLS-C01 시험 가이드·오류 제보

MLS-C01· AssociateWeek 2 · Day 3읽기 약 11분
핵심 정리
  • 증강(augmentation) = 기존 데이터를 변형해 다양화. 대원칙은 "레이블이 바뀌지 않는 변형만".
  • 합성(synthesis) = 없던 데이터를 새로 생성(GAN, 시뮬레이션, 합성 정형 데이터). 프라이버시·희소 데이터 대응.
  • 합성 데이터의 최대 위험은 분포 갭(distribution gap). 보완용으로 쓰고 검증은 반드시 실데이터로.
  • 불균형 대응은 3층 — 데이터 층(오버/언더샘플링, SMOTE), 알고리즘 층(클래스 가중치, 임계값), 평가 층(accuracy 금지, recall·F1·PR-AUC).
  • SMOTE는 단순 복제와 다르다. 소수 샘플과 최근접 이웃 사이를 보간해 새 점을 만든다.

Day 3 - 데이터 증강과 합성: 부족한 데이터·불균형 데이터 대응

왜 이 문제가 생기나

좋은 모델을 만들려면 충분하고 균형 잡힌 데이터가 필요하지만 현실은 다르다. 희귀 질환 진단 데이터는 양성 표본이 극히 적고, 사기 거래는 전체의 0.1%이며, 어떤 이미지 클래스는 몇 장뿐이다. 그대로 두면 모델은 다수 클래스만 잘 맞히고 정작 중요한 소수 클래스를 놓친다.

MLS-C01은 코드 구현보다 "어떤 상황에 어떤 기법이 적절한가"를 묻는다.

상황1차 대응2차 대응
데이터 총량이 적다전이학습, 데이터 증강합성 데이터로 보강
특정 클래스만 적다오버샘플링·SMOTE, 클래스 가중치임계값 조정
실데이터를 쓸 수 없다(프라이버시)합성 정형 데이터익명화·차등 프라이버시
희귀·위험 상황 사례가 없다시뮬레이션도메인 규칙 기반 생성
레이블이 부족하다액티브 러닝, 약한 감독준지도학습

데이터 증강이란

데이터 증강은 기존 데이터를 변형해 새 학습 샘플을 만드는 기법이다. 새 데이터를 모으지 않고도 데이터셋의 다양성과 양을 늘려 일반화 성능을 높이고 과적합을 줄인다.

증강의 핵심 원칙은 "레이블을 바꾸지 않는 변형"이다. 고양이 사진을 좌우로 뒤집어도 여전히 고양이다. 즉 정답(레이블)은 보존하면서 입력만 다양화하는 변형만 적용해야 한다. 이를 통해 모델은 "위치·각도·밝기가 달라도 본질은 같다"는 불변성(invariance)을 학습한다.

이미지 증강

이미지는 증강이 가장 활발한 영역이다.

변형 계열예모델이 얻는 불변성
기하 변환좌우/상하 반전, 회전, 이동, 크기 조절, 크롭위치·각도·크기 변화
색·밝기 변환밝기·대비·채도 조정, 컬러 지터조명·카메라 차이
노이즈·마스킹가우시안 노이즈, 영역 가리기(Cutout)부분 가림·화질 저하
혼합두 이미지 섞기(Mixup/CutMix)결정 경계의 부드러움
# 이미지 증강 (개념 예시 — torchvision transforms)
from torchvision import transforms
 
augment = transforms.Compose([
    transforms.RandomHorizontalFlip(p=0.5),   # 좌우 반전
    transforms.RandomRotation(degrees=15),    # ±15도 회전
    transforms.ColorJitter(brightness=0.2,    # 밝기·대비 변화
                           contrast=0.2),
    transforms.RandomResizedCrop(224),        # 랜덤 크롭 후 리사이즈
])

⚠️ 함정: 무분별한 증강은 레이블을 망가뜨린다. 숫자 인식에서 "6"을 180도 회전하면 "9"가 되어 레이블이 깨진다. 의료 영상에서 좌우 반전은 좌우 장기를 바꿔 진단 의미를 훼손한다. 증강은 도메인 의미를 보존하는 범위 안에서만 적용해야 한다.

텍스트·음성 증강

  • 텍스트는 이미지보다 까다롭다(단어 하나가 의미를 바꾼다).
    • 동의어 치환: 일부 단어를 유의어로 교체
    • 역번역(back-translation): 한국어 → 영어 → 한국어로 돌려 표현을 다양화
    • 무작위 삽입·삭제·교환: 일부 단어를 넣거나 빼거나 자리를 바꿈
    • 임베딩 기반 치환·문맥 모델 활용: 사전학습 언어모델로 자연스러운 변형 생성
  • 음성은 속도 변경, 피치 이동, 배경 소음 추가, 시간·주파수 마스킹 등을 쓴다.

⚠️ 함정: 텍스트 증강에서 부정어("않다", "없다")를 건드리면 레이블이 정반대가 된다. 감성 분석 데이터에 무작위 삭제를 세게 걸면 오히려 성능이 떨어진다.

데이터 합성 — 없는 데이터를 만들어 내기

증강이 "기존 데이터의 변형"이라면, 합성은 완전히 새로운 가상 데이터를 생성하는 쪽에 가깝다. 실데이터가 극히 부족하거나 프라이버시 때문에 실데이터를 쓸 수 없을 때 사용한다.

방법설명대표 용도
GAN생성자와 판별자가 경쟁하며 사실적인 데이터를 만든다이미지 생성, 희귀 사례 보강
시뮬레이션물리·규칙 엔진으로 상황을 만들어 낸다자율주행의 위험 시나리오, 로봇
합성 정형 데이터통계 분포를 모사해 개인정보 없는 가짜 표를 만든다프라이버시 보호, 외부 공유

합성 데이터는 강력하지만 "분포 갭(distribution gap)"의 위험이 있다. 합성 데이터가 실제 데이터 분포를 완벽히 재현하지 못하면, 거기서 학습한 모델은 실세계에서 성능이 떨어진다. 그래서 합성 데이터는 실데이터를 보완하는 용도로 쓰고, 검증은 반드시 실데이터로 해야 한다.

불균형 데이터 다루기

클래스 불균형은 ML 시험에서 헷갈리기 쉬운 주제다. 양성:음성 = 1:999인 사기 탐지에서 "전부 음성"이라 답하는 모델은 정확도 99.9%를 받지만, 사기를 하나도 못 잡는 쓸모없는 모델이다.

대응 전략은 크게 세 층이다.

[데이터 층]      오버샘플링 / 언더샘플링 / SMOTE
      ▼
[알고리즘 층]    클래스 가중치 / 결정 임계값 조정 / 비용민감 학습
      ▼
[평가 층]        accuracy 금지 → recall · F1 · PR-AUC

1. 데이터 층 — 리샘플링

기법동작장점위험
오버샘플링(복제)소수 클래스를 복제해 늘림정보 손실 없음같은 점 반복 → 과적합
언더샘플링다수 클래스를 줄여 균형학습이 빨라짐다수 클래스 정보 손실
SMOTE소수 샘플과 최근접 이웃 사이를 보간해 새 점 생성다양성 확보, 과적합 완화경계·노이즈 영역에서 잘못된 합성
# SMOTE로 소수 클래스 합성 오버샘플링 (개념 예시 — imbalanced-learn)
from imblearn.over_sampling import SMOTE
 
smote = SMOTE(random_state=42)
X_balanced, y_balanced = smote.fit_resample(X_train, y_train)
# 소수 클래스 샘플 사이를 보간한 합성 샘플이 추가되어 클래스 비율이 맞춰진다

단순 복제(중복으로 인한 과적합 위험)와 달리, SMOTE는 기존 소수 샘플과 그 최근접 이웃을 잇는 선 위에 새로운 점을 만든다. 덕분에 모델이 더 일반화된 결정 경계를 학습한다. 다만 노이즈가 많거나 클래스 경계가 모호한 데이터에서는 잘못된 합성 샘플을 만들 수 있어 주의가 필요하다.

리샘플링은 학습셋에만 적용해야 한다. 검증·테스트셋까지 균형을 맞추면 실제 운영 분포와 달라져 성능이 부풀려진다. 교차 검증을 쓸 때도 각 fold의 학습 부분에서만 SMOTE를 돌려야 한다.

2. 알고리즘 층 — 가중치와 임계값

  • 클래스 가중치: 손실 함수에서 소수 클래스 오류에 더 큰 벌점을 준다. XGBoost의 scale_pos_weight가 대표적이다.
  • 결정 임계값 조정: 기본 0.5를 낮춰 소수 클래스를 더 잘 잡는다. 임계값은 precision-recall 곡선을 보고 비즈니스 비용에 맞춰 정한다.
  • 비용민감 학습: 오탐과 미탐의 실제 비용을 명시적으로 넣어 최적화한다.

3. 평가 층 — 지표를 먼저 바꾼다

불균형 데이터에서 accuracy는 거짓 안심을 준다. 1:999 데이터의 99.9% 정확도는 사실상 무의미하다. 대신 precision, recall, F1, PR-AUC, ROC-AUC로 소수 클래스 성능을 제대로 평가해야 한다. 특히 사기·질병처럼 소수 클래스가 중요한 문제에서는 recall과 PR-AUC가 핵심이다.

증강을 언제 어디서 적용하나

같은 증강이라도 적용 시점에 따라 성격이 달라진다.

방식언제 만드나장점단점
사전 생성(offline)학습 전에 미리 만들어 저장학습 중 CPU 부담 없음, 재현 쉬움저장 공간 증가, 다양성이 고정됨
실시간 생성(on-the-fly)배치를 만들 때마다 무작위 변형에폭마다 다른 변형 → 다양성 큼데이터 로더가 병목이 될 수 있음
  • 검증·테스트셋에는 증강을 적용하지 않는다. 평가는 실제 입력 분포에서 해야 한다.
  • 예외적으로 추론 시 여러 변형의 예측을 평균 내는 기법(test-time augmentation)이 있지만, 이는 평가 데이터를 늘리는 것이 아니라 예측을 안정화하는 별개의 기법이다.

"학습 데이터가 부족하니 증강으로 10배 늘렸다"는 서술만 보고 안심하면 안 된다. 증강은 새로운 정보를 만들지 못한다. 원본이 100장이면 아무리 늘려도 그 100장이 담은 다양성 이상은 얻을 수 없다. 근본 해법은 데이터 수집이나 전이학습이다.

레이블이 부족할 때의 다른 길

불균형과 별개로 "레이블 자체가 부족한" 상황도 나온다.

  • 전이학습(transfer learning): 큰 데이터로 미리 학습된 모델을 가져와 마지막 층만 우리 데이터에 맞춰 다시 학습한다. 필요한 레이블 양을 크게 줄인다.
  • 준지도학습(semi-supervised): 적은 레이블 데이터와 많은 무레이블 데이터를 함께 쓴다.
  • 액티브 러닝: 모델이 헷갈려 하는 샘플만 골라 사람에게 레이블링을 요청한다.
  • 약한 감독(weak supervision): 규칙·휴리스틱으로 대략적 레이블을 대량 생성한 뒤 노이즈를 감수하고 학습한다.

이 네 가지는 모두 "사람이 붙여야 할 레이블의 수를 줄인다"는 같은 목표를 다른 방향에서 공략한다. 전이학습은 모델 쪽에서, 증강은 입력 쪽에서, 액티브 러닝은 선택 쪽에서, 약한 감독은 레이블 생성 쪽에서 문제를 줄인다. 시험에서 "레이블링 비용 절감"이 나오면 이 넷 중 하나가 정답인 경우가 많다.

AWS 맥락에서의 적용

  • SageMaker Processing / Data Wrangler: 전처리 단계에서 리샘플링·증강 로직을 실행한다.
  • 내장 알고리즘의 가중치 옵션: 예컨대 XGBoost의 scale_pos_weight로 불균형을 보정한다.
  • GAN 학습: SageMaker 학습 잡으로 생성 모델을 훈련해 합성 데이터를 만든다.

🎯 시나리오: "신용카드 사기 탐지 데이터가 양성 0.2%로 극도로 불균형하다. 모델이 사기를 거의 못 잡는다." → (1) SMOTE 같은 오버샘플링이나 클래스 가중치로 불균형을 보정하고, (2) accuracy 대신 recall과 PR-AUC로 평가하며, (3) 결정 임계값을 사기 탐지 쪽으로 조정한다.

내일은 준비된 데이터를 학습에 효율적으로 공급하는 방법(Pipe/File 모드, FSx for Lustre, 샤딩)을 다룬다.

📖 용어

  • 데이터 증강 : 기존 데이터를 레이블이 바뀌지 않는 선에서 변형해 학습 샘플을 늘리는 기법.
  • 불변성(invariance) : 위치·각도·밝기가 달라져도 같은 답을 내는 성질. 증강으로 모델에 심어 준다.
  • 역번역(back-translation) : 다른 언어로 번역했다가 되돌려 문장 표현을 다양화하는 텍스트 증강.
  • 데이터 합성 : 실제로 존재하지 않던 데이터를 새로 만들어 내는 것. GAN·시뮬레이션 등.
  • GAN : 생성자와 판별자가 서로 경쟁하며 학습해 사실적인 데이터를 만드는 신경망 구조.
  • 분포 갭(distribution gap) : 합성·증강 데이터의 분포가 실제 분포와 어긋나 실세계 성능이 떨어지는 위험.
  • 클래스 불균형 : 클래스별 표본 수가 극단적으로 치우친 상태. 사기 0.2% 같은 경우.
  • SMOTE : 소수 클래스 샘플과 최근접 이웃 사이를 보간해 새 샘플을 합성하는 오버샘플링 기법.
  • 클래스 가중치 : 손실 함수에서 소수 클래스의 오류에 더 큰 벌점을 주는 설정.
  • 결정 임계값 : 확률을 양성/음성으로 가르는 기준값. 기본 0.5를 비용에 맞춰 옮긴다.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

양성 0.2%로 극도로 불균형한 사기 탐지 데이터에서, 모델 성능을 평가하는 지표로 가장 부적절한 것은?

문제 2

SMOTE 기법이 단순 복제(중복 오버샘플링)와 구별되는 핵심 특징은?

문제 3

데이터 증강을 적용할 때 반드시 지켜야 하는 원칙으로 가장 옳은 것은?

문제 4

실데이터가 극히 부족하거나 프라이버시 제약으로 실데이터를 직접 쓸 수 없을 때, 새로운 가상 데이터를 생성하는 접근으로 가장 적절한 것은?

문제 5

합성 데이터로 학습한 모델을 운영에 투입하기 전 가장 중요하게 고려할 위험은?

이전학습 데이터 파이프라인 자동화: Step Functions와 SageMaker PipelinesWeek 2 · Day 2다음 학습 데이터 저장·접근 최적화: Pipe 모드 vs File 모드·FSx for Lustre·분산 학습Week 2 · Day 4

참고 공식 자료

  • MLS-C01 공식 시험 안내(새 탭에서 열림)

이 페이지

  • 왜 이 문제가 생기나
  • 데이터 증강이란
  • 이미지 증강
  • 텍스트·음성 증강
  • 데이터 합성 — 없는 데이터를 만들어 내기
  • 불균형 데이터 다루기
  • 1. 데이터 층 — 리샘플링
  • 2. 알고리즘 층 — 가중치와 임계값
  • 3. 평가 층 — 지표를 먼저 바꾼다
  • 증강을 언제 어디서 적용하나
  • 레이블이 부족할 때의 다른 길
  • AWS 맥락에서의 적용
  • 용어
  • 연습 문제