이번 글에서는 MNIST 데이터셋이 무엇인지 알아보고,
MNIST 데이터셋을 클러스터링 하기 위해 다양한 기법들을 사용해보면서 각 클러스터링 기법들의 장단점을 보다 명확히 알아보는 시간을 가지도록 하겠다!
MNIST (Modified National Institute of Standards and Technology)
- 사용 목적: 손글씨 숫자 (0~9) 이미지를 분류하기 위한 데이터
- 형태: 이미지 --> 벡터화된 숫자데이터
- 크기: 총 70,000 (training: 60,000; test: 10,000)
- 차원: 748차원 벡터
- 레이블 수: 10개
- 형식: 벡터, 레이블 pair
1️⃣ k-Means
k-Means 알고리즘은 처음에 클러스터의 중심 위치를 임의로 설정한 후,
해당 중심 위치를 기준으로 클러스터를 재분할하고 다시 클러스터의 중심을 클러스터의 평균 위치로 조정하는 과정을 반복하는 방법이다.
계산 복잡도가 낮고, 대규모 데이터에 적합하다는 장점이 있지만, 클러스터 수 k를 미리 설정해야 하고, 초기 클러스터 위치에 민감하다는 단점이 있다.
2️⃣ DBSCAN
DBSCAN 알고리즘은 Density-Based Clustering 방법 중 하나로, 밀도 연결된 점들의 최대 집합으로 정의되는 클러스터링의 밀도 기반 개념에 의존하는 알고리즘이다.
임의 모양의 클러스터를 탐지 가능하고, 노이즈를 자동으로 제거한다는 장점이 있지만, 밀도 기준 파라미터(, MinPts)에 민감하고, 서로 다른 밀도를 가진 클러스터 구분이 어려우며, 고차원에서 성능이 저하된다는 단점이 있다.
3️⃣ AGNES
AGNES 알고리즘은 Hierarchical Clustering 방법 중 하나로, 각 데이터를 처음에는 하나의 클러스터로 보고, 서로 가장 가까운 클러스터를 합쳐가면서 클러스터링을 수행하는 방법이다.
덴드로그램으로 계층적 구조를 시각화할 수 있고, 다양한 거리 측정법이 적용 가능하다는 장점이 있지만, 계산 비용이 높고(), 노이즈에 취약하다는 단점이 있다.
4️⃣ Spectral Clustering
Spectral Clustering은 데이터 간의 유사도를 그래프 형태로 표현한 후, 이 그래프의 스펙트럼(고유값/고유벡터) 정보를 이용해 클러스터링하는 기법이다.
위 사진처럼 복잡한 비선형 클러스터도 잘 분리하고, 그래프 기반으로 다양한 유사도를 표현할 수 있다는 장점이 있지만, 고유값 분해의 비용이 크고(즉, 큰 데이터셋에는 부적합), 유사도 행렬과 파라미터 선택에 민감하다는 단점이 있다.
5️⃣ EM
EM(Expectation Maximization)은 Soft Clustering 알고리즘으로, 데이터가 여러 개의 정규분포로부터 생성되었다고 가정하여, 이를 확률적으로 추정하는 알고리즘이다.
자세한 방식은 아래 링크에 설명되어 있다.
장점으로는 클러스터링의 모양을 확률적으로 모델링한다는 장점이 있다. 또한, Hard Clustering이 아닌 Soft Clustering이 가능하다는 장점이 있는데, 이는 현실 세계를 더 잘 반영한다는 장점이 있다.
그러나 분포를 가정해야 하고, 이상치에 민감하다는 단점이 있다.
실험 결과
위 기법들을 MNIST 데이터셋에 적용해보며, 해당 데이터셋에서 가장 좋은 클러스터링 기법과 가장 문제가 있는 클러스터링 기법을 찾아보는 시간을 가졌다.
또한, 각 클러스터링 기법의 최적의 파라미터를 탐색하는 과정도 거쳤다. (k-Means의 k는 항상 10으로 고정)
1️⃣ k-Means
k-Means 알고리즘의 경우, MNIST 데이터셋에 맞게 k는 10으로 설정하여 실험해보았다.
Accuracy는 0.56으로 생각보다 정확하지 않았는데, PCA를 통해 시각화를 해보니, 데이터들이 명확하게 나뉘기보다는 겹쳐있는 부분이 많아 정확한 분류가 힘들었던 것 같다.
2️⃣ DBSCAN
DBSCAN 알고리즘의 경우 전부 다 똑같은 클러스터로 예측하는 결과를 보였다.
이에 따라 Accuracy 역시 0.11로 최악의 결과를 얻었다.
이는 시각화 결과와 같이 MNIST 데이터셋이 클러스터 간의 분리가 명확하지 않아 밀도 연결 가능한 점들의 집합으로 정의되는 DBSCAN의 특성상 모든 데이터를 하나의 클러스터로 취급하는 듯 보였다.
Eps 값을 굉장히 낮은 값을 주면 결과가 다르게 나오지 않을까 싶었는데, 차이는 없었다.
3️⃣ AGNES
AGNES 알고리즘은 0.65의 Accuracy로 가장 좋은 성능을 보였다.
아무래도 가장 가까운 두 클러스터를 계층적으로 병합해나가는 AGNES의 특성상, 구분이 잘 되지 않는 클러스터라고 해도 나머지 방법들보다 더 잘 분리해낼 수 있었던 것 같다.
4️⃣ Spectral Clustering
[ Accuracy 표 ]
ㅤ | kmeans | discretize | cluster_qr |
nearest_neighbors | 0.44 | 0.44 | 0.44 |
rbf | 0.41 | 0.43 | 0.40 |
Spectral Clustering은 파라미터에 따라 0.41에서 0.44 사이의 Accuracy를 보였으며, 그다지 높은 정확도는 아니였다.
비선형적인 클러스터 구조를 잘 처리할 수 있다는 장점에도 불구하고, MNIST 데이터셋에는 상대적으로 낮은 성능을 보였다.
5️⃣ EM
[ Accuracy 표 ]
full | tied | diag | spherical |
0.44 | 0.43 | 0.43 | 0.42 |
EM 알고리즘은 0.42에서 0.44 사이의 Accuracy를 나타냈다.
이는 앞선 Spectral Clustering과 유사한 수준으로, EM 알고리즘이 확률 모델을 가정하는 방식이 MNIST 데이터셋의 복잡성을 완전히 반영하지 못한다는 것을 보여준다.
결론
가장 좋아 보이는 클러스터링 기법
- AGNES 알고리즘 (Accuracy: 0.65)
- AGNES 알고리즘은 다른 알고리즘들에 비해 가장 높은 정확도를 보였다.
- 계층적 클러스터링의 특성상, 데이터의 전반적인 구조를 파악하는 데 유리했을 수 있다.
- 하지만, 여전히 완벽한 클러스터링을 제공하지 못하며, 계산 비용이 높다는 단점이 있다.
가장 문제가 있어 보이는 클러스터링 기법
- DBSCAN 알고리즘 (Accuracy: 0.11)
- DBSCAN 알고리즘은 가장 낮은 정확도를 기록하며, 사실상 클러스터링을 수행하지 못했다.
- 이는 알고리즘 자체가 클러스터 구분이 명확하지 않은 MNIST 데이터셋의 특성과 맞지 않음을 명확하게 보여준다.
- 밀도 기반 클러스터링의 한계가 드러난 사례로 볼 수 있다.