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번째 격자모형을 업데이트하는 과정의 수식 표현
- μ : 반복 횟수가 커지면 학습 속도를 줄이는 역할 (learning rate)
- λ : Winning node는 가장 크게, 학습데이터와 떨어진 격자벡터는 작게 업데이트 (가우시안 분포 활용)
- 괄호 안의 뺄셈
- 학습데이터 x와 격자벡터 간 차이
- 벡터의 덧/뺄셈 결과 역시 벡터 → 격자벡터가 업데이트되는 방향 결정
4. 특징
- 학습 시에 인접한 격자의 노드들까지 학습하여 군집 간 인접 구조가 유지되도록
- 만약 인접한 격자의 노드를 학습하지 않는다면 k-means의 minibatch 버전이 될 것
- k-means는 학습시에 각 군집끼리는 서로 독립적이기 때문
- 연속적인 레이어가 아닌 신경의 2차원 그리드로 구성
- 에러를 수정하는 방향으로 학습하는 것이 아닌 경쟁학습을 실행
- 경쟁학습이란 ? [= Competitive learning, Cooperative learning]
- 데이터에 따라 학습되는 부분이 다르게 정의된다는 의미
- 하나의 데이터에 대해 gradient가 발생했을 때 hidden layer의 모든 값에 영향을 주는 것이 아니라, 그 데이터와 가장 가까운 격자의 점과, 그 점의 이웃까지의 gradient만 업데이트 되는 것
- 경쟁학습이란 ? [= Competitive learning, Cooperative learning]
- 비지도학습을 다루는 알고리즘
- => 차원축소 + 군집화
5. 사용 범위
- 구조 탐색
- 데이터의 특징을 파악하여 유사 데이터를 군집화
- ex. 유사한 소비 성향을 가진 고객을 분류
- 차원 축소
- 구조 탐색을 위한 차원 축소
- 통상적으로 2차원으로 맵핑하여 그룹화된 결과를 표현
- 시각화
- 2차원으로 맵핑함으로써 유사한 패턴을 이해하기 쉽도록 함
728x90