-2-
비모수 밀도 추정법이란?
• 이전의 장에서는
– (1) 특정 클래스의 확률밀도인 우도(likelihood) p(x|ωi) 를 알고 있거나 (최우추정법)
– (2) 우도의 파라메타적인 형태를 안다고 가정 (파라메타 추정) 하였다.
• 이번 장에서 다루게 될 비모수 밀도 추정법은 이러한 가정 없이, 표본 데이터에 대한 확률밀도함수 p(x) 를 직접 추정하는 방법들에 대하여 배운다.
– 히스토그램
– 커널밀도추정 (KDE: Kernel Density Estimation) : Parzen창 또는 스무드커널을 이용
– k-NNR을 이용한 밀도 추정
-3-
• 데이터의 밀도를 간단한 형태로 표현
• 측정된 스케일로 이루어진 데이터를 연속적인 간격으로 나누고 각 간격에서 관측되는 표본의 빈도를 카운트하여 그 값을 막대의 높이로 하여 데이터의 밀도를 표현한 그래프
• 단점
– 밀도 추정의 최종모양은 관측간격의 시작점(starting position of the bins)에 의존함
– 추정된 밀도가 불연속적인 이유는 실제 밀도 때문이 아니라 관측간격(bin)의 위치에 의한 오류이다.
– 차원의 저주 : 차원이 증가할수록 관측구간(bin)의 수도 기하급수적으로 증가하며, 대부분의 bin 은 비어있게 된다.
• 대부분의 실제응용에서는 적절하지 않으나, 1차원 또는 2차원의 경우 빠른 시각화에 적절하다.
히스토그램
-4-
히스토그램의 시작점 값을 x0, 막대-폭 값을 h 라고 하면, 표본 데이터는 구간 m에 대하여 [ x0+mh, x0+(m+1)h ] 에 존재하며, 데이터의 총 개수가 n일 때, 확률함수는 다음과 같이 정의한다.
예) 다음과 같은 12개의 데이터에 대한 히스토그램을 구해보자.
2.1, 2.4, 2.3, 2.4, 2.47, 2.7, 2.6, 2.65, 3.3, 3.39, 3.8, 3.87
막대-폭이 0.5 이고 각 막대의 시작점을 n.0 과 n.5 에 놓을 경우의 히스토그램을 구하기 위해서 다음과 같은 MATLAB 명령을 사용한다.
Y=[2.1, 2.4, 2.3, 2.4, 2.47, 2.7, 2.6, 2.65, 3.3, 3.39, 3.8, 3.87];
X=[0.25:0.5:5];
N=HIST(Y,X);
오른쪽의 그림을 보면 봉우리가 하나이고
오른쪽으로 갈수록 밀도가 감소함을 알 수 있다.
N=HIST(Y,X); X는 간격의 중심을 나타내는 벡터
히스토그램
nh
Count
Width
Count
nH
)(
)(
)(1)(
x
x
xxP
-5-
• 이번에는 막대-폭을 이전과 같이 0.5로 하고 시작점을 오른쪽으로 0.25 만큼 이동한 결과를 보자.
Y=[2.1, 2.4, 2.3, 2.4, 2.47, 2.7, 2.6, 2.65, 3.3, 3.39, 3.8, 3.87];
X=[0.5:0.5:5];
N=HIST(Y,X);
오른쪽의 그림을 보면 봉우리가 2개로,
이전의 히스토그램과는 완전히 다른 양상을 띠는 것을 알 수 있다.
앞의 예에서 보는 것처럼 히스토그램은
매우 간단한 밀도 추정인 반면 몇 가지 단점이 있다..
히스토그램
-6-
커널 밀도 추정 (Kernel Density Estimation)
• 확률밀도분포 p(x) 로부터 얻어진 특징 벡터 x가 표본 공간상의 영역 R에 속할 확률 P 는, 확률 및 확률밀도 정의에 의해서
• 그 분포로부터 N 개의 벡터 {x1, x2,,… , xN} 이 얻어진 경우, 이들 N 개의 벡터 중에 k 개가 R 영역에 속할 확률은, 가 되면 영역 R에 떨어지는 점들의 평균비율로부터 제법 정확한 확률 P의 추정을 얻게 된다.
R
xdxpP )(
N
kP
N
• 반면에 p(x)가 연속이고, 영역 R이 아주 작으면, p(x)는 그 영역 내에서는 거의 변하지 않는다고 가정할 수 있게 되고, 확률 함수는 영역의 면적/체적과 영역내의 밀도함수 p(x)의 평균값의 곱으로 추정 가능하게 된다. (V=영역 R을 둘러싼 체적범위, x*=영역 R내 한 점)
VxpdxxpxPRx
)()()( *
• 위의 결과들을 합치면,
NV
kxp
N
kxP
VxpdxxpxPR
)(
)(
)()()(
*
*
-7-
커널 밀도 측정(KDE) (cont’d)
• 이 추정식은 표본의 수 N를 증가시키고 체적 V를 좁게 할수록 더 정확함
• 하지만, 실제로 전체표본의 수 N은 고정되어 있고, 따라서 p(x)의 추정이 정확해지려면 체적 V를 0(zero)에 근접시켜야 되지만, 그렇게 하면 영역 R이 너무 작아져서 표본을 포함하지 않게 된다.
• 따라서 실제로는 체적 V를 결정하는 데 있어서 타협점을 찾아야 한다.
– 체적 V 내에 충분한 표본이 포함되도록 충분히 크게
– 체적 V 내에서 “p(x)가 일정하다”라는 가정이 적절하도록 충분히 작게
NV
kxp
N
kxP
VxpdxxpxPR
)(
)(
)()()(
*
*
-8-
커널 밀도 측정(KDE) (cont’d)
• 따라서 비모수적 밀도 추정 일반식은
NV
kp(x)
V : x를 둘러싼 영역의 체적 N : 표본의 총수 k : 체적 V 내의 표본의 수
위의 결과를 실제 확률밀도추정문제에 적용할 수 있는 두 가지 방법
• KDE (Kernel Density Estimation) 접근법
- 체적 V를 고정값으로 선택하고, 그 영역 내에 포함된 표본의 수 k를 결정하는 방법
- Parzen 창 추정법 : 과 같은 n의 함수로 체적 Vn 을 지정하여 영역을 줄여가면서 최적의 밀도를 추정하는 방법.
• k-NNR (k Nearest Neighbor Rule) 추정법
– 영역 내의 포함될 표본의 수 k 값을 고정된 값으로 선택하고 이에 대응되는 체적 V를 결정하는 방법
– 어떤 표본점을 포함하는 체적이 개의 표본을 포함하도록 데이터 독립적으로 체적을 줄여나가면서 최적의 밀도를 추정하는 방법.
N이 증가함에 따라서 V가 축소되며 k가 증가 됨을 가정한다면, 에 따라서 KDE 와 k-NNR 는 실제 확률밀도에 수렴함을 보일 수 있다.
N
nVn /1
nkn
-10-
Parzen 창에 의한 커널 밀도 추정
• k 개의 표본을 포함하는 영역 R이 추정점 x를 중심으로 하며 모서리의 길이 h를 갖는 초입방체라하면, 그 체적은 V=hD 가 되며, 여기에서 D는 차원의 수를 말한다.
• 이러한 영역에 포함되는 표본의 수를 찾기 위해서 우리는 다음과 같은 커널함수 K(u) 를 정의한다.
• 원점을 중심으로 하는 단위 초입방체 (hyper-rectangle)로 주어지는 이러한 커널을 Parzen 창(window) 이라고 한다.
• x를 중심으로 하는 모서리의 길이가 h인 초입방체 안에 점 x(n 이 놓이게 되면 K((x-x(n)/h) 는 단위값(=1)을 갖게 되며, 그 외에는 0인 값을 갖게 된다.
otherwise 0
,,1 21|| 1 DjuK(u)
j
-11-
Parzen 창에 의한 커널 밀도 추정 (cont’d)
• 초입방체 내의 점의 총수는 다음과 같이된다.
• 초입방체 내의 점의 총수를 밀도추정 일반식에 치환하면,
• 여기에서 Parzen 창 밀도 추정은 셀 위치가 데이터 점에 의하여 결정된다는 사실을 빼고는 히스토그램과 유사함을 알 수 있다.
N
n
n
h
xxKk
1
(
N
n
n
D h
xxK
NhNV
kxP
1
(
KDE
1)(
-12-
커널함수의 역활
• 추정된 확률밀도 PKDE(x) 의 기대값이 커널 함수의 실제 밀도 p(x)의 콘볼루션 형식임을 확인할 수 있다.
• 커널의 폭 h는 스무딩 파라미터 역할을 하며, 커널 함수가 넓으면 넓을수록 추정치는 더 부드러워짐
• h 0 이면, 커널은 델타함수에 가까워지고 PKDE(x)는 실제 확률밀도에 근접한다. 하지만, 실제 유한한 표본점을 가지므로 델타 함수가 되는 것은 불가능
• 커널함수의 역할을 이해하기 위해서 확률밀도추정 PKDE(x)의 기대값을 계산해 보면 다음과 같다.
-15-
스무스 커널을 이용한 커널 밀도 추정
• Parzen 창의 단점
– 불연속적인 모양의 밀도추정을 낳는다.
– 추정점으로부터의 거리에 관계없이 모든 점에 가중치를 같게 준다.
• 오른쪽의 그림은 폭이 1이고 높이가 1/12 (점선으로 된 박스)인 블록을 12개의 데이터 점이 중심이 되게 위치시키고 이들을 모두 더한 것이다. 히스토그램보다 부드러운 모양인 것을 쉽게 확인할 수 있으며, 이것을 블록 커널 밀도 추정법이라고 한다.
-16-
스무스 커널을 이용한 커널 밀도 추정
• 다음과 같은 조건을 만족하는 부드러운 커널로 parzen 창을 사용하면 불연속적인 모양을 갖는 문제들이 극복될 수 있다.
• 일반적으로 K(x)로는 다음과 같은 가우시안 밀도 함수가 사용되며
• 밀도추정식은 앞에서와 마찬가지로 다음과 같게 된다.
N
i
i
D
N
i
i
DKDE
h
xx
hN
h
xxK
NhxP
1
2(
1
(
2
1exp
2
11
1)(
xxx
T
2
1exp
2
1)(
2/DK
-17-
스무스 커널을 이용한 커널 밀도 추정
• Parzen 창 추정은 관측점을 중심으로 하는 box(상자)들의 합으로 간주될 수 있고, 스무드 커널 추정의 경우는 관측점에 놓인 부드러운 범프(bump)들의 합으로 간주될 수 있다.
• 커널함수는 데이터점 위의 튀어나온 모양을 결정지으며, h는 스무딩 파라미터 또는 진폭이라 불리우며 폭을 결정 짖는다.
• 진폭이 크면 밀도가 과하게 스무드되어 데이터 안의 구조를 덮어버리게 되며, 작은 진폭은 너무 뾰족한 밀도 추정 으로 해석이 어렵게 되므로 진폭의 결정이 밀도추정에 중요한 문제이다.
-23-
• k-NNR 방법에서는 추정점 x 주위를 둘러싸는 부피를 k 개의 데이터 점이 포함되도록 증가시키게 된다.
• 그러면 밀도추정은 다음과 같이 된다. 여기에서 Rk(x) = k번째 가장 근접한 이웃데이터와 추정점 x 간의 거리 CD= D차원의 단위 구의 체적으로 다음과 같이 주어진다. 따라서 C1=2, C2=π, c3=4π/3 등이 된다.
k-NNR을 이용한 밀도 추정 예
4
3
2
5,
22
3 Using
-24-
• 일반적으로 k-NNR방법으로 얻어지는 추정은 그다지 만족스럽지 못하다. – 추정이 국부적인 잡음에 약함 – 매우 긴 잔여(heavy tail)를 갖는 추정을 만든다. – 함수 Rk(x)는 미분이 불가능 하므로 밀도추정은 불연속적이게 된다. – 결과로 얻어지는 밀도는 그의 적분이 발산하므로 실제확률밀도라 할 수 없다.
k-NNR 을 이용한 밀도 추정 예
-25-
k-NNR 을 이용한 밀도 추정 예
• 2차원에서의 k-NNR 밀도추정 윗그림은 다음과 같은 가우시안혼합모델의 실제 밀도를 나타내고 있으며 아래의 그림은 N=200인 자료에서 k=10인 이웃점들을 사용해 추정된 밀도를 나타내고 있다.
• 두 분포의 등고선 그림과 추정에 사용된 훈련 자료를 다음페이지에서 보이고 있다.
-27-
k-NNR 을 이용한 밀도 추정 (베이즈 분류기)
• k-NNR 방법의 주된 장점은 베이즈 분류기의 아주 간단한 근사를 유도해 내는데 있다.
– N 개의 자료를 가진 경우, 여기에서 클래스 ωi 로부터는 Ni, 그리고 우리가 모르는 표본 xu를 분류하기를 원할 경우 xu주변에 체적이 V인 초구체(hyper-sphere)를 그리고 이 체적 안에 전부 k개의 표본이, 그 중 ωi 로부터는 ki 개가 포함된다고 가정하자.
– 그러면 k-NNR 방법을 사용하여 우도함수를 근사할 수 있다.
– 마찬가지로 비조건적인 밀도는 로 추정되고
– 사전확률은 으로 근사된다.
– 이들을 모두 정리하면, 베이즈 분류기는 다음과 같이 된다.
-28-
k-NNR 을 이용한 분류기
• 라벨이 없는 표본이 주어질 경우, 학습 데이터 집합에서 k개의 가장 가까운 라벨이 있는 표본을 찾아내고 k개의 부분집합 내에 가장 빈도가 많이 나타나는 클래스에 xu 를 할당하는 방법
• k-NNR의 필요데이터
– 상수 k
– 라벨이 있는 학습 데이터 집합 (훈련자료)
– 집합의 표본
– 근접도를 잴 수 있는 거리 척도
• Example
– 좌측과 같이 세 개의 클래스가 주어진 경우 xu 의 클래스를 결정하기.
– 유클리디안 거리를 사용하여 k=5 인 주변의 자료들을 사용하면. 주변의 가장 근접한 5개의 이웃한 자료들 중에서 4개는 w1
에 속하며, 1는 w3에 속하므로 xu 는 그 중에서 가장 우세한 w1에 속하게 된다.
hyper-sphere
k=5로 고정
N1
N = N1 + N2 + N3
N2
N3
k = k1 + k2 + k3
k1 =4
k3 =1
P(ω1|x)= k1 / k = 4/5, P(ω2|x) = 0, P(ω3|x) = 1/5
x= {x1 ,x2 ,x3 ,x4 ,x5 }
x1 x2
x4 x3
x5
-31-
비모수 밀도 추정을 이용한 패턴 인식
• 장점
– 분석이 용이하다
– 구현이 간단하다
– 표본의 개수가 아주 큰 극한일 경우(N∞)에는 거의 최적인 방법이다.
– 국지적인 정보를 사용하므로 매우 적응적인 결과를 낳는다.
– 병렬처리가 용이하다.
• 단점
– 커다란 저장공간이 필요하다.
– 많은 계산시간이 소요된다.
– “차원의 저주”에 영향을 크게 받는다.
• 1-NNR vs k-NNR
– 큰 k를 사용할 경우의 두 가지 장점
• 스무드한 결정 영역을 만든다.
• 확률적인 정보를 제공한다 : 각 클래스들에 대한 표본의 비율은 결정시의 불확실 정도의 정보를 알려준다.
– 큰 k를 사용시 불이익
• 너무 많은 표본이 사용되기 때문에 추정에 있어서 국지적인 성분을 제거한다.
• 많은 계산이 소요된다.