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
  • Week 3
  • Week 4
  • Week 5
  • Week 6
    • 1.알고리즘 선택: 문제 유형별 매핑
    • 2.SageMaker 내장 알고리즘 1: XGBoost·Linear Learner·K-Means·KNN
    • 3.SageMaker 내장 알고리즘 2: 텍스트·이미지·시계열·추천
    • 4.비지도 학습과 이상 탐지: RCF·PCA·IP Insights·토픽 모델(LDA/NTM)
    • 5.6주차 종합 복습: 알고리즘 선택과 SageMaker 내장 알고리즘
  • Week 7
  • Week 8
  • Week 9
  • Week 10
  • Week 11
  • Week 12
합격 후기

© CertNote · 주간랩스

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

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

MLS-C01· AssociateWeek 6 · Day 3읽기 약 14분
핵심 정리
  • 지문에 텍스트·이미지·시계열·희소라는 단어가 보이면 XGBoost가 아니라 전문 빌트인으로 답이 밀린다.
  • BlazingText는 두 모드다. 레이블이 있고 문서를 분류하면 supervised, 레이블 없이 단어 벡터를 얻으면 Word2Vec.
  • 이미지 + 데이터 부족의 정석은 use_pretrained_model=1 전이 학습 + 데이터 증강이다. 객체 위치까지 필요하면 Object Detection.
  • DeepAR는 관련 시계열 수천 개를 한 모델로 함께 학습해 신규·짧은 시계열까지 예측하고, 점 추정이 아니라 P10/P50/P90 확률 구간을 낸다.
  • Factorization Machines는 원핫으로 폭발한 초고차원 희소 데이터의 2차 상호작용 전용이며, 입력은 RecordIO-protobuf(float32)를 권장한다.

Day 3 - SageMaker 내장 알고리즘 2: 텍스트·이미지·시계열·추천

데이터 형태가 알고리즘을 정한다

어제는 정형 데이터 알고리즘을 다뤘다. 오늘은 데이터 형태가 특수할 때 — 텍스트, 이미지, 시계열, 희소 상호작용 — 쓰는 전문 빌트인을 정리한다.

데이터 형태목표빌트인입력 포맷이유
텍스트문서 분류BlazingText (supervised)텍스트 파일, __label__<label> 문장fastText 기반, 대규모 코퍼스에서 매우 빠름
텍스트단어 임베딩BlazingText (Word2Vec)텍스트 파일(공백 토큰화)레이블 없이 의미 공간 학습
이미지라벨 분류Image ClassificationRecordIO 또는 이미지(.jpg/.png) + .lstResNet 기반 CNN, 전이 학습 지원
이미지객체 위치Object Detection—분류가 아니라 위치까지 필요
이미지픽셀 단위Semantic Segmentation—픽셀마다 클래스 부여
시계열미래 값 예측DeepARJSON Lines다수 관련 시계열 공유 학습, 확률 예측
희소 상호작용추천·클릭 예측Factorization MachinesRecordIO-protobuf (float32)희소 데이터에 최적화
                  [데이터가 표 형식이 아니다]
                            │
        ┌───────────┬───────┴────────┬─────────────┐
      텍스트       이미지          시계열       사용자-아이템
        │            │               │            (매우 희소)
   레이블 있나?   무엇을 원하나?   관련 시계열      │
   ├─ 예 →       ├─ 라벨만 →      다수인가?    Factorization
   │  supervised │  Image          ├─ 예 →      Machines
   │  (문서 분류) │  Classification │  DeepAR   (RecordIO-protobuf)
   └─ 아니오 →   ├─ 위치까지 →     └─ 아니오 →
      Word2Vec   │  Object            단일 통계 기법
      (임베딩)   │  Detection         또는 Forecast
                 └─ 픽셀 단위 →
                    Semantic Segmentation

BlazingText — 텍스트 분류와 단어 임베딩

Word2Vec과 텍스트 분류를 GPU로 가속하는 빌트인. 두 가지 모드가 있다.

  • Word2Vec(비지도): 단어를 벡터로 임베딩한다. 유사 단어 탐색, 다운스트림 피처 생성에 쓴다
  • Text Classification(지도): 문서 → 레이블(감성, 주제 등). fastText 기반
모드 결정:
  레이블이 있고 문서를 분류한다 → supervised (text classification)
  레이블이 없고 단어 벡터만 필요 → Word2Vec (cbow / skipgram / batch_skipgram)
  • 입력: 텍스트 파일(공백 토큰화). supervised 모드는 __label__<label> sentence 형식
  • 강점: 대규모 코퍼스에서 속도가 압도적, 다국어 지원, subword로 OOV(사전에 없는 단어) 처리
Word2Vec 모드학습 방향특징
cbow주변 문맥 → 중심 단어 예측빠르고 자주 쓰이는 단어에 강함
skipgram중심 단어 → 주변 문맥 예측희귀 단어 표현이 좋음
batch_skipgramskipgram의 배치·분산 학습 버전대규모 코퍼스에서 확장성

BlazingText의 Word2Vec은 "문맥으로 중심 단어를 맞히기(CBOW)" 또는 "중심 단어로 문맥을 맞히기(skip-gram)"를 통해 의미가 비슷한 단어를 벡터 공간에서 가깝게 배치한다. 학습된 임베딩 자체를 단어 유사도 검색에 쓰거나, 다른 모델의 입력 피처로 넘긴다. 시험에서 "단어의 의미적 유사도" / "임베딩"은 Word2Vec 모드 신호, "문서를 카테고리로 분류"는 supervised 모드 신호다.

⚠️ 함정: supervised 모드에서 학습 파일의 레이블 접두사는 반드시 __label__ 형태여야 한다. 일반 CSV처럼 컬럼으로 레이블을 넣는 보기는 오답이다.

Image Classification — 이미지 분류

CNN(ResNet) 기반으로 이미지를 하나 또는 여러 레이블로 분류하는 빌트인이다.

  • 용도: 단일/다중 레이블 이미지 분류
  • 입력: RecordIO 또는 이미지(.jpg/.png) + .lst 목록 파일
  • 핵심 기법: 전이 학습(Transfer Learning) — use_pretrained_model=1로 ImageNet 사전학습 가중치에서 시작하면 데이터가 적어도 좋은 성능이 난다
핵심 하이퍼파라미터:
  num_classes, num_training_samples
  use_pretrained_model   0(처음부터) | 1(전이 학습)
  image_shape, learning_rate, mini_batch_size
  augmentation_type      이미지 증강 (crop/color 등)
  • 데이터가 적으면 전이 학습 + 데이터 증강이 정석이다.
  • 객체의 위치까지 필요하면 분류가 아니라 Object Detection 빌트인, 픽셀 단위면 Semantic Segmentation이다.
상황선택이유
라벨 이미지 수천 장 미만use_pretrained_model=1 + augmentation_type처음부터 학습하면 과적합
라벨 이미지가 매우 많고 도메인이 특수use_pretrained_model=0 검토사전학습 도메인과 차이가 클 때
"이 사진에 결함이 있는가"Image Classification라벨만 필요
"결함이 어디에 있는가"Object Detection바운딩 박스 필요
"결함 영역을 픽셀로 칠해라"Semantic Segmentation픽셀 단위 클래스

⚠️ 함정: "이미지 + 데이터가 부족"에 "더 깊은 네트워크를 처음부터 학습"을 고르면 오답이다. 데이터가 적을수록 모델을 키우는 게 아니라 사전학습 가중치를 빌려오고 증강으로 데이터를 늘린다.

DeepAR — 시계열 예측

RNN 기반 시계열 예측 빌트인. 핵심 강점은 시계열 하나를 따로 모델링하는 게 아니라 관련된 여러 시계열을 함께 학습해 패턴을 공유하는 것이다.

  • 용도: 수요·매출·트래픽의 미래 값 예측, 확률적(분위수) 예측
  • 입력: JSON Lines — 각 시계열이 start, target, 선택적으로 cat(카테고리), dynamic_feat(공변량)를 가진다
  • 강점: 수천 개 매장처럼 관련 시계열이 많을 때 개별 모델링보다 정확하다. 신규·짧은 시계열(콜드 스타트)도 유사 시계열에서 배운 패턴으로 예측할 수 있다
핵심 하이퍼파라미터:
  context_length      과거 입력 윈도의 길이
  prediction_length   예측 윈도의 길이
  epochs, num_cells, num_layers
  likelihood          출력 분포 (Gaussian 등)

전통적인 ARIMA·지수평활은 시계열 하나하나를 따로 모델링하지만, DeepAR는 여러 관련 시계열을 한 모델로 학습해 계절성·추세를 교차 학습한다. 그래서 이력이 짧은 신규 아이템도 유사 아이템의 패턴을 빌려 쓸 수 있다. 출력이 점 추정이 아니라 분포(분위수)이므로 P10/P50/P90 형태의 불확실성 구간을 준다. 시험에서 "수천 개의 관련 시계열" / "신제품 수요" / "확률적 예측 구간"은 DeepAR 신호다. 더 관리형이 필요하면 Amazon Forecast다.

DeepAR가 단일 시계열 기법보다 유리한 조건

조건DeepAR단일 시계열 통계 기법(ARIMA 등)
관련 시계열이 수천 개유리(패턴 공유)시계열마다 모델을 따로 만들어야 함
신규·짧은 이력(콜드 스타트)유리(유사 시계열에서 차용)데이터가 없어 추정 불가
시계열이 단 하나뿐이점이 작음충분히 경쟁력 있음
불확실성 구간이 필요분위수 예측 제공별도 구간 추정 필요
공변량(프로모션·가격) 반영dynamic_feat로 투입확장이 번거로움

"시계열 예측"이라고 무조건 DeepAR가 정답은 아니다. 시계열이 하나뿐이고 데이터도 짧다면 딥러닝은 과한 선택이다. "관련 시계열 다수" 또는 "확률 구간 필요"라는 단서가 있어야 DeepAR로 확정된다.

Factorization Machines — 희소 고차원 추천

사용자-아이템처럼 매우 희소하고 고차원인 데이터에서 피처 간 2차 상호작용을 효율적으로 모델링한다.

  • 용도: 추천(클릭 예측, 평점 예측), 희소 분류/회귀
  • 입력: RecordIO-protobuf(float32). 희소 데이터에 최적화되어 있어 CSV는 권장하지 않는다
  • 강점: 원핫 인코딩으로 폭발한 초고차원 희소 입력에서도 상호작용을 효율적으로 학습한다
핵심 하이퍼파라미터:
  num_factors        잠재 요인(latent factor) 차원
  predictor_type     binary_classifier | regressor
  bias/linear/factors   항별 정규화·초기화 설정

추천 맥락에서 FM은 협업 필터링의 일반화다. 사용자 ID와 아이템 ID를 원핫으로 넣으면 행렬 분해처럼 동작하고, 여기에 추가 피처(시간, 맥락)를 함께 넣을 수도 있다.

비교Factorization Machines고전 협업 필터링(행렬 분해)
입력임의의 피처 벡터(원핫 + 부가 피처)사용자-아이템 행렬만
부가 정보시간·맥락·인구통계 추가 가능추가가 어렵다
콜드 스타트부가 피처로 일부 완화신규 사용자·아이템에 취약
희소성 처리잠재 요인으로 상호작용 일반화관측된 셀 위주

FM에 CSV를 쓰겠다는 보기는 오답 신호다. 희소 고차원 데이터를 CSV로 표현하면 0이 대부분인 거대한 밀집 표가 되어 비효율적이다. RecordIO-protobuf(float32)가 정답이다.

전처리와 평가 지표

전문 빌트인은 정형 알고리즘과 전처리 요구가 다르다. "스케일링" 개념 자체가 성립하지 않는 경우도 있다.

빌트인전처리 요구스케일링
BlazingText공백 토큰화, supervised는 __label__ 접두사해당 없음(토큰 입력)
Image Classification리사이즈(image_shape), 증강, RecordIO 또는 .lst 구성픽셀 정규화는 컨테이너가 처리
DeepAR시계열별 start/target 정리, 결측 구간 처리, 공변량 정렬해당 없음(시계열 스케일은 내부 정규화)
Factorization Machines원핫 인코딩 후 희소 표현으로 변환수치 피처는 스케일 정리 권장
과제주 지표무엇을 말하는가함정
텍스트 분류(불균형 클래스)F1, macro F1소수 카테고리도 잡는지accuracy는 다수 카테고리에 끌려간다
이미지 분류(다중 레이블)레이블별 precision/recall태그별 성능 편차전체 accuracy가 편차를 감춘다
시계열 예측(점 추정)RMSE, MAE평균적 오차 크기구간 예측의 품질은 말해주지 않는다
시계열 예측(확률 구간)분위수 손실 계열P10/P50/P90 구간이 실제를 감싸는지RMSE만 보면 구간이 너무 넓어도 모른다
추천(클릭 예측)AUC, PR-AUC클릭 확률 랭킹 품질클릭률이 1% 미만이면 accuracy 무의미
추천(평점 예측)RMSE평점 오차상위 랭킹 품질과는 다른 이야기

추천·클릭 예측 데이터는 양성(클릭)이 극히 드문 전형적 불균형이다. 여기서 accuracy를 지표로 고르는 보기는 오답이며, 랭킹 품질을 보는 AUC나 소수 클래스에 정직한 PR-AUC가 정답 방향이다.

지문 단서 → 정답 매핑표

지문 단서정답 방향함께 나오는 세부
"문서를 카테고리로 분류"BlazingText supervised__label__ 형식
"단어의 의미적 유사도 / 임베딩"BlazingText Word2Veccbow / skipgram
"이미지 + 데이터가 적다"Image Classification전이 학습 + 증강
"이미지에서 객체 위치"Object Detection분류가 아님
"픽셀 단위로 영역 구분"Semantic Segmentation—
"수천 개 관련 시계열 / 신제품 수요 / P90 구간"DeepARJSON Lines, context_length
"프로모션 같은 외부 변수도 반영"DeepAR dynamic_feat공변량 채널
"사용자-아이템 / 매우 희소 / 추천"Factorization MachinesRecordIO-protobuf
"완전 관리형으로 빠르게"Comprehend / Rekognition / Forecast / Personalize직접 학습이 아님

내일은 레이블 없이 다루는 비지도·이상 탐지 빌트인(RCF, PCA, IP Insights, LDA/NTM)을 다룬다.

📖 용어

  • fastText : 단어를 부분 문자열(subword)까지 쪼개 표현하는 텍스트 분류·임베딩 기법. BlazingText supervised 모드의 기반이다.
  • OOV(out-of-vocabulary) : 학습 사전에 없던 단어. subword 표현을 쓰면 처음 보는 단어도 벡터를 만들 수 있다.
  • cbow / skipgram : 문맥으로 중심 단어를 맞히는 방식 / 중심 단어로 문맥을 맞히는 방식. Word2Vec의 두 학습 방향이다.
  • 전이 학습(transfer learning) : 대규모 데이터로 미리 학습된 가중치에서 출발해 적은 데이터로 미세 조정하는 기법.
  • 데이터 증강(augmentation) : 자르기·색 변형 등으로 학습 이미지를 인위적으로 늘려 과적합을 줄이는 기법.
  • .lst 파일 : 이미지 경로와 레이블을 줄 단위로 적어 Image Classification에 넘기는 목록 파일.
  • JSON Lines : 한 줄에 JSON 객체 하나씩 담는 포맷. DeepAR가 시계열 하나를 한 줄로 받는 방식이다.
  • context_length / prediction_length : DeepAR가 참고하는 과거 구간의 길이 / 예측할 미래 구간의 길이.
  • 분위수 예측(P10/P50/P90) : 하나의 값이 아니라 "10%·50%·90% 확률선"을 함께 내주는 확률적 예측.
  • 잠재 요인(latent factor) : 사용자·아이템을 설명하는 보이지 않는 저차원 특성 벡터. FM의 num_factors가 그 차원을 정한다.

📝 연습 문제

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

문제 1

1,000개 매장의 일별 판매 데이터가 있고, 최근 오픈해 데이터가 짧은 신규 매장의 향후 4주 수요를 P10/P50/P90 구간으로 예측하려 한다. 가장 적합한 빌트인은?

문제 2

고객 리뷰 문서를 "긍정/부정/중립"으로 분류하는 모델을 대규모 코퍼스로 매우 빠르게 학습하려 한다. 가장 적합한 빌트인과 모드는?

문제 3

약 2,000장의 작은 이미지 데이터셋으로 제품 결함 유무를 분류하려 한다. 데이터가 적어 성능이 걱정된다. 가장 권장되는 접근은?

문제 4

사용자 ID·아이템 ID·맥락 피처를 One-Hot으로 인코딩해 매우 희소하고 고차원인 클릭률 예측 데이터를 만들었다. 상호작용을 효율적으로 학습할 빌트인과 권장 입력 포맷은?

문제 5

BlazingText의 Word2Vec 모드를 사용하는 가장 적절한 상황은?

이전SageMaker 내장 알고리즘 1: XGBoost·Linear Learner·K-Means·KNNWeek 6 · Day 2다음 비지도 학습과 이상 탐지: RCF·PCA·IP Insights·토픽 모델(LDA/NTM)Week 6 · Day 4

참고 공식 자료

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

이 페이지

  • 데이터 형태가 알고리즘을 정한다
  • BlazingText — 텍스트 분류와 단어 임베딩
  • Image Classification — 이미지 분류
  • DeepAR — 시계열 예측
  • DeepAR가 단일 시계열 기법보다 유리한 조건
  • Factorization Machines — 희소 고차원 추천
  • 전처리와 평가 지표
  • 지문 단서 → 정답 매핑표
  • 용어
  • 연습 문제