알고리즘 과제 신호 단어 입력 출력 Random Cut Forest 이상 탐지(일반 수치) "희귀 사건 / 스파이크 / 실시간" CSV, RecordIO-protobuf 레코드별 이상 점수 IP Insights 이상 탐지(엔티티-IP) "비정상 로그인 / 계정 IP" (entity, IP) CSV 그 IP를 쓸 개연성 PCA 차원 축소 "피처가 너무 많다 / 압축 / 시각화" RecordIO-protobuf, CSV 주성분 좌표 LDA 토픽 모델(확률적) "주제 발견 / 소규모 / 해석" BoW 문서별 토픽 분포, 토픽별 단어 분포 NTM 토픽 모델(신경망) "주제 발견 / 대규모 / GPU" BoW 문서별 토픽 분포, 토픽별 단어 분포
[레이블이 없다]
│
┌──────────┬──────┴───────┬──────────────┐
"드문 사건을 "피처가 너무 "문서에서 "비슷한 것끼리
찾아라" 많다" 주제를" 묶어라"
│ │ │ │
어떤 데이터? PCA 문서 규모는? K-Means
│ (regular / │ (Day2)
├─ 일반 수치 randomized) ├─ 크다·GPU → NTM
│ → RCF └─ 작다·해석 → LDA
│ (실시간이면 Kinesis
│ Data Analytics RCF)
└─ (엔티티, IP) 쌍
→ IP Insights
데이터를 무작위로 잘라 트리를 만들고, 쉽게 고립되는(드문) 점에 높은 이상 점수 를 부여한다.
용도 : 이상 탐지(비지도). 시계열 스파이크, 희귀 패턴
입력 : CSV, RecordIO-protobuf
출력 : 레코드별 이상 점수(높을수록 이상)
스트리밍 : Kinesis Data Analytics에 RANDOM_CUT_FOREST 함수가 내장되어 있어 실시간 이상 탐지가 가능하다
핵심 하이퍼파라미터:
num_trees 트리 개수 (많을수록 안정)
num_samples_per_tree 트리당 샘플 수
feature_dim 피처 차원
RCF의 직관은 "이상치는 정상보다 빨리 고립된다"이다. 정상 점은 밀집 영역에 있어 분리하려면 많이 잘라야 하지만, 드문 점은 무작위 절단 몇 번으로 고립된다. 이 고립 깊이가 점수가 된다. 레이블이 필요 없고 새로운 형태의 이상에도 반응하므로 Day 1에서 말한 "레이블이 거의 없다 / 이상이 계속 변한다" 문제를 대표한다. 실시간이면 Kinesis Data Analytics의 RCF SQL 함수가 떠오르면 된다.
[정상 점] 밀집 영역 → 분리에 절단이 많이 필요 → 고립 깊이 깊음 → 낮은 점수
● ●●●
●●●●● ──┬── ──┬── ──┬── ──┬── (4번 잘라야 분리)
●●●
[이상 점] 희소 영역 → 몇 번의 절단으로 고립 → 고립 깊이 얕음 → 높은 점수
○ ──┬── (1번에 분리)
조건 지도 분류 비지도 이상 탐지(RCF) 이상 레이블이 충분한가 필요(수천 건 이상) 필요 없음 이상 패턴이 고정적인가 고정적일 때 유리 계속 변해도 대응 새로운 유형의 이상 학습한 적 없어 놓친다 정상에서 벗어나면 잡는다 지문 단서 "과거 사기 사례가 충분히 라벨링됨" "레이블이 거의 없다 / 수법이 계속 바뀐다" 지표 precision/recall/PR-AUC 이상 점수 임계값과 운영 알림량
⚠️ 함정 : 이상 탐지 문제에 "정상/이상 이진 분류로 학습한다"를 고르면, 지문에 이상 레이블이 충분하다는 근거가 있어야만 정답이다. 근거 없이 지도 분류를 고르면 오답이다.
상관관계가 높은 다수의 피처를 분산을 최대한 보존하는 소수의 주성분 으로 압축한다.
용도 : 차원 축소(비지도). 시각화, 다운스트림 모델 입력 경량화, 다중공선성 완화
입력 : RecordIO-protobuf, CSV
모드 : regular(중간 차원), randomized(초대형 차원, 근사, 빠름)
핵심 하이퍼파라미터:
num_components 보존할 주성분 개수
algorithm_mode regular | randomized
subtract_mean 평균 제거(중심화)
스케일에 민감하므로 보통 먼저 스케일링·중심화 한다.
PCA는 비지도라 레이블을 쓰지 않는다. 레이블을 쓰는 차원 축소가 필요하면 LDA(Linear Discriminant Analysis)지만 주의할 점이 있다 — SageMaker의 LDA는 토픽 모델(Latent Dirichlet Allocation)로 이름만 같다.
모드 언제 쓰나 특징 regular피처 수가 중간 규모 정확한 계산 randomized피처 수가 매우 클 때 근사 계산, 빠르고 확장성 좋음
PCA를 쓰는 이유 효과 대가 다중공선성 완화 주성분은 서로 직교해 상관이 사라진다 원본 피처 해석력 상실 학습·추론 경량화 입력 차원이 줄어 속도·비용 개선 일부 분산(정보) 손실 거리 기반 모델 보조 차원의 저주 완화(KNN 앞단) 성능이 항상 오르지는 않는다 시각화 2~3개 주성분으로 산점도 축의 의미가 직관적이지 않다
⚠️ 함정 : PCA 앞에서 스케일링을 생략하면 단위가 큰 피처(예: 연봉)가 분산을 독점해 그 피처 방향이 곧 제1 주성분이 된다. PCA 전 표준화 는 거의 항상 옳은 보기다.
엔티티 (사용자/계정)와 IPv4 주소의 연관을 학습해 평소와 다른 조합을 탐지한다.
용도 : 비정상 로그인, 계정 탈취, 봇 탐지(비지도)
입력 : CSV — (entity, IP) 쌍
출력 : 그 엔티티가 해당 IP를 사용할 개연성(낮을수록 이상)
기법 : 신경망 임베딩으로 엔티티-IP 패턴을 학습하고, 무작위 음성 샘플과 대조한다
핵심 하이퍼파라미터:
num_entity_vectors 엔티티 임베딩 해시 공간 크기
vector_dim 임베딩 차원
num_ip_encoder_layers
random_negative_sampling_rate
RCF와 IP Insights의 갈림길: 둘 다 이상 탐지지만 RCF는 일반 수치 데이터의 이상, IP Insights는 "엔티티-IP" 관계에 특화 되어 있다. 평소와 다른 로그인 IP면 IP Insights, 일반 메트릭 급변이면 RCF다.
비교 축 Random Cut Forest IP Insights 입력 데이터 수치 피처 벡터 (엔티티, IPv4) 쌍 학습 방식 무작위 절단 트리의 고립 깊이 임베딩 + 무작위 음성 샘플 대조 출력 해석 이상 점수(높을수록 이상) 사용 개연성(낮을수록 이상) 대표 시나리오 서버 메트릭 스파이크, 거래 이상 계정 탈취, 봇, 낯선 지역 로그인 실시간 경로 Kinesis Data Analytics RCF 엔드포인트 추론
요구 경로 판단 근거 스트림에서 즉시 탐지 Kinesis Data Analytics의 RANDOM_CUT_FOREST SQL 함수 모델 학습·엔드포인트 없이 스트림 안에서 점수 계산 온라인 요청마다 점수 SageMaker RCF 모델 → 실시간 엔드포인트 애플리케이션이 건별로 조회 대량 로그를 야간 일괄 채점 배치 변환(Batch Transform) 엔드포인트를 상시 유지할 필요 없음
"실시간"이라는 단어만 보고 무조건 SageMaker 실시간 엔드포인트를 고르면, 스트리밍 파이프라인 안에서 처리하라는 지문에서 틀린다. 데이터가 Kinesis 스트림으로 들어온다는 단서 가 있으면 Kinesis Data Analytics RCF가 더 직접적인 정답이다.
레이블 없이 문서에서 잠재 주제 와 주제별 단어 분포를 찾는다. 둘 다 토픽 모델이지만 구현이 다르다.
항목 LDA (Latent Dirichlet Allocation) NTM (Neural Topic Model) 기반 확률적 생성 모델 신경망(오토인코더) 학습 CPU 단일, 상대적으로 단순 GPU 활용 가능, 대규모·복잡 입력 BoW(문서-단어 빈도) BoW 강점 해석 용이, 소~중 규모 데이터 더 풍부한 표현, 대규모
공통 입력: Bag-of-Words (단어 인덱스별 빈도 카운트), RecordIO-protobuf 또는 CSV
토픽 수는 사용자가 지정한다(LDA: num_topics, NTM: num_topics)
토픽 모델은 "각 문서는 여러 주제의 혼합이고, 각 주제는 단어들의 분포다"라고 가정한다. LDA는 이를 베이지안 확률 모델로 추정하고, NTM은 같은 목표를 신경망으로 근사한다. 둘 다 비지도라 정답 토픽 레이블이 없고, 토픽 수는 하이퍼파라미터다. 시험에서 "둘 중 무엇?"을 물으면 데이터 규모·GPU·해석 가능성으로 가른다(대규모·GPU=NTM, 단순·해석=LDA). 이 LDA(토픽 모델)는 선형판별분석(Linear Discriminant Analysis)과 이름만 같고 완전히 다르다.
"LDA는 차원 축소 알고리즘이다"라는 보기는 SageMaker 맥락에서 오답이다. 약어 충돌을 노린 전형적 함정이며, SageMaker 빌트인 LDA는 토픽 모델이다.
비지도 알고리즘은 정답 레이블이 없으므로 "정확도"로 평가할 수 없다. 무엇으로 판단하는지가 시험 포인트다.
빌트인 스케일링 필요한 전처리 평가 방법 Random Cut Forest 권장(피처 단위가 제각각이면) 수치화, 결측 처리 이상 점수 분포와 임계값, 운영 알림량 IP Insights 해당 없음 (엔티티, IP) 쌍으로 정리, 중복 제거 알려진 사고 사례로 점수 하위 구간 검증 PCA 필수(표준화·중심화) 수치화, 결측 처리 누적 설명 분산 비율로 num_components 결정 LDA / NTM 해당 없음 토큰화 → 불용어 제거 → BoW 벡터화 퍼플렉시티, 토픽 단어의 사람 해석 가능성
판단 무엇을 보는가 실무 기준 RCF 임계값 이상 점수 상위 몇 %를 알림으로 볼 것인가 운영팀이 감당할 알림량에 맞춘다 PCA 성분 수 누적 설명 분산 비율 곡선 보통 90~95%를 넘기는 최소 성분 수 토픽 수 토픽별 상위 단어가 서로 구분되는가 토픽이 겹쳐 보이면 num_topics를 줄인다
비지도 결과를 "accuracy로 평가한다"는 보기는 오답이다. 정답 레이블이 없기 때문이다. RCF는 점수 임계값, PCA는 설명 분산, 토픽 모델은 퍼플렉시티·해석 가능성으로 판단한다.
[원본 500개 피처]
│ 표준화 (평균 0, 분산 1)
▼
[PCA algorithm_mode=randomized, num_components=30]
│ 주성분 30개 (서로 직교, 분산 95% 보존)
▼
[다운스트림] KNN(차원의 저주 완화) / K-Means(거리 안정화) / 시각화(2~3성분)
차원이 줄면 거리 기반 모델의 학습·추론이 빨라지고 안정된다.
대가는 해석력 상실 이다. 규제 심사에서 "어느 피처가 영향을 줬는가"를 설명해야 하면 PCA는 불리하다.
지문 단서 정답 방향 오답으로 밀리는 것 "레이블 없는 희귀 이상 / 스트림 실시간" RCF (실시간 = Kinesis Data Analytics RCF) 지도 분류 "사용자·계정이 평소와 다른 IP에서" IP Insights RCF "수백~수천 피처를 모델 입력으로 줄여라" PCA (초대형이면 randomized 모드) K-Means, FM "문서 더미에서 주제를 발견" LDA / NTM BlazingText supervised(레이블 필요) "토픽 발견 + 대규모 + GPU" NTM LDA "토픽 발견 + 해석 용이 + 소규모" LDA NTM "LDA는 선형판별분석이다" 오답(이름 충돌) — "PCA 전 스케일링 생략" 오답 — "비지도 결과를 accuracy로 평가" 오답(정답 레이블이 없음) — "이상 레이블이 충분히 쌓여 있다" 지도 분류도 유효 RCF 단독 고집
내일은 Week 6 전체를 알고리즘 선택 의사결정 관점으로 종합한다.
이상 점수(anomaly score) : 레코드가 얼마나 평소와 다른지를 수치로 나타낸 값. RCF는 값이 클수록 이상이다.
고립(isolation) : 무작위 절단으로 한 점만 남기는 것. 이상치일수록 적은 절단으로 고립된다.
주성분(principal component) : 데이터 분산을 가장 많이 설명하는 방향의 새 축. 서로 직교한다.
다중공선성 : 피처끼리 강하게 상관되어 선형 모델의 계수 해석이 불안정해지는 현상. PCA로 완화한다.
subtract_mean(중심화) : 각 피처에서 평균을 빼 원점을 맞추는 전처리. PCA의 전제 조건이다.
엔티티(entity) : IP Insights에서 사용자 ID·계정 ID처럼 IP와 짝지어 관찰되는 주체.
무작위 음성 샘플링 : 실제로 관측되지 않은 (엔티티, IP) 조합을 인위로 만들어 대조 학습에 쓰는 기법.
Bag-of-Words(BoW) : 단어 순서를 버리고 등장 빈도만 세어 문서를 벡터로 만드는 표현. 토픽 모델의 입력이다.
num_topics : 토픽 모델이 찾아낼 주제의 개수. 정답이 없어 사용자가 정하는 하이퍼파라미터다.
LDA 이름 충돌 : SageMaker 빌트인 LDA는 토픽 모델(Latent Dirichlet Allocation)이고, 차원 축소의 선형판별분석(Linear Discriminant Analysis)과는 약어만 같다.
📝 연습 문제 선택지를 클릭하면 정답·해설이 펼쳐집니다.
서버 메트릭 스트림에서 평소와 다른 급변(스파이크)을 실시간으로, 레이블 없이 탐지하려 한다. 가장 적합한 조합은?
A PCA로 차원 축소 후 K-Means B Kinesis Data Analytics의 Random Cut Forest C IP Insights D BlazingText supervised 한 웹 서비스가 "특정 사용자 계정이 평소와 전혀 다른 IP 주소에서 로그인"하는 비정상을 탐지하려 한다. 가장 특화된 빌트인은?
A Random Cut Forest B PCA C IP Insights D LDA 상관관계가 높은 500개의 수치 피처를 분산을 최대한 보존하며 30개 정도로 압축해 다운스트림 모델의 입력으로 쓰려 한다. 가장 적합한 빌트인은?
A PCA B Factorization Machines C DeepAR D IP Insights 라벨이 없는 대규모 문서 코퍼스에서 잠재 주제를 발견하려 한다. 데이터가 매우 크고 GPU로 학습을 가속하고 싶다. LDA와 NTM 중 더 적합한 것과 그 이유로 옳은 것은?
A LDA — 신경망 기반이라 GPU에서 빠르다 B LDA — 항상 NTM보다 정확하다 C NTM — 확률적 생성 모델이라 항상 해석이 더 쉽다 D NTM — 신경망 기반으로 대규모·GPU 활용에 유리하다 SageMaker에서 "LDA"라는 이름과 관련해 가장 정확한 설명은?
A SageMaker 빌트인 LDA는 차원 축소용 선형판별분석이다 B LDA와 NTM은 모두 지도학습 분류 알고리즘이다 C LDA는 이미지 분류 전용이다 D SageMaker 빌트인 LDA는 토픽 모델(Latent Dirichlet Allocation)이며, 차원축소의 선형판별분석과 이름만 같다