머신러닝

분포추정

Algorithmus 2022. 8. 28. 09:06

비지도학습의 문제로, 어떤 데이터 포인트(관측) 집합이 있을 때 이를 생성했을 것으로 추정되는 분포를 구하는 문제가 있다. 이를 위해 모수적, 비모수적 방법이 연구되었는데, 아주 중요한 키워드 들이므로 하나씩 그 요점을 살펴본다.

모수적(매개변수적) 방법

데이터 집합에 의해 결정되는 적은 수의 매개변수에 의해 확률 분포가 조절됨. 선택된 밀도 함수가 데이터를 만들어낸 분포를 표현하기에 적절하지 않은 모델이었을 수 있음

GMM (Gaussian Mixture Model): 몇 개(k)의 가우시안 분포(모수는 mu, sig2)의 혼합(정확히는 선형결합. 그 가중치는 혼합계수인 pi)을 통해 분포를 구하며, 모수 세트(mu, sig2, pi)를 구하는 방법은 MLE, EM 이 있다.

비모수적(비매개변수적) 방법

분포의 형태에 대해 적은 수의 가정만을 함

히스토그램(histogram): 계급 구간의 너비를 정해서 bin 안에 데이터를 쌓음. 장점은 한 번 계산하면 원 데이터 집합을 저장할 필요가 없고, 데이터 포인트가 순차적으로 입력될 때도 쉽게 적용 가능. 단점은 불연속면 생김과 고차원(D)의 경우 계급 구간의 숫자가 D에 대한 지수함수로 나타나 차원의 저주. 이를 극복하는 KDE, KNN 이 있음.
커널밀도추정(KDE, kernel density estimation): 각 데이터 포인트에 커널함수(주로 파젠 입방체 처럼 불연속면이 있는 것 보다는 가우시안 처럼 매끄러운 확률밀도함수)를 위치시키고 각자의 기여 정도를 전체 데이터 집합에 대해 합한 후 총 데이터 포인트 숫자(N)으로 나누어 정규화. 매개변수가 있기는 한데, 이는 평활상수(h)라 불리는, 결국 분포의 표준편차이다. h값은 가우시안 식에서 exp 앞의 분모와 exp 뒤의 분모에 모두 제곱 형태로 들어간다. h값이 너무 작으면 당연히 뾰족한 분포를 여러개 더하게 되므로 노이즈가 심한 모델을 얻게 되고, 반대로 h값이 너무 크면 너무 평활한 모델을 얻는다. 훈련단계에서 계산이 필요하지 않으나 데이터 포인트를 전부 저장했다가 계산할 필요가 있어 저장공간 및 계산에 부담이 있다(O(N)). 이는 KNN도 동일. 동 표준편차는 전체 데이터 포인트에 적용되므로 데이터의 밀도가 어떤 h에 해당하는 값보다 낮거나 높은 국소적 부분에 대해서는 원래 구조를 적절히 잡아내지 못한다. 이 문제를 해결하기 위해 KNN이 필요하다.
최근접 이웃 방법론(KNN, K-nearest neighbor): 최적의 h값은 데이터 공간상 위치에 대해 종속적이어야 한다는 문제의식에 따라 K개의 데이터로부터 밀도(V)를 찾는다. 포인트 x 주변의 작은 구를 잡아 이것이 정확히 K개의 데이터 포인트를 포함할 때 까지 반지름을 늘린다. 바로 K값이 평활화의 정도를 결정하는 것이다. 참고로 이는 분류문제(SL)에도 사용될 수 있다 (Bishop, 김형진 역, p141)
결국 밀도 추정식은 KDE, KNN 공히 p(x) = K / NV = 구역 내 점의 개수 / (전체 점의 수 * 구역의 부피) 인데, 전자는 V를 고정시키고 K를 구하고, 후자는 K를 고정하고 V를 구한다.

반응형

'머신러닝' 카테고리의 다른 글

Convex Optimization  (0) 2024.05.25
분류 평가  (0) 2022.08.28