수학 개념 지도
데이터와 학습(Data and learning)

k-평균 군집(K-means clustering)

점들을 k개의 무리로 나누되, 각 점과 그 무리 중심 사이 거리 제곱의 합이 작아지도록 '가장 가까운 중심에 배정'과 '중심을 평균⁠(mean)⁠으로 옮기기'를 되풀이하는 방법.

min⁡C1,…,Ck∑j=1k∑x⃗∈Cj∥x⃗−μ⃗j∥2,μ⃗j=1∣Cj∣∑x⃗∈Cjx⃗\min_{C_1,\dots,C_k} \sum_{j=1}^{k} \sum_{\vec x \in C_j} \lVert \vec x - \vec\mu_j \rVert^2, \qquad \vec\mu_j = \frac{1}{|C_j|}\sum_{\vec x\in C_j}\vec x
먼저 보면 좋은 개념벡터기댓값최적화

이름표가 없는 점 150개를 k = 개의 무리로 나누고 싶습니다. 큰 점은 무리의 중심 후보입니다. 로이드 알고리즘⁠(Lloyd's algorithm)⁠이라 불리는 방법은 두 단계를 번갈아 합니다. 배정: 모든 점을 가장 가까운 중심의 무리에 넣습니다. 갱신: 각 중심을 제 무리 점들의 평균 자리로 옮깁니다. 아래 막대로 한 단계씩 넘겨 보세요. 큰 점은 직접 끌 수도 있습니다.

무작위로 다시 시작 나쁜 시작

배경의 색 영역은 각 중심이 가장 가까운 곳, 곧 중심들의 보로노이 칸입니다.

이 방법이 줄이려는 값은 각 점에서 제 무리 중심까지 거리 제곱의 합, 지금 입니다. 두 단계 모두 이 값을 결코 키우지 않습니다. 배정에서는 점마다 더 가까운 중심을 고르니 줄거나 그대로이고, 갱신에서는 평균이 거리 제곱의 합을 가장 작게 만드는 자리라서 역시 줄거나 그대로입니다. 거리의 합이 아니라 거리 제곱의 합이어야 평균이 답이라는 점은 중앙값⁠(median)⁠과 평균을 비교하면 보입니다. 나눔이 바뀔 때마다 값이 실제로 줄어들므로(거리가 같은 중심 사이에서는 늘 같은 규칙으로 고른다면) 한 번 떠난 나눔으로는 돌아오지 않고, 점을 나누는 방법은 유한하므로 반복은 반드시 어딘가에서 멈춥니다.

단계마다 기록한 거리 제곱합. 청록 점선은 무작위로 스무 번 시작해 얻은 가장 좋은 값입니다.

그러나 멈춘 곳이 가장 좋은 답이라는 보장은 없습니다. '나쁜 시작'을 누르고 ▶로 끝까지 돌려 보세요. 중심 두 개가 왼쪽 무리를 반으로 쪼개 나눠 갖고, 나머지 하나가 오른쪽의 두 무리 사이에 끼인 채로 멈춥니다. 어느 한 단계로도 더 나아질 수 없는 국소 최솟값입니다. 가장 좋은 나눔을 찾는 문제는 일반적으로 계산이 매우 어려운 문제(NP-난해⁠, NP-hard⁠)로 알려져 있어서, 실제로는 여러 번 무작위로 시작해 가장 좋은 답을 고르거나, 이미 고른 중심에서 먼 점일수록 높은 확률⁠(probability)⁠로 다음 시작점으로 뽑는 k-means++(2007) 같은 방법을 씁니다. 이것도 최적화⁠(optimization)⁠에서 흔히 만나는 함정입니다. 손실을 줄이는 쪽으로만 조금씩 움직이는 경사 하강법⁠(gradient descent)⁠도 같은 국소 최솟값⁠(local minimum)⁠에 걸릴 수 있습니다.

배경의 영역은 중심들이 만드는 보로노이 다이어그램⁠(Voronoi diagram)⁠입니다. 보로노이 칸은 늘 볼록하므로(칸 안의 두 점을 잇는 선분이 칸을 벗어나지 않으므로) k-평균의 무리들은 볼록한 칸으로 서로 갈라지고, 초승달이나 고리 모양의 무리는 찾지 못합니다. 유클리드 거리⁠(Euclidean distance)⁠의 제곱을 쓰기 때문에 축의 단위에 민감하고 멀리 떨어진 이상값⁠(outlier)⁠에 끌려갑니다. 맨해튼 거리⁠(Manhattan distance)⁠의 합을 줄이도록 바꾸면 중심은 평균 대신 좌표별 중앙값이 되는데, 이것이 k-중앙값 군집입니다. k는 어떻게 고를까요? k를 키우면 거리 제곱합은 늘 줄어들어 k가 점의 개수이면 0이 되므로, k에 따른 거리 제곱합을 그려서 값이 크게 줄다가 완만해지는 꺾이는 곳(팔꿈치처럼 꺾인다고 엘보 방법⁠(elbow method)⁠이라 부릅니다)을 고르는 경우가 많습니다.

이 반복은 스튜어트 로이드가 1957년 벨 연구소에서 신호를 몇 단계의 값으로 나타내는(양자화⁠, quantization⁠) 문제로 적은 보고서에 나오며, 논문으로는 1982년에야 나왔습니다. 'k-means'라는 이름은 1967년 미국의 통계학자 제임스 매퀸이 붙였습니다.

이어지는 곳. 이름표를 보고 배우는 최근접 이웃 분류⁠(k-nearest neighbors classification)⁠와 달리, k-평균은 정답 이름표 없이 데이터만 보고 구조를 찾는 비지도 학습입니다(기계 학습⁠, machine learning⁠). 무리마다 정규분포⁠(normal distribution)⁠를 가정하고 점을 확률로 부드럽게 나눠 배정하면 가우스 혼합⁠(Gaussian mixture)⁠ 모형이 되고, 그때 무리마다의 거리는 마할라노비스 거리⁠(Mahalanobis distance)⁠가 됩니다. 거꾸로 무리들이 모두 폭이 같은 둥근 정규분포라고 두고 그 폭을 0으로 줄이면, 가우스 혼합을 맞추는 EM 알고리즘⁠(algorithm)⁠의 부드러운 배정이 가장 가까운 중심으로의 배정이 되어 k-평균으로 돌아갑니다. 사진의 수많은 색을 k가지로 줄이는 것도 k-평균이고, 옮기는 비용을 거리 제곱으로 잡고, 데이터를 점 k개짜리 분포로 가장 싸게 옮기는 최적 수송⁠(optimal transport)⁠ 문제로 보아도 같은 답이 나옵니다. 차원이 높은 자료는 주성분 분석⁠(principal component analysis)⁠으로 먼저 줄인 뒤 군집을 찾기도 합니다. 점들의 최소 신장 트리⁠(minimum spanning tree)⁠에서 가장 긴 변 k − 1개를 끊어 k개 무리로 나누는 방법(단일 연결 군집⁠, single-linkage clustering⁠)은 k-평균과 달리 초승달처럼 길쭉한 무리도 찾아냅니다. 입력 공간을 영역으로 나눠 영역마다 담당자를 두는 생각은 전문가 혼합⁠(mixture of experts)⁠의 라우터⁠(router)⁠와 닮았는데, 거기서는 중심까지의 거리 대신 학습된 벡터⁠(vector)⁠와의 내적⁠(dot product)⁠으로 담당 '전문가'를 고르고, 영역도 모델의 손실을 줄이도록 함께 학습됩니다.

이 개념이 나오는 큰 생각가장 좋은 것 고르기

이 개념이 나오는 긴 글

거리와 유사도 까마귀와 택시 까마귀는 곧장 날고 택시는 블록을 돌아간다. '얼마나 먼가'에는 답이 하나가 아니고, 어떤 거리를 고르느냐가 통계와 기계 학습의 답을 바꾼다. 라플라시안 라플라시안, 가장 많이 재사용된 식 이웃의 평균에서 나를 뺀다. 이 한 줄이 열의 법칙이고, 도박꾼이 이길 확률이고, 전기 회로와 나무 세기이고, 북의 음색이고, 사진의 윤곽선이고, 그래프를 가르는 칼이고, 잡음에서 그림을 빚는 확산 모델의 밑그림이다.

이 개념 위에 세워진 것

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념