본문 바로가기
파이토치

[딥러닝 파이토치 교과서] 클러스터링

by 나연하야 2023. 6. 24.

클러스터링

  • 특성이 비슷한 데이터끼리 묶어 주는 머신 러닝 기법
  • 머신 러닝 알고리즘에 딥러닝을 적용한다면 성능이 더 향상될 수 있음

 

K-평균 군집화

  • 클러스터 개수를 편리하게 결정할 수 있는 방법으로 클러스터 개수와 WCSS(Within Cluster Sum of Squares) 간 관계를 그래프로 표현한 후, WCSS 변경이 평평하게 하락하는 구간을 선택하는 것임
  • WCSS는 모든 클러스터에 있는 각 데이터가 중심까지의 거리를 제곱하여 합을 계산한 것(데이터가 n개 있고, 클러스터 개수가 n개일 때 WCSS는 0이 되지만 의미 없는 결과임) -> 엘보 그래프를 활용할 수 있음

학습 결과

  • center_shift: 각 클러스터의 중심 이동 거리
  • iteration: 반복 횟수
  • tol: 학습을 중지할 기준이 되는 값

 

가우시안 혼합 모델

  • 가우시안 혼합 모델은 가우시안 분포가 여러 개 혼합된 클러스터링 알고리즘
  • x_n이 주어졌을 때 여러 가우시안 분포에 포함될 확률을 계산하여 가장 높은 확률의 가우시안 분포에 속한다고 

 

자기 조직화 지도

  • 자기 조직화 지도는 신경 생리학적 시스템을 모델링한 것으로 입력 패턴에 대해 정확한 정답을 주지 않고 스스로 학습을 하여 클러스터링하는 알고리즘
  • 학습 과정 
    • 초기화: 모든 연결 가중치는 작은 임의의 값으로 초기화
    • 경쟁: 자기 조직화 지도는 경쟁 학습을 이용하여 입력층과 경쟁층을 연결
    • 협력: 승자 뉴런은 네트워크에서 가장 좋은 공간 위치를 차지하게 되며, 승자와 함께 학습할 이웃 크기를 정의
    • 적응: 승리한 뉴런의 가중치와 이웃 뉴런을 업데이트

som = MiniSom(16,16,64,sigma=1.0,learning_rate=0.5) # SOM에서 x축에 대한 차원/y축에 대한 차원, 입력 벡터 개수, 이웃 노드와의 인접 반경
som.random_weights_init(data)
print("SOM 초기화.")
som.train_random(data,10000) 
print("\n. SOM 진행 종료")

bone()
pcolor(som.distance_map().T) 
colorbar()

출처: 서지영(2022). 딥러닝 파이토치 교과서. p614-p635.