k- 평균이 왜 세계 최소값을 제공하지 않습니까?


17

k- 평균 알고리즘은 전역 최소값이 아닌 로컬 최소값으로 만 수렴된다는 것을 읽었습니다. 왜 이런거야? 논리적으로 초기화가 최종 클러스터링에 영향을 줄 수있는 방법을 생각할 수 있으며 하위 최적 클러스터링의 가능성이 있지만 수학적으로 증명할 수있는 것은 찾지 못했습니다.

또한 k- 평균은 왜 반복 과정입니까? 목적 함수 wrt를 중심과 부분적으로 구별 할 수없고,이 함수를 최소화하는 중심을 찾기 위해 0과 동일시 할 수 있습니까? 최소 단계에 도달하기 위해 왜 경사 하강을 사용해야합니까?


4
스무스 함수에 여러 개의 극소값이있는 경우 필연적으로 각 부분이 임계점 (모든 부분 파생물이 사라지는 지점)이되므로 알고리즘은 정확하지만 일반적으로 쓸모가 없습니다. 솔루션의 수 (무한대까지도). 그러나 또 다른 문제가 있습니다 : k- 평균 목적 함수가 어디서나 차별화 될 수 있는지 어떻게 알 수 있습니까?
whuber

1
한 중심에 대해 목적 함수를 부분적으로 구별하면 다른 중심의 클러스터에있는 점이 미분에서 사라진다고 생각합니다. 따라서 우리가 얻을 수있는 중심은 특정 군집의 제곱 거리의 합만 최소화합니다.
Prateek Kulkarni

3
그것은 부분적이지만 실제로 행동을 설명하지는 않습니다. 더 중요한 것은 중심점에 점을 할당 하는 것이 k- 평균이 수행하는 작업의 큰 부분 이라는 사실입니다 . (할당이 이루어지면 중심은 쉽게 계산되고 남은 일은 없습니다.) 그 할당은 이산 적입니다 . 그것은 전혀 구별 할 수있는 것이 아닙니다. 또한 조합 적으로 복잡 합니다. k 개의 클러스터에 n 개의 점을 할당하는 방법이 있습니다. 실제로 그라디언트 디센트를 사용하여 중심을 찾을 필요는 없습니다. 영형(케이)케이
whuber

과제 부분을 수학적 형태로 직접 넣을 수는 없다는 데 동의합니다. 이 고립 된 단계에 의해서만 중심을 움직여 기능을 최소화 할 수 있습니다. 그라디언트 디센트를 보는 방법은 다음과 같습니다. 초기화가 잘못되어 로컬 미니 마 근처에 있으면 그라디언트 디센트가 로컬 미니 마로 드래그합니다. 초기화가 양호하여 전역 최소값 근처에 있으면 전역 최소값 아래로 끌어옵니다. 그러나 이러한 움직임이 클러스터 할당에 매핑되는 방식은 모호합니다.
Prateek Kulkarni

비분 화성이 과대 평가되었습니다 : Leon Bottou는 매우 큰 데이터 세트에서 확률 적 그라디언트 강하로 K-Means를 추정하는 데 약간의 성공을 거두었습니다. 비분 화성은 많은 데이터 포인트로 인해 많은 문제에서와 같이 큰 문제를 일으키지 않습니다. (예를 들어, 컨볼 루션 네트워크는 로컬로 구별 할 수 없지만 어쨌든 잘 작동하므로 정류 된 선형 전달 함수를 가진 많은 신경망 아키텍처도 마찬가지입니다). 여기서 진정한 이유는 다중 최소값입니다.
bayerj

답변:


10

k- 평균을 EM 알고리즘의 특수 버전으로 볼 수 있는데, 이는 약간 도움이 될 수 있습니다.

공분산 행렬이 모두에 대해 항등 행렬로 고정 된 각 군집에 대한 다변량 정규 분포를 추정한다고 가정하지만 변수 평균 여기서 i 는 군집 지수입니다. 모수 { μ i } 를 알고 있다면, 각 점 p 에 최대 우도 군집 (즉 , 최소 거리가 p 인 μ i) 을 지정할 수 있습니다 . 이 문제에 대한 EM 알고리즘은 k- 평균과 거의 같습니다.μii{μi}pμip

다른 방법으로 어떤 점이 어떤 군집에 속하는지 알면 최적의 추정 할 수 있습니다 . (글로벌 최적의 발견)이에 폐쇄 된 형태의 솔루션은 기본적으로 그 최대의 가능성 모델을 찾기 위해 말한다 { μ 내가 } 당신이 클러스터 포인트의 가능한 모든 할당을 통해 통합 할 수 있습니다. 30 개 지점과 2 개의 클러스터로도 약 10 억 개의 할당이 가능하기 때문에 계산하기가 불가능합니다.μi{μ^i}

대신 숨겨진 매개 변수 (또는 모델 매개 변수)를 추측하고 두 단계를 반복 할 수 있습니다 (로컬 최대로 끝날 가능성이 있음). 각 군집이 한 점에 대해 부분적으로 책임을 지도록 허용하면 EM으로 끝나고 최적의 군집 만 할당하면 k- 평균을 얻게됩니다.

따라서 요약 : 확률 적으로 보면 글로벌 솔루션이 있지만 가능한 모든 클러스터링을 반복해야합니다. 분명 목적 함수가있는 경우에도 마찬가지입니다. 모든 솔루션을 반복하고 목적 함수를 최대화 할 수 있지만 반복 횟수는 데이터 크기에 따라 기하 급수적으로 증가합니다.


잘 넣어! 이것을 답변으로 표시하겠습니다!
Prateek Kulkarni

4

이것은 해결하려는 문제입니다.

minxi=1nj=1kxij||picj||2subject to:j=1kxij=1icj is the centroid of cluster jxij{0,1}i,j

The binary variable xij indicates whether or not point i is assigned to cluster j. Symbols pi and cj denote the coordinates of ith point and centroid of jth cluster, respectively. They are both located in Rd, where d is the dimensionality of data points.

The first group of constraints say that each point should be assigned to exactly one cluster. The second group of constraints (which we have not defined mathematically) say that the coordinates of centroid of cluster j actually depend on values of xij variables. We can for example express this constraint as follows:

cj=ixijpijixij

However, instead of dealing with these non-linear constraints, in K-Means we (approximately) solve a different problem which has the same optimal solution as our original problem:

minxi=1nj=1kxij||piyj||2subject to:j=1kxij=1ixij{0,1}i,jyjRdj

Instead of minimizing the distance to centroids, we minimize the distance to just any set of points that will give a better solution. It turns out that these points are exactly the centroids.

Now to solve this problem, we iterate in steps 2-3 of this algorithm, until convergence:

  1. Assign some values to yj variables
  2. Fix the values for yj variables and find the optimal values for xij variables.
  3. Fix the values of xij variables, and find the optimal values for yj variables.

In each step the objective function improves (or remains the same when the algorithm converges), since the solution found in the previous step is in the search space of current step. However, since we are fixing some of the variables in each step, this is a local search procedure which does not guarantee optimality.

Luckily, the optimization problems in steps 2 and 3 can be solved in closed form. If we know xij (i.e. if we know to which cluster each point is assigned), the best values for yj variables are the centroids of clusters. If we know values for yj, obviously best choice for xij variables is to assign each point to the closest yj.


2

A simple example might help..

Let us define the set of points to be clustered as A = {1,2,3,4}.

Say you're trying to find 2 appropriate clusters for A (2-means). There are (at least) two different settings which satisfy the stationary condition of k-means.

Setting 1:

Center1 = 1, Cluster1 = {1}
Center2 = 3, Cluster1 = {2,3,4}

Here the objective is 2. As a matter of fact this is a saddle point (try center1 = 1 + epsilon and center1 = 1 - epsilon)

Setting 1:

Center1 = 1.5, Cluster1 = {1,2}
Center2 = 3.5, Cluster1 = {3,4}

here the objective is 1/4.

If k-means would be initialized as the first setting then it would be stuck.. and that's by no means a global minimum.

You can use a variant of previous example to create two different local minima. For A = {1,2,3,4,5}, setting cluster1={1,2} and cluster2={3,4,5} would results in the same objective value as cluster1={1,2,3} and cluster2={4,5}

Finally, what would happen if you choose

A = {1,2,3,4,6}
center1={2.5} cluster1={1,2,3,4} and 
center1={6} cluster1={6}

vs

center1={2} cluster1={1,2,3} and 
center1={5} cluster1={4,6}

?


0

[This was before @Peter answered]
After a small discussion (in the comments section), I feel I have to answer my own question.

I believe that when I partially differentiate the objective function with respect to one centroid, the points in the cluster of another centroid vanish in the derivative. So, the centroid we can get will minimize only the sum of squared distances of only the particular cluster.

@whuber adds:

That's partly it, but does not really explain the behavior. Of more import is the fact that the assignment of points to centroids is the big part of what k-means is doing. (Once the assignment is made, the centroids are easily computed and there's nothing left to do.) That assignment is discrete: it's not something that can be differentiated at all.

It would be awesome if anybody has more to add.


0

Everybody has explained everything, but I would like to add that if a sample data is not distributed as a Gaussian distribution then it can stuck to a local minima. In the K-means algorithm we are actually trying to get that.


Rather than Gaussian, I think you mean “unimodal”
Peter Leopold
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.