본문으로 건너뛰기

"machine-learning" 태그로 연결된 6개 게시물개의 게시물이 있습니다.

모든 태그 보기

분포 거리 측정 (Part 1) - 정보이론 기초와 KL Divergence

· 약 7분
Nam Young Kim
Data Fullstack Engineer

KL Divergence를 정보이론 기초부터 이해하기. Self-Information, Entropy, Cross-Entropy의 관계를 통해 KL Divergence가 왜 이런 형태인지 직관적으로 설명합니다.

들어가며

머신러닝을 하다 보면 "두 확률 분포가 얼마나 다른가?"를 측정해야 하는 상황을 자주 만납니다. 모델이 예측한 분포와 실제 데이터 분포의 차이, VAE에서 latent space의 분포와 prior의 차이, 또는 시간에 따른 데이터 분포의 변화(drift) 감지까지. 이 모든 상황에서 KL Divergence라는 개념이 등장합니다.

이번 글에서는 KL Divergence가 "무엇"인지보다 "왜" 이런 형태를 갖게 되었는지에 초점을 맞춥니다. 정보이론의 기초 개념부터 차근차근 쌓아올려 보겠습니다.

분포 거리 측정 (Part 2) - Forward vs Reverse KL, 그리고 VAE

· 약 9분
Nam Young Kim
Data Fullstack Engineer

Forward KL과 Reverse KL의 차이, Mode-covering과 Mode-seeking 행동의 이해. VAE의 Reparameterization Trick까지 상세 설명.

들어가며

Part 1에서 KL Divergence의 정의와 정보이론적 의미를 살펴봤습니다. 그런데 한 가지 의문이 남습니다. KL Divergence가 비대칭적이라면, DKL(PQ)D_{KL}(P \| Q)DKL(QP)D_{KL}(Q \| P) 중 어떤 것을 사용해야 할까요?

이 선택은 단순한 수학적 문제가 아닙니다. ML 모델의 학습 행동을 근본적으로 바꿉니다. 이번 글에서는 Forward KL과 Reverse KL의 차이를 깊이 이해하고, VAE에서 Reparameterization Trick이 왜 필요한지 알아보겠습니다.

분포 거리 측정 (Part 3) - JSD와 Wasserstein Distance

· 약 8분
Nam Young Kim
Data Fullstack Engineer

GAN 학습이 어려운 이유와 해결책. JSD의 gradient vanishing 문제부터 Wasserstein Distance, WGAN까지의 발전 과정.

들어가며

Part 1에서 KL Divergence의 정보이론적 의미를 살펴봤습니다. 하지만 KL Divergence에는 실용적인 한계가 있습니다. 비대칭적이고, 특정 상황에서 무한대로 발산합니다. 이번 글에서는 이러한 한계를 극복하기 위해 등장한 **Jensen-Shannon Divergence(JSD)**와, GAN 학습에서 JSD의 치명적인 문제를 해결한 Wasserstein Distance를 다룹니다.

이 여정을 따라가다 보면 GAN이 왜 학습하기 어려운지, 그리고 WGAN이 어떻게 이를 해결했는지 깊이 이해할 수 있습니다.

분포 거리 측정 (Part 4) - 실무 적용과 Detection 시스템

· 약 11분
Nam Young Kim
Data Fullstack Engineer

KL, JSD, Wasserstein을 실제 시스템에 적용하는 방법. Drift Detection, Anomaly Detection, Model Monitoring 구현 패턴과 실무 체크리스트.

들어가며

지난 세 편에서 KL Divergence, JSD, Wasserstein Distance의 이론적 배경을 살펴봤습니다. 이제 가장 중요한 질문이 남았습니다. "실제로 어떻게 쓰는가?"

이번 글에서는 분포 비교 기법을 실제 시스템에 적용하는 구체적인 패턴들을 다룹니다. Feature drift detection, anomaly detection, model monitoring 등 바로 활용할 수 있는 내용에 집중합니다.

Bhattacharyya Distance (바타차리야 거리) 쉽게 이해하기

· 약 6분
Nam Young Kim
Data Fullstack Engineer

두 확률 분포의 차이를 측정하는 Bhattacharyya Distance를 실생활 예시와 수식으로 완벽히 이해하기

🎯 핵심 개념

Bhattacharyya Distance는 두 개의 확률 분포가 얼마나 다른지를 측정하는 지표입니다. 쉽게 말하면, 두 그룹이 얼마나 "구별 가능한지"를 숫자로 나타낸 것이죠.

📊 실제 예시 1: 키 분포

두 그룹의 키를 비교한다고 생각해봅시다:

  • 그룹 A: 한국 성인 남성 (평균 175cm, 표준편차 6cm)
  • 그룹 B: 한국 성인 여성 (평균 162cm, 표준편차 5cm)
그룹 A:        ___
/ \
/ \___
/ \
165 175 185 (cm)

그룹 B: ___
/ \
/ \___
/ \
155 162 170 (cm)

**Bhattacharyya Coefficient (BC)**는 두 분포의 겹치는 부분(overlap)을 측정합니다:

  • BC ≈ 0.3 → 겹치는 부분이 적음 → 두 그룹이 잘 구별됨
  • Bhattacharyya Distance = -ln(0.3) ≈ 1.2

Data Fullstack Engineer로의 여정

· 약 2분
Nam Young Kim
Data Fullstack Engineer

안녕하세요! 이 블로그에 오신 것을 환영합니다.

저는 데이터 사이언티스트로 시작해 파트 리더, 팀 리더, Data PM을 거쳐 현재 Data Fullstack Engineer로 활동하고 있습니다. 이는 단순한 직급의 변화가 아닌, 경험의 확장을 통해 데이터의 전 영역을 이해하고 구현할 수 있게 된 여정입니다.