공부 정리 블로그

[패턴학습 3장]확률분포 추정(2/2)-비모수적 방법 본문

대학원 수업/패턴인식

[패턴학습 3장]확률분포 추정(2/2)-비모수적 방법

따옹 2022. 10. 23. 09:44

모수적 방법

확률 분포가 매개 변수(모수)로 표현되는 형태

Maximum likelihood Estimate

MAP 방법 등

 

샘플들이 곱셈으로 표현될 수 있는 이유는 iid

independent, identically distributed

로그를 취해서 미분을 한 값을 0으로 두면 최대로 하는 θ를 구하면 pdf 함수를 구하는 매개변수를 구하는 것

가우시안 함수는 μΣ를 구해야함 

μ = sample mean

N-1을 쓰는 이유

sample covarience,

sample Varience, true varience

어느 쪽이 더 커야할까?

모집단이 더 크다 

sample Varience가 작게 나옴

N을 쓰는 거 보단 N-1을 쓰는 게 더 크다

 

MAP 방법은

P(θ) 를 곱해줌

사전확률을 고려해야 함 (θ)에 대한 사전 확률

추정한  μΣ 값의 사전값이 있자면 그 쪽으로 분포와 Σ를 치중한다.

곱한 방법으로 미분을 해주면 MAP 방법으로 densitiy 추정 가능

위에는 모수적인 방법

 

비모수적인 방법(Non-parametric)

density가 가우시안과 같은 parameter의 값으로 표현되지 않고

density가 임의의 모양으로 나옴

샘플마다 density를 씌움 폭이 h란 값을 가진 폭을 씌우면

샘플이 많은 곳엔 중첩이 많아짐

 

3.3.1 파젠창

파젠창 윈도우를 어떻게 씌울 것인가

샘플이 많은 곳엔 density가 높아짐 h값을 크게 잡을 수도, 낮게 잡을 수도

1차원 직선, 2차원 사각형, 3차원 튜브모양

h값은 차원, 차원별로 k값을 구해서 kx형태로 나타냄

윈도우 함수의 모양을 간단히 4각형으로 나타낼 수도 있지만 좀 더 부드럽게 나타낸 방법이 파젠창

 

kx가 현재 위치를 기준으로 +-0.5안으로 결정하면 uniform window

가우시언 형태로 나타내면 샘플이 많은 곳은 값이 높아짐 

원래 가우시언이었다면 중첩이 많이되는 부분은 가우시언 모양으로 나옴

density 함수의 조건

1. 항상 >=0

2. 이 값을 -+무한대 구간 적분은 1

이 조건을 만족하면 density 함수

커널함수에 따라 측정되는 모양이 덜, 더 부드러울 수 있음

 

커널함수 표현

kx윈도우가 씌워진 형태로 업데이트하여 표현 표현

샘플 구간마다 윈도우 함수가 씌워질 텐데, 윈도우 함수가 uniform 함수, 가우시언 함수를 사용

가우시언 함수를 사용하면 더 부드러운 모양으로 예측됨

수식은 복잡해 보일 수 있지만 이런 역할을 한다

 

파젠 윈도우 방법이 차원의 저주에서 자유롭지는 않음

1차원은 부드럽게 표현될 수 있다곤 해도

2,3차원은 샘플의 density가 충분하지 않을 수도

샘플이 너무 sparse하면 density 측정이 잘 안됨

 

파젠창 window 방법으로 density를 측정하면 좋을 때

sample이 충분히 많아야하고 

h는 작을 수록 좋음

 

3.3.2 k- 최근접 이웃 추정

같은 수식 사용 

각각의 sample h값 고정되어 있었음

모델 샘플마다 샘플마다 윈도우가 씌워져서  density가

구간마다 쭉 스캔하면서 모든 포인트들의 density를 측정,

샘플이 없는 곳은 일정 샘플이 들어올때까지 h를 넓힘 정해진 갯수의 샘플이 들어오는 구간을 variable h를 정함

ex) k=3 일 때,

시간 복잡도는 k값, 차원, 샘플개수가 클수록 커짐

KNN 방법에서는 각 포인트에서 인접한 샘플을 찾는 게 차원이 d차원으로 가게되면 계산량이 커짐

샘플이 N개가 있는데, 임의의 위치에서 가장 가까운 샘플을 찾으려면 계산을 n 번 해야함

 

미리 구간을 구성하고 구간은 각각의 다각형이 뜻하는 것은 어떤 위치에서 가장 가까운 샘플을 찾아도 가장 가까운 샘플은 다격형 안 샘플이지 옆 샐의 샘플은 가까운 샘플이 될 수 없다.

보로노이 다이어그램(voronoi diagram)

윈도우 안 어떤 샘플이 있는지 파악해야 하고 주어진 위치에서 가장 가까운 샘플까지의 거리를 계산해야함

현재 위치에서 가까운 거리에 있는 샘플들이 어디 있는지 파악할 때 보로노이 다이어 그램을 이용해서 근처 샘플을 쉽게 찾을 수 있다면

density 추정을 쉽게 할 수 있다.

추가적으로 근사화 작업 수행이 필요하다

 

이렇게 작업하면 연산시간이 빨라짐 k=3

분류작업이 빨라지는 이유는 보로노이 다이어그램을 수행했기 때문

보로노이 다이어그램을 수행하는데 연산량은 샘플 시간과 비례

1nn은 가능, k=3일 때 가능? => 다이어그램을 바꿔야함

 

위에서 본 것은 density estimation

아래는 classifier

3.3.3 k-최근접 이웃 분류기

k-nn추정과 동작이 흡사

x- test sample 윈도우 안에 k개의 샘플이 들어올 때 까지 확장,

윈도우의 한 변의 길이를 hx, d 차원이면 hx**d

x(분류하고 싶은 test sample) 샘플의 density를 아래와 같이 나타낼 수 있음

density likelyhood = (창안의 샘플 중 wi에 속하는 것의 개수) / 정해진 windw 크기*class 전체

(윈도우 안에 있는 i 번째 클래스의 샘플)을

(i번 째 클래스의 전체 샘플 개수)*(윈도우의 크기)로 나눠주게 되면 density 함수 모양 우도

사전 확률은 전체 개수분에 i 번째 class sample 개수

전체 average

위의 수식으로 베이스 정리를 적용하여 아래와 같이 표현할 수 있다.

베이스 저리 적용

데이터를 저장해놓으면 sample에서 가까운 다수의 class를 찾는다.

train 시간 = 0, test 시간은 샘플의 개수와 비례헨다

K-NN 분류기의 오류율 특성

파젠창과 KNN은 각 class에 속하는 sample개수가 많을 수록 적은 오류를 내고 분류를 잘 한다.

 

baysian 분류기 =< Enn =< baysiam 분류기 *2

 

이 값이 최대가 되는 퍼레미터가 무엇인가

θ는 샘플들의 평균과 (sample mean)

시그마는 sample variance

 

혼합 모델

두 개 이상의 서로 다른 확률 분포의 혼합으로 X를 모델링

요소 확률 분포로는 가우시안을 사용

1차원, d차원

 

분포의 모양은 공분산을 보면 알 수 있다.

σij 가 커질수록 늘어나는 모양을 갖는다. 또한 서로 상관관계가 없는 σij=0일 때, 동그란 모양을 갖게 된며 이때의 모양은 identity matrix에 가까워진다.(=x,y 축 분산이 같은 크기를 갖는다)

 

가우시언 혼합

가우시언 혼합
N개의 가우시언 normal density에 가중치 &pi;를 곱합

input data로 부터 π parameter 추정

 

EM 알고리즘

1. membership 파악 

- hard membership :  1,0의 형태로 표현

- soft membership : softmax 가중치 결정

2. 단위 density 추정

membership 변화가 없을 때까지 반복

하지만 local minima에 빠지면 적절하지 않은 해가 구해질 가능성이 있다.

샘플 xi가 관찰되었는데 그것이 j번째 가우시언에서 발생했을 확률은 사후확률로 간주할 수 있다. 사후확률 = (요소 가우시언)/(전체 가우시언)

 

 

EM 알고리즘 구체화 부분 좀 더 정리 필요(28~29)

 

M 단계 - 사후확률 / 4~10 mebership update

k-means 알고리즘은 covariance를 고려하지 않는다.

EM은 iteration이 필요해서 속도가 느림