본문 바로가기
AI · 인공지능/알기쉬운 AI

[알기쉬운 AI - 27] 클러스터링 (Clustering)

by 두우우부 2020. 5. 7.
반응형

 

2회에 걸쳐 지도 학습에 대해 설명했지만, 이번에는 드디어 비(非)지도 학습입니다. 클러스터링 알고리즘으로 k평균법과 혼합 가우스 분포를 알아둡시다. 그리고 차원의 저주와 차원 감소의 한 방법인 주성분 분석(PCA : principal component analysis)에 대해서도 설명합니다.

 

 

클러스터링(Clustering)

분류(Classification)도 클러스터링(Clustering)도 둘 다 마찬가지로 "분류"를 하는 머신러닝 처리입니다. 클러스터링의 클러스터는 방을 의미하며 그룹핑과 동의어입니다. 분류가 지도 학습인데 반해 클러스터링은 비지도 학습이라는 차이는 이미 앞에서도 언급했지요(표 1). 도대체 비지도 학습으로 분류한다는 것은 무슨 뜻일까요? 몇 가지 알고리즘을 알아보겠습니다.

 

구분 학습방법 목적변수 장점
분류(Classification) 지도학습 있음

분류 정도가 높다

목적에 맞는 분류를 한다

클러스터링(Clustering) 비지도학습

없음

(분류수만 지정)

학습 데이터가 불필요

라벨링이 불필요

학습의 수고를 던다

예측 외의 결과를 획득

표 1 : 분류(Classification)와 클러스터링(Clustering)의 차이

 

(1) k평균법

지난번 '[26] 분류 (Classification)'에서 다항 분류인 k근접법(k Nearest Neighbor)을 배웠습니다. k평균법(k-means)도 비슷한 이름이라 혼동이 되지만, 이쪽은 비지도 학습인 클러스터링에 사용되는 알고리즘으로 전혀 별개의 것입니다. k평균법을 한마디로 말하면, "임시 그룹마다 그 집단의 중심을 구하고, 그 중심에 가까운 것으로 그룹을 재결성하는 것을 반복하는 분류법"입니다.

그림1 : k근접법

 

예를 들어, 오프라인 매장과 e커머스 사이트 양쪽 다 판매하는 소매점이 한 번이라도 구매이력이 있는 고객에 대하여 어느 쪽에서 더 잘 구매하고 있는지를 조사했습니다.  

 

① 초기 상태

조사 결과는 그림 2와 같습니다. 표 1에서와 같이 클러스터링은 목적 변수(고객 그룹명)는 지정하지 않고 단순히 분류 수만 지정하는 것이 묘미로, 예상치 못한 결과를 얻을 수 있습니다. 이번에는 분류 수 k = 4로 합니다. 네, 이전에 k근접법의 k는 샘플 데이터의 수 였는데, k평균법의 k는 분류 수이며 전혀 다른 것입니다.

 

그림2 : k평균법(조사 결과)

 

② 랜덤 하게 4가지로 분류 

사람이 보기엔 이런 식으로 분류하면 좋을 텐데...라고 생각하겠지만, 우선 랜덤으로 4종류(빨강, 파랑, 노랑, 녹색)로 배분합니다. 뿔뿔이 흩어져 있어서 망했다는 느낌이 들지만 이후의 과정을 반복해 가면서 좋은 느낌으로 그룹화되어가는 것입니다.

 

그림3 : k평균법 (초기 배분)

 

③ 중심을 추구

4개의 클러스터(빨강, 파랑, 노랑, 녹색)마다 중심을 구합니다. 이 중심이란, 각 데이터의 좌표의 평균값으로, 이로부터 'k평균법'이라고 부른다는 것을 알 수 있습니다.

 

그림4 : k평균법(중심을 구함)

 

④ 가장 가까운 중심의 색으로 물들다

각 데이터를 가장 가까운 중심의 색으로 갈아 치웠습니다. 이제 상당히 클러스터 같아지고 있어요.

 

그림5 : k 평균법(가장 가까운 중심의 색으로 물듬)

 

⑤ 중심이 움직이지 않을 때까지 ③과 ④를 반복합니다.

③ 으로 돌아가서 다시 중심을 계산합니다. 중심이 움직이지 않게 되면 클러스터링을 종료하는 것입니다. 이 결과에 그룹 이름을 지정하면, 예를 들어, 파란색: 로열 고객, 빨강: 인터넷 고객, 노랑: 점포 고객, 녹색: 랭크 업 고객이라는 느낌일까요? 먼저 그룹 이름(라벨)을 결정하여 분류하는 Classification에 비해 clustering은 그룹화한 후 적절한 그룹 이름을 붙이는 느낌입니다.

 

그림6 : k평균법(중심이 움직이지 않게 되면 끝)

 

k평균법은 사실 초기값(②의 할당)에 따라 결과가 달라집니다. 그래서 사실은 완전 무작위보다는 조금 목적을 갖고 초기값을 설정하거나 기본값을 여러번 바꿔 분석을 실시하는 등의 기능도 수행합니다. 또한 이 예제에서는 2차원이었지만, k근접법과 마찬가지로 3차원, 4차원으로 차원을 늘려가는 것도 가능합니다.

 

하드 클러스터링 및 소프트 클러스터링
이전 SVM의 설명에서도 하드 머신과 소프트 머신이라는 말이 나왔습니다만, 클러스터링에도 하드와 소프트의 구별이 있습니다. k평균법에서는 하나의 데이터는 하나의 클러스터로만 분류되는데, 이를 하드 클러스터링이라고 합니다. 한편, 혼합 가우스 모델처럼 하나의 데이터가 확률적으로 여러 클러스터에 속할 수 있는 방법을 소프트 클러스터링이라고 합니다.

 

(2) 혼합 가우스 분포

k평균법은 좌표의 근접을 기반으로 클러스터링 하기 때문에, 기본적으로 클러스터는 원(3차원이라면 공)이라는 생각에 기초하고 있습니다. 따라서 가늘고 긴 클러스터가 있는 경우에는 잘 분류할 수 없습니다. 또한 클러스터의 크기에 의존하지 않고 근접도 만으로 판정하기 때문에 클러스터의 크기가 많이 다른 경우에도 편차가 발생할 수 있습니다. 그래서 등장한 것이 혼합 가우스 분포 및 EM알고리즘입니다. 

 

가우스 혼합 모델(Gaussian mixture models)을 한마디로 말하면, "데이터가 여러 클러스터에 속해있을 가능성을 요인(차원)마다 겹쳐서 EM을 반복하는 k평균법의 개량 모델"입니다.

 

우선 말이 어렵습니다. 가우스 혼합 분포라니, 왠지 듣기만 해도 머리가 아득해지네요. 그렇다면 말에 현혹되지 않도록 명칭의 이해부터 시도해 봅시다. 우선, "가우스"입니다. 지난번 우도 함수 때 정규 분포가 나왔습니다만, 가우스 분포도 정규 분포였습니다. 정규 분포 = 확률 분포 이므로 확률을 이용한 방법임을 알 수 있습니다. 

 

그럼 "혼합"은 어떨까요. 이것은 여러 가우스 분포를 겹쳐서 결과를 평가하는 것을 의미합니다. 예를 들어, 위의 예에서 말하면, X값(매장에서 구입)으로부터 4개의 클러스터에 속해있을 가능성을 가우스로 구하고, Y값(E커머스에서 구매)도 마찬가지로 4개의 클러스터에 속할 확률을 구하고, 각각의 가우스 분포를 중첩(혼합)해 개별 데이터가 4개의 클러스터에 속할 확률을 구합니다. 

 

다음은 아래의 EM알고리즘을 반복하면 좋은 것입니다. k평균법을 이해한 후라서 그런지 혼합 가우스 분포도 그렇게까지 어렵지는 않았네요. 

 

EM 알고리즘
혼합 가우스 분포는 EM알고리즘에 기반한 클러스터링 기법입니다. EM은 Expectation(예상)과 Maximization(최대화)의 약자로, E와 M을 반복함으로써 최적의 클러스터로 분류합니다. 각 데이터가 어떤 클러스터에 속하는지의 확률을 계산하는 것이 E, 확률 분포를 혼합하여 k평균법의 중심에 해당하는 포인트를 찾는 것이 M입니다. k평균법에서는 중심이 움직이지 않게 되면 종료였지만, 혼합 가우스 분포에서는 우도의 변화를 보고 수렴 기준을 충족하거나 규정 횟수를 초과하면 종료하는 경우가 많습니다.

 

차원의 저주란?

1차원이 선, 2차원이 면, 3차원은 입체, 그리고 4차원의 미지의 세계... 도대체 차원이란 무엇입니까?  

 

예를 들어, 4차원 세계에서 온 괴수에게 배구공을 사다 달라고 합시다.(뜬금포 무엇?) 배구를 본 적이 없는 괴수이므로, 배구공의 특징을 전하고 판별해 줄 필요가 있습니다. 배구공의 특징점은 어떤 것이 있을까요?

 

하나는 둥근 구형이네요. 이제 럭비공을 사는 실수는 없을 것입니다. 그리고 크기가 지름 20cm 정도, 이제 야구나 테니스, 골프공과는 명확하게 구분할 수 있습니다. 하지만 이 두 가지 만으로는 아직 축구공이나 농구, 핸드볼, 볼링 등과 구분하기는 어려울 것입니다.  

 

색상은 화이트라는 것도 넣어 볼까요? 배구공은 흰색이라고 생각한다면, 그것은 옛날 사람입니다. 지금은 그림처럼 화려한 공이 주류라서 안 되겠네요(그림 6). 대신 무게가 가볍다(270g 정도)는 유효한 지표로, 농구(600g)나 축구(410g), 볼링 등과 구별할 수 있을 것입니다. 이 외에도, 압력, 탄력, 촉감, 경도, 모양 등 추가 정보를 덧붙이면 4차원 괴수는 확실하게 배구공을 사 올 것입니다. 

 

그림 7 : 배구공

 

이제 아셨죠. 이러한 하나하나의 특징점(설명 변수라고도 함)이 '차원'입니다. 4차원 이상이란 존재하지 않는 것처럼 생각되는 것은 어디까지나 공간의 차원을 이미지하고 있기 때문이고, 세상에는 차원이 얼마든지 있습니다. 감이 좋은 사람은 이미 아시겠지만, 이 AI의 차원은 BI(비즈니스 인텔리전스)의 차원입니다.

 

특징점(차원)을 늘릴수록 정확도가 높아집니다. 그러나 BI에서 차원을 많이 너무 많이 늘리면 데이터 량이 폭발하는 문제가 있다는 것을 기억하십시오. 그와 마찬가지로, 기계 학습에서도 고차원이 되면 인식의 조합은 기하급수적으로 늘어, 학습 데이터의 준비와 학습 난이도가 급격히 오릅니다. 그리고 최악의 경우, 과학습의 원인이 되어 버립니다. 네, 이런 곤란한 문제를 차원의 저주(Curse of Dimensionality)라고 부르는 것입니다.    

 

"물건의 특성을 나타내는 둥글다, 크다, 부드럽다, 하얗다 등의 척도를 차원이라고 합니다. 차원을 늘리면 늘릴수록 정확하게 그 물건의 특징을 표현할 수 있지만, 차원 수가 커지면 차원이 늘어날 때마다 폭발적으로 결합이 증가해 버리고, 그런 학습 데이터를 제공할 수 없게 되어 버린다. 이 문제를 차원의 저주라고 한다."  

 

차원 감소

그런데, 차원의 저주를 알았으니, 다음은 차원 감소(Dimensionality Reduction)입니다. 차원의 감소는 "목적(분류 및 회귀)을 달성 가능한 최소의 차원으로 하여 차원의 저주를 해결하는 것"입니다. 포인트는 "목적에 맞는 차원"이라는 개념입니다. 위의 배구공의 예로 말하면, 만약 사러 간 가게에 배구공 이외에 야구공과 럭비공 밖에 없으면, 무게, 색상 및 내압 탄력 등의 차원은 버리고 모양(둥근)과 크기(20cm)의 2차원(특징) 만으로도 배구공인지 아닌지 인식(목적을 달성)할 수 있습니다. 

 

차원 감소는 엄밀히 말하면, 특징 선택과 차원 감소의 2단계로 나눌 수 있습니다. 

 

(1) 특징 선택

가능한 특징 중에서 유용한 것들을 엄선하는 것이 특징 선택입니다. 예산을 세우는 방법과 마찬가지로 2방향의 선택 방법이 있습니다.

 

· 긍정법 : 유용한 특징점을 하나씩 선택하여 추가해 간다.
· 부정법 : 불필요한 특징점을 하나씩 삭제해 간다.

 

부정법은 Lasso 회귀와 의사 결정 트리 등의 기법에도 사용됩니다. Lasso 회귀는 극단적인 의견의 제거(노이즈 같은 차원을 무시), 의사 결정 트리는 의견이 나뉘지 않는 분기의 삭제(나뉘지 않는다면 없어도 상관없다)로 영향이 적은 차원을 찾습니다. 

 

(2) 차원 감소 

차원 감소는 Lasso 회귀가 의사 결정 트리 등을 사용하여 제거해도 영향이 없는 차원을 찾아, 이를 줄이는 방법이 간단하고 수월합니다. 이 외에 원래의 차원을 곱하여 새로운 차원을 생성하는 주성분 분석이라는 기법이 있습니다. 이에 대해 조금 알아봅시다. 

 

주성분 분석 (PCA : Principal Component Analysis) 

주성분 분석(PCA)은 데이터 전체의 분포를 유사한 새로운 지표로 합성하여 차원을 줄이는 방법입니다. 예를 들어, 무게, 압력, 탄력, 경도, 촉감의 5가지 요소를 섞어서 '푹신도', '매끈도'라는 2개의 지표로 잘 합성했다면, 5차원을 2차원으로 줄일 수 있습니다. 이 합성된 지표를 「주성분」이라고 합니다. 

 

주성분은 기여도에 따라 서열이 있습니다. 기여도는 원래 데이터(무게, 압력, 탄성, 경도, 촉감)에 대한 상관관계의 강도를 나타내는 값으로, 예를 들어 그림 8과 같은 기여도인 경우 '푹신푹신도'가 제3주성분 '미끌미끌도'가 제4주성분입니다. 제4주성분까지 기여도의 합계가 0.95입니다. 일반적으로 원본 데이터의 90% 정도로 근사(비슷)하면 충분하다고 하므로 차원은 여기까지가 OK라고 판단하는 기준이 됩니다. 

 

그림 9 : 주성분 분석

 

또한, '차원 감소'는 회귀와 분류, Q러닝 등과 같이 뭔가를 할 수 있는 알고리즘이 아니라 그 알고리즘을 지원하기 위한 기술입니다. 따라서 비지도 학습뿐만 아니라 지도 학습에서 학습 데이터의 생성시에도 활용할 수 있으므로 차원 추출 및 차원 감소 기법을 기억해두면 편리합니다.

반응형