Self-organizing map (자기조직화지도)
- 데이터 내 위상(topology)을 보존하면서, 고차원의 input space를 단순한 저차원의 output space로 변환
- 인공신경망 구조이며, error-correction learning이 아닌 competitive learning 방법 채택
- 각 output 노드의 weight vector와 이웃 노드 weight vector 간 거리의 평균을 표현한 U-matrix로 시각화
S.O.M 알고리즘은, 1980년대 알고리즘을 처음 발표한 Teuvo Kohonen 교수의 이름을 따서,
Kohonen map이라고 부르기도 한다.
Kohonen's S.O.M 알고리즘 수행 단계
1. Normalization
- 스케일이 큰 설명변수에 치우쳐 맵이 생성되지 않도록 설명변수들을 스케일링한다.
2. Initialization
- 다음과 같은 Parameter들의 초기값을 설정해준다.
- map size, weight vectors, learning rate function, neighborhood function, radius(반경) of neighborhood, the max number of iterations
3. Sampling
- training 데이터셋에서 input vector \(x(t)\)를 랜덤하게 샘플링한다.
4. Similarity Matching
- 샘플링된 input vector \(x(t)\)와 output 노드 weight vector 간 Euclidean 거리를 계산하여 winning 노드를 도출한다.
5. Weight Updating
- 도출된 winning 노드와 이웃 노드의 weight vector 값을 업데이트한다
6. Parameter Adjustment
- 미리 정의한 함수에 따라 radius of neighborhood, learning rate가 각각 조정된다.
7. Continuation
- 업데이트된 weights 값의 변화가 일정 수준을 넘어가지 않거나, 반복횟수에 도달할 때까지 3~6단계를 반복하여 수행한다.
평가지표
1. QE (Quantization Error)
- 샘플링된 각 input vector와 BMU(Best Matching Unit)간 Euclidean 거리의 평균값을 의미하며, QE 값이 작을수록 맵이 데이터에 잘 fitting되었다고 평가된다.
- output 노드의 개수가 많아질수록(맵 사이즈가 커질수록), input sample들이 맵에 더 잘 분포되어 QE값이 감소한다.
- QE 지표는 데이터 내 위상 관계(topological relations)와 무관하다.
⎻ T : input sample 개수
⎻ t : iteration index
⎻ \(x(t)\) : t번째 iteration에서의 input sample vector
⎻ \(w_c(t)\) : t번째 iteration의 input sample vector의 winning node vector
2. TE (Topographic Error)
- **특정 조건을 만족하는 데이터 벡터의 개수의 비율을 의미하며, TE 값이 작을수록 데이터 위상이 잘 보존되었다고 평가된다.
- Topology preservation(projection quality)을 파악하기 위해 자주 사용되는 지표이다.
- 맵에서 second-BMU가 BMU 가까이 있을수록 좋은 위상을 가지고 있다고 평가한다.
⎻ T : input sample 개수
⎻ t : iteration index
- \(x(t)\) : t번째 iteration에서의 input sample vector
** t번째 iteration의 input sample vector의 BMU와 second-BMU가 인접하지 않으면 u(x(t))=1,
반대의 경우(BMU와 second-BMU가 인접하는 경우), u(x(t))=0
참고자료
샘플 데이터로 Kohonen 알고리즘을 설명하고 있어 이해하기 쉽다.
Umut Asan (2012), An Introduction to Self-Organizing Maps, Computational Intelligence Systems in Industrial Engineering: with Recent Theory and Applications (pp.299-319)
MiniSom python 패키지 실습
2021.05.12 - [머신러닝] - S.O.M 알고리즘 (2) - MiniSom
'머신러닝' 카테고리의 다른 글
[머신러닝] GMM(Gaussian Mixture Model) 군집화 (3) | 2021.08.19 |
---|---|
[머신러닝] 클러스터링 평가지표 - 실루엣 계수(2) (0) | 2021.07.21 |
[머신러닝] 클러스터링 평가지표 - 실루엣 계수 (1) (3) | 2021.06.15 |
[머신러닝] K-Means 군집화 (4) | 2021.05.30 |
[머신러닝] S.O.M 알고리즘 (2) - MiniSom (3) | 2021.05.12 |
댓글