Pattern Recognition

5. Density Estimation

2022. 9. 12. 13:00
목차
  1. 0. Density Estimation
  2. 1. Histogram
  3. 2. Kernel Density Estimation(커널 밀도 추정)
  4. 1) Kernel이 무엇인가?
  5. 2) KDE

한성대학교 지준교수님 강의자료를 통해 기초적인 개념들을 다지고자 한다.

 

0. Density Estimation

Density Estimation(밀도 추정)은 관찰된 데이터가 있을 때, 해당 데이터 분포에 내재된 확률밀도함수(probability density function)을 추정하는 방법이다(확률 함수가 아닌 확률밀도함수이다).

fX(x) is pdfP[a≤X≤b]=∫abfX(x)dx

대표적으로 Non-Parametric Density Estimation 방법인 Histogram, Kernel Density Estimation 등이 있다. 또한 Parametric Density Estimation으로는 GMM이 있다.

 

1. Histogram

Histogram은 데이터를 연속적인 간격(bin)으로 나누고 각 간격에서 관측된 표본의 빈도를 세고 그 값을 막대의 높이로 하여 데이터의 밀도로 표현한 그래프이다. 히스토그램의 시작점 값을 x0, 폭 값(bin width)을 h라고 하면, 표본 데이터는 구간 m에 대하여 [x0+mh, x0+(m+1)h]에 존재하며, 데이터의 총 개수가 n일 때, 확률함수는 다음과 같이 정의한다.

PH(x)=1n×Count(x)Width(x)=Count(x)nh

Histogram 예시 (출처: 위키)

 

Histogram은 1,2차원의 데이터를 빠르게 시각화하는데 유용하다. 하지만 추정된 밀도가 불연속적이고 관측간격의 시작점(bin의 시작점)에 매우 의존적이며 feature차원이 증가할수록 관측구간(bin)의 수도 기하급수적으로 증거하는 차원의 저주의 등의 단점이 있다. 

 

 

2. Kernel Density Estimation(커널 밀도 추정)

Kernel Density Estimation은 주어진 확률변수의 pdf를 추정하는 non-parametric한 방법이다. KDE는 Kernel을 사용하여 데이터 분포를 smoothing하고 pdf를 추정한다. 참고로 KDE는 다른 분야에서 Parzen-Rosenblatt window라고도 불린다.

 

1) Kernel이 무엇인가?

통계학에서 Kernel은 분야에 따라 몇 가지 다른 의미로 쓰인다(위키). 먼저 Bayesian statistics에서는 pdf, pmf 수식에서 domain variable을 제외한 형태를 의미한다. 아래 수식에서 분모의 σ가 제외된 이유는 domain variable x에 대한 함수가 아니기 때문이다.

p.d.f :p(x|μ,σ2)=12πσ2e−(x−μ)22σ2kernel :p(x|μ,σ2)∝e−(x−μ)22σ2

 

반면 Non-parametric statistics에서 kernel은 weighting function을 의미하며 random variable의 density function을 추정하는 KDE 등에서 사용된다. 이때의 kernel은 non-negative real-valued integrable function이며 아래 두 조건을 만족해야 한다.

  • Normalization: ∫−∞∞K(μ)dμ=1
  • Symmetry: K(−μ)=K(μ)  for all values of μ

 

또한 kernel trick이라는 개념도 있는데 SVM등에서 사용되는 방식으로 자세한 내용은 여기에 잘 나와있다.

 

2) KDE

<x1,⋯,xn>를 density function f에서 i.i.d로 샘플링된 데이터라고 하자. 이때 KDE를 통해 이 함수의 모양을 kernel을 사용하여 아래와 같이 추정할 수 있다.

fh^(x)=1n∑i=1nKh(x−xi)=1nh∑i=1nKh(x−xih)

h는 함수의 bandwidth 파라미터로 값이 작으면 kernel이 뾰족한 형태가되고 값이 크면 kernel이 완만한 형태가 된다. 위 수식은 다음과 같이 이해할 수 있다.

  • 먼저 간측된 데이터 각각(xi)마다 해당 데이터 값을 중심으로 하는 kernel을 생성한다(Kh(x−xi))
  • 만들어진 모든 kernel 함수들을 더하고 전체 데이터 개수로 나눈다.

Histogram과 KDE 비교(출처: 위키)

KDE는 kernel 함수 종류와 bandwidth h에 따라 모양이 크게 달라진다. 자주 사용되는 kernel 함수는 uniform, triangular, biweight, Epanechnikov, normal 분포 등이 있다.

Kernel density estimate (KDE) with different bandwidths of a random sample of 100 points from a standard normal distribution. Grey: true density (standard normal). Red: KDE with h=0.05. Black: KDE with h=0.337. Green: KDE with h=2(위키)

 

KDE로 적절한 estimation을 하기 위한 평가 방법으로는 MISE(Mean Integrated Squared Error)가 많이 사용된다.

MISE(h)=E[∫(fh^(x)−f(x))2dx]

 

적절한 bandwith h를 추정할 수도 있는데 만약 Gaussian kernel을 사용한다고 하면 h는 다음과 같은 값으로 사용하면 된다.

h=(4σ^53n)15≈1.06σ^n−1/5

 

 

[참고자료]

  • 다크 프로그래머 글
  • Kernel density estimation 위키

 

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'Pattern Recognition' 카테고리의 다른 글

[ML] KL Divergence, Cross Entropy, Likelihood  (0) 2022.11.04
4. Clustering (2)  (2) 2022.09.12
4. Clustering (1)  (0) 2022.09.11
3. Maximum Likelihood Estimation(MLE)  (0) 2022.08.06
(참고) Gaussian Distribution  (0) 2022.08.06
  1. 0. Density Estimation
  2. 1. Histogram
  3. 2. Kernel Density Estimation(커널 밀도 추정)
  4. 1) Kernel이 무엇인가?
  5. 2) KDE
'Pattern Recognition' 카테고리의 다른 글
  • [ML] KL Divergence, Cross Entropy, Likelihood
  • 4. Clustering (2)
  • 4. Clustering (1)
  • 3. Maximum Likelihood Estimation(MLE)
Fine애플
Fine애플
이것저것
끄적끄적이것저것
Fine애플
끄적끄적
Fine애플
전체
오늘
어제
  • 분류 전체보기 (167)
    • 논문 및 개념 정리 (27)
    • Pattern Recognition (8)
    • 개발 (57)
    • python 메모 (45)
    • pytorch, tensorflow (5)
    • 알고리즘 (9)
    • Toy Projects (4)
    • 통계이론 (2)
    • Reinforcement Learning (10)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • transformer
  • pandas
  • Docker
  • GPU
  • ubuntu
  • BigBird
  • 딥러닝
  • tensorflow
  • container
  • 개발환경
  • Bert
  • python
  • reinforcement learning
  • PyTorch
  • miniconda
  • 알고리즘
  • Probability
  • 언어모델
  • nlp
  • 자연어

최근 댓글

최근 글

hELLO · Designed By 정상우.
Fine애플
5. Density Estimation
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.