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 norm: a function that assigns a strictly positive length or patterns that are further apart. 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 ๐ฆ are normalized, so that they have the same length. – 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-ofsquare-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 ๊ตฐ์งํ ๊ตฐ์งํ clustering ๋ถ๋ฅ classification (a) (b) ๊ฐ ๋ฐ์ดํฐ์ ๋ํ ํด๋์ค ๋ผ๋ฒจ ๊ฐ ๋ฐ์ดํฐ์ ๋ํ ํด๋์ค ๋ผ๋ฒจ (๋ชฉํ ์ถ๋ ฅ๊ฐ) ์ ๋ณด๊ฐ ์ฃผ์ด์ง ์ ๋ณด๊ฐ ์ ๊ณต๋์ง ์์ ์ ์ฒด ๋ฐ์ดํฐ๋ง ์ฃผ์ด์ง. ๊ต์ฌ ํ์ต ๋น๊ต์ฌ ํ์ต 2) ๊ตฐ์งํ์ ์ ํ๋ณธ(๋ฐ์ดํฐ) ์๊ฐ ๋๋ฌด ๋ง์ ๊ฐ ๋ฐ์ดํฐ๋ง๋ค ์ผ์ผ์ด ํน์ ํด๋์ค๋ก ๋ผ๋ฒจ๋งํ๋ ๋น์ฉ์ด ๋ง์ ๊ฒฝ์ฐ์๋ ์ ์ฉ 3) ๊ตฐ์งํ๊ฐ ์ ์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ์ ์ (a) (b) ์ฅ๋ฉด ์์์ ๊ตฐ์งํ (์: ๋์, ํ๋, ์์ฐ ๋ฑ) ์์ ํ์์ ๊ตฐ์งํ (์์ ๋ถํ ) 4) K-means ๊ตฐ์งํ ์๊ณ ๋ฆฌ์ฆ ์ฃผ์ด์ง ๋ฐ์ดํฐ ์งํฉ์ K๊ฐ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ๋ ์๊ณ ๋ฆฌ์ฆ K๊ฐ์ ๊ฐ ๊ทธ๋ฃน์ ๋ํ๋ฒกํฐ: ํด๋น ๊ทธ๋ฃน ๋ด์ ์ํ๋ ๋ฐ์ดํฐ๋ค์ ํ๊ท โ ์์ โก ๋ฐ์ดํฐ ๊ทธ๋ฃนํ 4) K-means ๊ตฐ์งํ ์๊ณ ๋ฆฌ์ฆ โข ๋ํ๋ฒกํฐ ์์ โฃ ๋ฐ๋ณต ์ฌ๋ถ ๊ฒฐ์ 5) K-means ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ ๊ณผ์ โ 8 8 (a) initial state 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 1 2 3 4 5 6 7 8 0 0 (b) iteration = 1 (๋ฐ์ดํฐ ๊ทธ๋ฃนํ) 1 2 3 4 5 6 7 8 5) K-means ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ ๊ณผ์ โก 8 8 (c) iteration = 1 (๋ํ๋ฒกํฐ ์์ ) 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 1 2 3 4 5 6 7 8 (d) iteration = 2 0 0 1 2 3 4 5 6 7 8 5) K-means ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ ๊ณผ์ โข 8 8 (e) iteration = 3 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0 1 2 3 4 5 6 7 8 (f) iteration = 4 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๊ฐ์ ๊ฒฐ์ ํ๋ ํ๋ผ๋ฏธํฐ ๋ํ๋ฒกํฐ mi ๊ฐ ๋ฐ์ดํฐ์ ๋ํ ํด๋ฌ์คํฐ ๋ผ๋ฒจ rni 1. ์์์ ๊ฐ์ผ๋ก mi๊ฐ ๊ฒฐ์ ๋ ํ rni๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒฝ์ฐ J๊ฐ ์ต์ ๏ ๊ฐ ๋ฐ์ดํฐ๋ก๋ถํฐ ๊ฐ์ฅ ๊ฐ๊น์ด mi ๊น์ง ๊ฑฐ๋ฆฌ์ ํฉ์ด ๋ํด ์ง ์ ์๋๋ก rni ๊ฐ ๊ฒฐ์ = “K-means ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ๋ฃนํ ๊ณผ์ ” 2. rni ๊ฐ ๊ณ ์ ๋ ํ ๋ค์ mi ๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒฝ์ฐ i๋ฒ์งธ ํด๋ฌ์คํฐ์ ์ํ๋ ๋ฐ์ดํฐ ํฉ ์ mi์ ๋ํด ํธ๋ฏธ๋ถ (∂J/∂mi = 0) = “K-means ์๊ณ ๋ฆฌ์ฆ์ ๋ํ๋ฒกํฐ ์์ ์” i๋ฒ์งธ ํด๋ฌ์คํฐ์ ์ํ๋ ๋ฐ์ดํฐ ์ ๏จ ๋ชฉ์ ํจ์ J๋ฅผ ๊ทน์ํํ๋ ์ง์ญ ๊ทน์์ ์ ์ฐพ๋ ๊ฒ์ ๋ณด์ฅ 7) K-means ์๊ณ ๋ฆฌ์ฆ ํน์ฑ J iteration ๋ฐ๋ณตํ์์ ๋ฐ๋ฅธ J๊ฐ์ ๋ณํ 7) K-means ์๊ณ ๋ฆฌ์ฆ์ ํน์ฑ ์ด๊ธฐ๊ฐ์ ๋ํ ์์กด์ฑ ๋ฌธ์ ์ด๊ธฐ์ ์์๋ก ๊ฒฐ์ ํ๋ ๋ํ๋ฒกํฐ์ ๋ฐ๋ผ ์ต์ข ์ ์ผ๋ก ์ฐพ์์ง๋ ํด๊ฐ ๋ฌ๋ผ์ง 2๋ฒ ๋ฐ๋ณต ํ ์๋ ด (a) (b) 7๋ฒ ๋ฐ๋ณต ํ ์๋ ด (c) 7) K-means ์๊ณ ๋ฆฌ์ฆ์ ํน์ฑ ์ ์ ํ K๊ฐ์ ์ ์ ๋ฌธ์ ๋ฌธ์ ์์กด์ ๋ค์ํ K๊ฐ์ ๋ํด ํด๋ฌ์คํฐ๋งํ ๊ฒฐ๊ณผ๋ฅผ ์ ํ? ๊ณ์ธต์ ๊ตฐ์งํ ์๊ณ ๋ฆฌ์ฆ? ๊ณ์ธต์ ๊ตฐ์งํ ์๊ณ ๋ฆฌ์ฆ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ช ๊ฐ์ ๋ฐฐํ์ ์ธ ๊ทธ๋ฃน์ผ๋ก ๋๋๋ ๋์ , ํฐ ๊ตฐ์ง์ด ์์ ๊ตฐ์ง์ ํฌํจํ๋ ํํ๋ก ๊ณ์ธต์ ์ด๋ฃจ๋๋ก ๊ตฐ์งํ๋ฅผ ์ํํ์ฌ ๊ทธ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๋ ๋ฐฉ๋ฒ ๏ ๋ณํฉ์ ๋ฐฉ๋ฒ • ๊ฐ ๋ฐ์ดํฐ๊ฐ ํ๋์ ๊ตฐ์ง์ ์ด๋ฃจ๋ ์ต์ ๊ตฐ์ง์์ ์์ํ์ฌ ๊ฐ๊น์ด ๊ตฐ์ง๋ผ๋ฆฌ ๋จ๊ณ์ ์ผ๋ก ๋ณํฉํ์ฌ ๋ ํฐ ๊ตฐ์ง์ ๋ง๋ค์ด ๊ฐ๋ ๋ฐฉ๋ฒ • N-1๋ฒ์ ๋ณํฉ ๊ณผ์ ์ด ํ์ ๏ ๋ถํ ์ ๋ฐฉ๋ฒ • ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ํ๋์ ๊ตฐ์ง์ ์ํ๋ ์ต๋ ๊ตฐ์ง์์ ์์ํ์ฌ ํน์ ๊ธฐ์ค์ ๋ฐ๋ผ ๊ตฐ์ง๋ค์ ๋ถํ ํด ๊ฐ๋ ๋ฐฉ๋ฒ • ๊ฐ๋ฅํ ๋ถํ ๋ฐฉ๋ฒ์ ๊ฐ์ง์ 2N-1-1๊ฐ ๏ ๋น์ค์ฉ์ ๊ณ์ธต์ ์๊ณ ๋ฆฌ์ฆ์ ์ํ ๊ณผ์ ์ Dendrogram : ๊ณ์ธต์ ๊ตฐ์งํ ๊ฒฐ๊ณผ ์ ์ K=2 CAB ={A, B} CCD ={C, D} ๊ณ์ธต์ ์๊ณ ๋ฆฌ์ฆ์ ์ํ ๋จ๊ณ ๊ณ์ธต์ ๊ตฐ์งํ์ ํน์ฑ ๊ณ ๋ ค์ฌํญ 1: ๊ตฐ์ง๊ฐ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ ์ต๋จ์ฐ๊ฒฐ๋ฒ ์ต์ฅ์ฐ๊ฒฐ๋ฒ ์ค์ฌ์ฐ๊ฒฐ๋ฒ : ์์๋ผ์ด์ด ์ํฅ ์ค์ด๊ธฐ ์ํด ๊ฐ ๊ตฐ์ง์ ํ๊ท ๋ฒกํฐ ๊ตฌํ๊ณ ์ด๋ค๊ฐ์ ๊ฑฐ๋ฆฌ ์ด์ฉ ํ๊ท ์ฐ๊ฒฐ๋ฒ : ๋ชจ๋ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์์ ๋ํด ๊ฑฐ๋ฆฌ ๊ณ์ฐํ๊ณ , ์ด ๊ฐ์ ํ๊ท ์ด์ฉ Ward’s ๋ฐฉ๋ฒ : ๊ตฐ์ง์ด ๋ณํฉ๋๋ ๊ฒฝ์ฐ, ๊ฐ ๊ตฐ์ง์ ํฌ๊ธฐ(๋ถ์ฐ) ๊ณ ๋ ค 5) ๊ณ์ธต์ ๊ตฐ์งํ์ ํน์ฑ ๊ณ ๋ ค์ฌํญ 2: ์ ์ ํ ๊ตฐ์ง ๊ฐ์ ๊ฒฐ์ ๏ ๋ด๋๋ก๊ทธ๋จ ๋ถ์ ๋ด๋๋ก๊ทธ๋จ์์ ํด๋ฌ์คํฐ๊ฐ์ ๊ฑฐ๋ฆฌ๊ฐ ์ฆ๊ฐํ๋ ๋์ ํด๋ฌ์คํฐ์ ์๊ฐ ๋์ด๋์ง ์๊ณ ์ผ์ ๊ธฐ๊ฐ ๋์ ์ ์ง๋๋ ์ง์ ์ ์ฐพ์ =2 ํด๋ฌ์คํฐ MATLAB ์์ % ํ์ต๋ฐ์ดํฐ์ ์์ฑ ----------------------------------K=3์ธ ๊ฒฝ์ฐ 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={x1, x2, ..., xN} ๋ง์ผ๋ก ๋ฐ์ดํฐ ์งํฉ์ด ๊ตฌ์ฑ๋๋ ๊ฒฝ์ฐ์ ํ์ต ๏ง ๋ฐ์ดํฐ๋ง์ด๋(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 = {x1, x2, ..., xN} ์ K๊ฐ์ ๋ฒกํฐ ์งํฉ y = {y1, y2, ... ,yK}๋ก ๋งคํ(mapping) ๋๋ ๋ถ๋ฅ ๏ง ์ผ๋ฐ์ ์ผ๋ก N >> K ๏ง ๋งคํํจ์ : yi = c(xi), i = 1, …, K c(โ) : ์์ํ ์ฐ์ฐ์ ๏ง yi : 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 ๏ฅ d (x n , y i(n) ) n ๏ฝ1 ํ๊ท ์๊ณก์ ์ต์ํํ๋ ์ฝ๋ ๋ฒกํฐ ์งํฉ y = [y1, …, yK] ๋ฅผ ์ด๋ป๊ฒ ์ฐพ๋๊ฐ? : ์ธ์ฝ๋ฉ๋๋ ํ๋ณด ๋ฒกํฐ ์ N์ ํญ์ ์ฝ๋๋ฒกํฐ ์ 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) ๊ณผ์ . C 1 2 J MSE ๏ฝ ๏ฅ ๏ฅ x ๏ญ ๏ญ i where μ i ๏ฝ ๏ฅx i ๏ฝ1 x ๏ป ๏ท i N x ๏ป๏ท i ๏ง ํด๋ฌ์คํฐ์ ๊ฐ์๋ฅผ ๊ฒฐ์ ๏ง ์์์ ํด๋ฌ์คํฐ ์ค์ฌ์ ํ ๋นํ์ฌ ํด๋ฌ์คํฐ ์ด๊ธฐํ ๏ง ๊ฐ๊ฐ์ ํด๋ฌ์คํฐ์ ๋ํ์ฌ ํ๋ณธ ํ๊ท ์ ๊ตฌํจ ๏ง ๊ฐ๊ฐ์ ํ๋ณธ์ ๊ฐ์ฅ ๊ทผ์ ํ ํ๊ท ์ ๊ฐ๋ ํด๋ฌ์คํฐ๋ก ๋ค์ ํ ๋นํจ ๏ง ๋ชจ๋ ํ๋ณธ์ ๋ณํ๊ฐ ์์ผ๋ฉด ์๊ณ ๋ฆฌ์ฆ ์ค์ง ๋๋ 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