Data mining

[데이터 마이닝] 자기조직화지도(Self-Organizing Map, SOM) - 기본 개념

여뉴누 2023. 7. 1. 21:19
728x90
개인공부

1. 정의

: 고차원의 벡터를 2차원의 공간의 격자로 표현할 수 있도록 하는 인공신경망의 한 종류

2. 아키텍처

  • 입력층 & 경쟁층 두 개의 층으로 구성
  • 저차원 격자 하나에는 위치적 유사도를 고려해 여러 개의 입력 벡터가 속할 가능성 있음

3. 학습 원리 ( 과정 ) 

  • 랜덤으로 초기 격자모형을 초기화
  • 학습 데이터를 하나씩 추가하며 격자모형의 위치가 데이터의 분포와 비슷해지도록 업데이트

< 업데이트 과정 > 

  • 하얀색의 점이 학습 데이터라고 할 때
  • 격자점 중 데이터와 가장 가까운 점(= Winning node)과 그 주변 점들의 gradient를 업데이트 (= 경쟁학습)
  • 이때, Winning node가 가장 많이 업데이트 & 주변 점들은 Winning node보다 덜 업데이트
  • t시점의 j번째 격자모형을 업데이트하는 과정의 수식 표현

출처 : ratsgo's blog

  • μ : 반복 횟수가 커지면 학습 속도를 줄이는 역할 (learning rate)
  • λ : Winning node는 가장 크게, 학습데이터와 떨어진 격자벡터는 작게 업데이트 (가우시안 분포 활용)
  • 괄호 안의 뺄셈
    • 학습데이터 x와 격자벡터 간 차이
    • 벡터의 덧/뺄셈 결과 역시 벡터  격자벡터가 업데이트되는 방향 결정

4. 특징

  • 학습 시에 인접한 격자의 노드들까지 학습하여 군집 간 인접 구조가 유지되도록
    • 만약 인접한 격자의 노드를 학습하지 않는다면 k-means의 minibatch 버전이 될 것
    • k-means는 학습시에 각 군집끼리는 서로 독립적이기 때문
  • 연속적인 레이어가 아닌 신경의 2차원 그리드로 구성
  • 에러를 수정하는 방향으로 학습하는 것이 아닌 경쟁학습을 실행
    • 경쟁학습이란 ? [= Competitive learning, Cooperative learning]
      • 데이터에 따라 학습되는 부분이 다르게 정의된다는 의미 
      • 하나의 데이터에 대해 gradient가 발생했을 때 hidden layer의 모든 값에 영향을 주는 것이 아니라, 그 데이터와 가장 가까운 격자의 점과, 그 점의 이웃까지의 gradient만 업데이트 되는 것 
  • 비지도학습을 다루는 알고리즘
  • => 차원축소 + 군집화

5. 사용 범위

  • 구조 탐색
    • 데이터의 특징을 파악하여 유사 데이터를 군집화
    • ex. 유사한 소비 성향을 가진 고객을 분류
  • 차원 축소
    • 구조 탐색을 위한 차원 축소
    • 통상적으로 2차원으로 맵핑하여 그룹화된 결과를 표현
  • 시각화
    • 2차원으로 맵핑함으로써 유사한 패턴을 이해하기 쉽도록 함
728x90