Statistical clustering

Download Report

Transcript Statistical clustering

Introduction to Pattern Recognition for Human ICT Statistical clustering 2014. 11. 7 Hyunki Hong

Contents

• • • • •

Similarity measures Criterion functions Cluster validity k-means Hierarchical clustering algorithms

Non-parametric unsupervised learning

• • The concept of unsupervised learning – A collection of pattern recognition methods that

learn without a teacher

– Two types of clustering methods were mentioned: parametric and non-parametric Parametric unsupervised learning – Equivalent to density estimation with a mixture of (Gaussian) components – Through the use of EM, the identity of the component that originated each data point was treated as a missing feature.

Non-parametric unsupervised learning

• • Non-parametric unsupervised learning – No density functions are considered in these methods. – Instead, we are concerned with finding natural groupings (clusters) in a dataset. Non-parametric clustering involves three steps. – Defining a measure of (dis)similarity between examples – Defining a criterion function for clustering – Defining an algorithm to minimize (or maximize) the criterion function

Proximity measures

• Definition of metric – A measuring rule 𝑑 ( 𝑥 , 𝑦 ) for the distance between two vectors 𝑥 and 𝑦 is considered a metric if it satisfies the following properties. • – If the metric has the property 𝑑 ( 𝑎𝑥 , 𝑎𝑦 ) = | 𝑎 | 𝑑 ( 𝑥 , 𝑦 ) then it is called a norm and denoted 𝑑 ( 𝑥 , 𝑦 ) = || 𝑥 The most general form of distance − 𝑦 || metric is the power norm. – 𝑝 controls the weight placed on any dimension dissimilarity, whereas 𝑟 controls the distance growth of patterns that are further apart. norm: a function that assigns a strictly positive length or size to each vector in a vector space p-norm: a real number

p

≥ 1

• Most commonly used metrics are derived from the power norm. – Minkowski metric ( 𝐿 𝑘 norm) The choice of an appropriate value of 𝑘 depends on the amount of emphasis that you would like to give to the larger differences between dimensions. – Manhattan or city-block distance ( 𝐿 1 norm) When used with binary vectors, the L1 norm is known as the Hamming distance.

– Euclidean norm ( 𝐿 2 norm) - Chebyshev distance ( 𝐿 ∞ norm)

• Other metrics are also popular – Quadratic distance The Mahalanobis distance is a particular case of this distance.

– Canberra metric (for non-negative features) - Non-linear distance where 𝑇 is a threshold and 𝐻 is a distance 1. An appropriate choice for 𝐻 and 𝑇 for feature selection is that they should satisfy. 2. and that 𝑇 satisfies the unbiasedness and consistency conditions of the Parzen estimator.

• • The above distance metrics are measures of dissimilarity.

Some measures of similarity also exist.

– Inner product: The inner product is used when the vectors 𝑥 and normalized, so that they have the same length. 𝑦 are – Correlation coefficient - Tanimoto measure (for binary-valued vectors)

Criterion function for clustering

• Once a (dis)similarity measure has been determined, we need to define a criterion function to be optimized – The most widely used clustering criterion is the sum-of square-error.

1. This criterion measures how well the data set 𝑋 = { 𝑥 (1 , …, 𝑥 ( 𝑁 } is represented by the cluster centers 𝜇 = { 𝜇 (1 , …, 𝜇 ( 𝐶 } ( 𝐶 < 𝑁 ) 2. Clustering methods that use this criterion are called minimum variance. – Other criterion functions exist, based on the scatter matrices used in Linear Discriminant Analysis.

Cluster validity

• • The validity of the final cluster solution is highly subjective – This is in contrast with supervised training, where a clear objective function is known: Bayes risk – Note that the choice of (dis)similarity measure and criterion function will have a major impact on the final clustering produced by the algorithms. Example – Which are the meaningful clusters in these cases?

– How many clusters should be considered?

Iterative optimization

• • Once a criterion function has been defined, we must find a partition of the data set that minimizes the criterion.

– Exhaustive enumeration of all partitions, which guarantees the optimal solution, is unfeasible.

For example, a problem with 5 clusters and 100 examples yields 1067 partitionings The common approach is to proceed in an iterative fashion. - Find some reasonable initial partition and then - Move samples from one cluster to another in order to reduce the criterion function.

Iterative optimization

• • These iterative methods produce sub-optimal solutions but are computationally tractable.

We will consider two groups of iterative methods.

– Flat clustering algorithms 1. These algorithms produce a set of disjoint clusters.

2. Two algorithms are widely used: k-means and ISODATA.

– Hierarchical clustering algorithms: → build a hierarchy of clusters 1. The result is a hierarchy of nested clusters. 2. These algorithms can be broadly divided into agglomerative and divisive approaches.

The k-means algorithm

• Method – a simple clustering procedure that attempts to minimize the criterion function 𝐽𝑀𝑆𝐸 in an iterative fashion.

1. Define the number of clusters.

2. Initialize clusters by a. an arbitrary assignment of examples to clusters or b. an arbitrary set of cluster centers (some examples used as centers) 3. Compute the sample mean of each cluster.

4. Reassign each example to the cluster with the nearest mean 5. If the classification of all samples has not changed, stop, else go to step 3.

- a particular case of the EM algorithm for mixture models.

• Vector quantization – An application of k-means to signal processing and communication – Univariate signal values are usually quantized into a number of levels.

: Typically a power of 2 so the signal can be transmitted in binary format. – The same idea can be extended for multiple channels. 1. We could quantize each separate channel. 2. Instead, we can obtain a more efficient coding if we quantize the overall multidimensional vector by finding a number of multidimensional prototypes (cluster centers). 3. The set of cluster centers is called a codebook, and the problem of finding this codebook is normally solved using the k-means algorithm.

군집화 clsustering

분류와 군집화 K-means 군집화 알고리즘

K-means 알고리즘 K-means 알고리즘의 특성

계층적 군집화

계층적 군집화 알고리즘 계층적 군집화의 특성

매트랩을 이용한 군집화 실험

1) 분류 vs 군집화

(a) 분류 classification (b) 군집화 clustering 각 데이터에 대한 클래스 라벨 (목표 출력값) 정보가 주어짐 교사 학습 각 데이터에 대한 클래스 라벨 정보가 제공되지 않음

전체 데이터만 주어짐.

비교사 학습

2) 군집화의 예

표본(데이터) 수가 너무 많아 각 데이터마다 일일이 특정 클래스로 라벨링하는 비용이 많은 경우에도 유용

(a)

3) 군집화가 적용 가능한 데이터의 예

(b) 장면 영상의 군집화 (예: 도시, 하늘, 자연 등) 영상 화소의 군집화 (영상 분할)

4) K-means 군집화 알고리즘

주어진 데이터 집합을 K개의 그룹으로 묶는 알고리즘

K

개의 각 그룹의 대표벡터: 해당 그룹 내에 속하는 데이터들의 평균 ① 시작 ② 데이터 그룹핑

4) K-means 군집화 알고리즘

③ 대표벡터 수정 ④ 반복 여부 결정

5) K-means 알고리즘의 적용 과정 ①

3 2 5 4 1 0 0 8 (a) initial state 7 6 1 2 3 4 5 6 7 8 7 6 3 2 5 4 1 8 0 0 (b) iteration = 1 (데이터 그룹핑) 1 2 3 4 5 6 7 8

5) K-means 알고리즘의 적용 과정 ②

4 3 2 1 0 0 8 7 6 5 (c) iteration = 1 (대표벡터 수정) 1 2 3 4 5 6 7 8 (d) iteration = 2 7 6 5 4 3 2 1 8 0 0 1 2 3 4 5 6 7 8

5) K-means 알고리즘의 적용 과정 ③

8 (e) iteration = 3 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 (f) iteration = 4 7 6 5 4 3 2 1 8 0 0 1 2 3 4 5 6 7 8

6) K-means 알고리즘 특성

실제 문제에의 적용 시 고려해야 할 사항

1. 좋은 군집을 찾는 것이 확실히 보장되는가?

2. 초기 대표벡터 설정이 성능에 미치는 영향?

3. K값을 어떻게 선택할 것인가?

7) K-means 알고리즘 특성 반복 수행 과정의 의미

K-means 알고리즘의 목적함수 → 최소화하는 방향으로 반복 진행 각 클러스터의 분산을 모두 더한 값

J ↑

: 각 클러스터 내의 데이터들이 서로 뭉쳐있지 않음

J ↓

: 각 클러스터 내에서는 데이터들이 잘 결집되어 있음

7) K-means 알고리즘 특성

한 번 반복할 때마다

J

의 값이 감소하는 방향으로 학습이 진행

J

값을 결정하는 파라미터 대표벡터

m

i

각 데이터에 대한 클러스터 라벨

r ni

1. 임의의 값으로

m

i

가 결정된 후

r ni

를 결정하는 경우

J

값 최소  각 데이터로부터 가장 가까운

m

i

까지 거리의 합이 더해 질 수 있도록

r ni

값 결정 = “K-means 알고리즘의 그룹핑 과정” 2.

r ni

가 고정된 후 다시

m

i

를 결정하는 경우 을

m i

에 대해 편미분

i

번째 클러스터에 속하는 데이터 합 (∂J/∂

m i

= 0) = “K-means 알고리즘의 대표벡터 수정식”

i

번째 클러스터에 속하는 데이터 수  목적함수

J

를 극소화하는 지역 극소점을 찾는 것을 보장

7) K-means 알고리즘 특성

J

iteration 반복횟수에 따른

J

값의 변화

7) K-means 알고리즘의 특성 초기값에 대한 의존성 문제

초기에 임의로 결정하는 대표벡터에 따라 최종적으로 찾아지는 해가 달라짐 (a) 2번 반복 후 수렴 (b) (c) 7번 반복 후 수렴

7) K-means 알고리즘의 특성 적절한

K

값의 선정 문제 문제 의존적

다양한

K

값에 대해 클러스터링한 결과를 선택?

계층적 군집화 알고리즘?

계층적 군집화 알고리즘

전체 데이터를 몇 개의 배타적인 그룹으로 나누는 대신, 큰 군집이 작은 군집을 포함하는 형태로 계층을 이루도록 군집화를 수행하여 그 구조를 살펴보는 방법 •  병합적 방법 • 각 데이터가 하나의 군집을 이루는 최소 군집에서 시작하여 가까운 군집끼리 단계적으로 병합하여 더 큰 군집을 만들어 가는 방법 N-1번의 병합 과정이 필요  분할적 방법 • • 모든 데이터가 하나의 군집에 속하는 최대 군집에서 시작하여 특정 기준에 따라 군집들을 분할해 가는 방법 가능한 분할 방법의 가지수 2 N-1 -1개  비실용적

계층적 알고리즘의 수행 과정 예

Dendrogram : 계층적 군집화 결과 제시

K=2

C AB ={A, B} C CD ={C, D}

계층적 알고리즘의 수행 단계

계층적 군집화의 특성 고려사항 1: 군집간 거리를 계산하는 방법

최단연결법 최장연결법 중심연결법 : 아웃라이어 영향 줄이기 위해 각 군집의 평균 벡터 구하고 이들간의 거리 이용 평균연결법 : 모든 가능한 데이터 쌍에 대해 거리 계산하고, 이 값의 평균 이용 Ward’s 방법 : 군집이 병합되는 경우, 각 군집의 크기(분산) 고려

5) 계층적 군집화의 특성 고려사항 2: 적절한 군집 개수 결정

덴드로그램 분석

덴드로그램에서 클러스터간의 거리가 증가하는 동안 클러스터의 수가 늘어나지 않고 일정 기간 동안 유지되는 지점을 찾음 =2 클러스터

MATLAB 예제

X=[randn(50,2); randn(50,2)+repmat([3 0],50,1); randn(50,2)+repmat([0 3],50,1)]; save data7_8 X; % 대표벡터의 초기화 ---------------------------------- figure(1); plot(X(:,1),X(:,2),'*'); hold on; N=size(X,1); K=3; m=zeros(K,2); Xlabel=zeros(N,1); % 단계 1 -- 세 개의 대표벡터를 선택 while(i<=K) t=floor(rand*N); % 랜덤하게 데이터 선택 if ((X(t,:)~=m(1,:))& (X(t,:)~=m(2,:)) & (X(t,:)~=m(3,:))) m(i,:)=X(t,:); % 선택된 데이터를 대표벡터로 설정 plot(m(i,1), m(i,2),'ro'); % 대표벡터를 그래프에 표시 i=i+1; end end

MATLAB 예제

% K-means 반복 알고리즘의 시작 --------------------------- cmode=['gd'; 'b*'; 'mo']; % 클러스터별로 표시 기호 설정 (계속) for iteration=1:10 % 단계 4 (단계 2와 3 반복) figure(iteration+1); hold on; % 단계 2 -- 각 데이터를 가까운 클러스터에 할당 for i=1:N for j=1:K d(j)=(X(i,:)-m(j,:))*(X(i,:)-m(j,:))'; end [minv, Xlabel(i)]=min(d); plot(X(i,1),X(i,2),cmode(Xlabel(i),:)); % 할당된 클러스터를 표시 end % 단계 3 -- 대표벡터를 다시 계산 oldm=m; for i=1:K I=find(Xlabel==i); m(i,:)=mean(X(I,:)); end for i=1:3 plot(m(i,1), m(i,2),'ks'); % 수정된 대표벡터를 표시 end if sum(sum(oldm-m))<10^3 iteration=101; end % 반복 완료 조건 검사 end % 단계 4 (단계 2와 3 반복)

K-means의 군집화 과정

초기 대표벡터 대표벡터와의 거리 계산을 통해 각 데이터가 그룹핑된 결과 대표벡터의 이동(수정) 방 향

4) K값의 변화에 따른 군집화 결과

(a) Data set (b) K=2 (c) K=3 (d) K=5

01_교사와 비교사 학습 02_비교사 학습의 두 가지 접근법 03_벡터 양자화와 클러스터링 04_최적화 규준 05_k-means 알고리즘과 EM 알고리즘 06_비균일 이진 분할 07_k-means와 이진 분할의 비교와 개선: LBG 알고리즘

01_

교사와 비교사 학습

 교사 학습 (supervised training)  관측된 데이터가 특징 벡터

x

와 관측값이 속해있는 클래스 {

x

,

ω

} 으로 구성되는 경우

ω

로 이루어진 변수 쌍  비교사 학습 (unsupervised training)  클래스 라벨

ω

i

가 주어지지 않고 특징 벡터 구성되는 경우의 학습

x={x 1 , x 2 , ..., x N }

만으로 데이터 집합이  데이터마이닝 (data mining) 의 클러스터링 : 비교사 학습 통해 데이터를 유사한 것끼리 모음 . 정해진 기준에 맞는 데이터끼리 분류 및 체계화 하는 과정 : 데이터 간의 패턴, 규칙, 관계 등의 정보를 추정하여 관계를 체계화, 정량화하는 과정 예) 벡터 양자화 (Vector Quantization) 혹은 클러스터링(Clustering) 등  교사학습에 비해서 성능이 제한될 수 있으나 데이터의 분석 및 처리 과정이 상대적으로 단순해지는 경향이 있음 .

40

01_

교사와 비교사 학습

 비교사 학습의 이용  표본의 수가 너무 많은 경우  각 표본마다 일일이 라벨링하는 것이 비용이 많이 드는 복잡한 과정일 경우  원천적으로 데이터에 대한 클래스 라벨 등과 같은 정보를 미리 알 수 없는 경우  가장 일반적인 경우  많은 데이터 집합들을 작은 프로토타입 ( 원형 ) 집합으로 분류할 수 있는 경우  Ex: K-NNR(The K-Nearest Neighbor Rule)

41

02_

비교사 학습의 두가지 접근법

 모수적 혼합 모델 (Parametric mixture model) 구축 통한 방법  다수의 확률밀도함수를 이용하여 주어진 클래스의 데이터를 모델링하는 방법  모수적 혼합 모델  비모수적 방법 (non-parametric method)  주어진 클래스의 데이터에 대한 가정 없이 , 데이터를 나눔 . 클러스터링  통계적 모수를 이용하지 않고 학습 데이터의 모델을 구성하는 방법 (k-means, LBG 알고리즘 등 )

42

03_

벡터 양자화와 클러스터링

 벡터 양자화 (= 클러스터링 ) 

N

개의 특징 벡터 집합

x = {x 1 , x 2 , ..., x

N

}

매핑 (mapping) 또는 분류 을

K

개의 벡터 집합

y = {y 1 , y 2 , ... ,y

K

}

로  일반적으로

N >> K

 매핑함수 :

y

i = c

(x i ), i = 1, …, K c(∙) :

양자화 연산자 

y

i

: code vectors = code words = cluster  일반적으로는 유한 집합의 한 원소  집합

y

: 코드북 (codebook)  코드북 크기 : 코드 벡터의 수 

N

개의 특징 벡터 공간 x 를

K

개의 영역 ( 클러스터 ) 으로 분할하고 , 각 클러스터를 코드 벡터와 연관 → 코드 벡터는 각 영역의 중심에 위치

43

03_

벡터 양자화와 클러스터링

 벡터 양자화 ( 클러스터링 )  양자화 오차 , 왜곡 (distortion)  벡터 집합

x 가 y 로 매핑되면서 필연적으로 발생되는 오차

즉 , x 와 y 사이의 차이값 .

특징 벡터들간의 거리 척도 (distance measure), 측량 (metric) :

d

(x, y)

 클러스터링 방법에 맞는 양자화 오차가 별도로 정의됨 .

 예 ) 각각의 데이터와 데이터 집합 중심점 사이의 거리

44

45

04_

최적화 규준

 양자화 수행시 일반적인 왜곡 척도  유클리드 거리 → 집합 내의 멤버 간 거리의 합을 최소화하는 점 계산에 활용  중심평균  유클리드 거리 이용하는 경우 , 코드 벡터의 평균값이 중심값으로 이용됨 .

N

개의 벡터에서 평균왜곡

D

 1

N n N

  1

d

(

x

n

,

y

i

(

n

) ) 평균왜곡을 최소화하는 코드 벡터 집합 : 인코딩되는 후보 벡터 수 관계는 비선형적

N

y

= [

y 1

, …,

y

K

] 은 항상 코드벡터 수 → 반복적 최적화 과정 필요 를 어떻게 찾는가 ?

K

보다 훨씬 많고 ,

D

와 코드 벡터간

46

04_

최적화 규준

 벡터 양자화 (VQ) 의 세가지 문제

47

04_

최적화 규준

 대표적인 클러스터링 알고리즘  EM 알고리즘 (Expectation – Maximization)

:

문제 속에 정보가 숨어 있는 경우에서 최적해

?

 1) 주어진 데이터에서 추정값 계산 (Expectation)  2) 추정된 데이터에 대한 오차값 최적화 (Maximization)  오차가 지역적인 최적값에 수렴할 때까지 1) 과 2) 를 반복 (iteration)  초기값 선택이 최적화 성공의 결정적인 요소가 됨 .  K-Means 알고리즘  가장 간단한 형태의 EM 알고리즘  1) 임의의 초기값 중심으로 클러스터를 선택하여 결정  2) 구성된 클러스터 내에서 벡터 집합의 중심점 계산  양자화 오차가 수렴할 때까지 1) 과 2) 를 반복

48

04_

최적화 규준

 k-means 알고리즘   다음과 같이 주어지는 criterion function 을 반복적으로 최소화시키는 군집화 (clustring) 과정 .

J MSE 

i C

   1

x

 

i x

 

i

2 where

μ i

 1

N x

  

i x

클러스터의 개수를 결정  임의의 클러스터 중심을 할당하여 클러스터 초기화  각각의 클러스터에 대하여 표본 평균을 구함  각각의 표본을 가장 근접한 평균을 갖는 클러스터로 다시 할당함  모든 표본에 변화가 없으면 알고리즘 중지 또는 3 번 단계로 이동하여 계속 수행

49

05_k-means

알고리즘과

EM

알고리즘

 K-Means 알고리즘

50

05_k-means

알고리즘과

EM

알고리즘

 K-Means 알고리즘의 장 / 단점  각 클러스터에 할당되는 중심 벡터의 초기값에 매우 민감함 .

 생성되는 코드 북의 신뢰도가 비교적 높지만 수행시간이 길 수 있음 .

 초기에 주어지는

K

개의 코드 벡터 모두에 대한 왜곡값을 계산해야 함 .

51

06_

비균일 이진 분할

(Non-Uniform Binary Split)

비균일 이진 분할 (Non-Uniform Binary Split)

 데이터 집합을 순차적으로 클러스터와 부클러스터 (sub-cluster) 로 분할  초기에 데이터 집합을 두 개로 나누며 , K 개가 생성될 때까지 반으로의 분할과정 반복  계층적 분할 기법  이진분할기법 (binary split)  클러스터 중 왜곡 (distortion) 값이 가장 큰 클러스터만 선택해서 분할 

균일 이진분할

은 왜곡값에 관계없이 무조건 모든 클러스터를 분할하는 기법 .

52

06_

비균일 이진 분할

  이진 분할 (binary split) 알고리즘 수행 절차 두 개의 클러스터부터 시작해서 K 개의 클러스터 집합이 생성될 때까지 수행 각 클러스터 내의 데이터 포인트와 중심점까지의 거리의 평균이 가장 큰

y

i

c

(

X a

),

y

k

 1 

c

(

X b

) (정확도는 떨어지지만 수행시간은 훨씬 짧음.)

53

06_

비균일 이진 분할

(Non-Uniform Binary Split)

비균일 이진 분할 (Non-Uniform Binary Split)

 클러스터 중 왜곡 (distortion) 값이 가장 큰 클러스터만 선택해서 분할  log K 번의 이진 검색 통해 가장 가까운 중심 찾음 .  즉 , k-means 보다 수행속도가 빠름 .  클러스터 간 경계 (boundary) 가 일단 결정되면 클러스터 경계가 바뀌지 않음 .  k-means 의 경우 매번 수행 시 갱신됨 .

 수행 시간은 빠르지만 생성되는 코드북의 신뢰도가 다소 낮아지는 단점이 있음 . k-mans 통해 클러스터 찾고 두 클래스의 중심을 연결하며 , 이 직선을 수직 이등분하는 선분이 최적 경계 . 각 클러스터 중심에 가까운 점을 해당 클러스터에 포함

54

06_

비균일 이진 분할 55

07_k-means

와 이진 분리의 비교와 개선

: LBG

알고리즘

 이진 분리 결과를 k-means 의 초기값으로 이용하는 기법  이진 분리로 구한 중심을 k-means 초기값으로 이용하면 표준 k-means 의 경우보다 성능이 좀 더 향상됨 .  이진 분리와 k-means 가 결합된 알고리즘 : LBG 알고리즘

56

08_ MATLAB

실습 57

08_ MATLAB

실습 58