본문 바로가기
Drawing (AI)/DeepLearning

Udemy - 딥러닝의 모든 것(SOM)-(1)

by 생각하는 이상훈 2023. 9. 12.
728x90

Self-Organizing Maps(자기 조직화 지도)

SOM은 차원을 축소하는데 이용이 된다. 아래의 그림은 SOM의 작동원리를 시각화한 것이다.

다차원 데이터셋을 입력받는데 그 데이터 셋 안에는 수많은 행과 열이 있다. 이때 아래와 같은 과정을 통해 데이터 셋의 차원을 줄인다.

수많은 행과 열의 차원을 줄여서 2차원의 평면 지도에 표현을 하는 것이다.


적용 방식

아래는 다양한 국가의 부유하고 가난한 정도를 SOM으로 나타낸 것이다. 아래 값들은 39개의 지표를 기준으로 만들어졌는데 39차원을 시각화하는 것은 불가능하지만 아래와 같이 SOM을 이용하면 가능하다. 좌 상단은 기근에서 자유로운 국가들이고 우 하단은 기근에 시달리는 국가들이다. 또한 색이 비슷한 국가들은 비슷한 성격을 띄는 국가들이다.

위의 정보는 세계지도에 표시해보면 아래와 같다.


K-Means

SOM을 잘 이해하기 위해 조금은 유사한 K-Means의 작동방식을 살펴보고 가자.

1단계: 클러스터 수 K개 선택해준다.

2단계: 임의의 K개 점, 중심을 선택한다. (반드시 데이터 세트에서 나올 필요는 없음)

3단계: 각 데이터 포인트를 가장 가까운 중심에 할당 K개의 클러스터를 형성한다. 

4단계: 각 클러스터의 새 중심을 계산하고 배치한다. 

5단계: 각 데이터 포인트를 가장 가까운 새 중심에 다시 할당한다. 재할당이 발생한 경우 STEP 4로 이동하고, 그렇지 않으면 FIN으로 이동한다.


SOM의 학습 방법

아래는 입력 벡터에 feature 3개, 출력 벡터에 9개의 노드가 있는 아주 간단한 SOM 모델의 예시이다.

입력 feature는 3차원인데 반해 출력 값은 언제나 2D인 것을 볼 수 있다.

이를 우리가 익숙한 NN방식으로 표현하면 아래와 같아진다.

위의 노드들은 아래와 같이 학습한다.

1. 각각의 노드에 weight를 기록해둔다.

2. 입력부에 input의 1행을 넣어주고 가장 가까운 노드를 찾는다. 해당 노드를 BMU(Best Matching Unit)이라 부른다.

3. BMU와 그 주변의 노드들의 weight를 입력값에 더 가깝게 바꾼다.

위는 위키피디아에서 묘사된 SOM의 training process이다.

위의 초록 점이 BMU이고 weight를 바꿔준다.

그 주변도 중심에 가까울 수록 더 무겁게 weight에 변화를 준다.

이는 다음 학습 시퀀스에서도 마찬가지인데 두개의 BMU가 경쟁을 할때는 아래와 같은 일이 발생한다.

각 지점에서 BMU까지의 거리를 보고 더 가까운 BMU의 영향을 더 많이 받는다.


진행과정을 좀 더 살펴보면 아래와 같다.

처음엔 넓은 범위의 node들을 끌어들인다.

그 다음번에는 조금 더 좁은 영역을 끌어당긴다.

결국 아래와 같은 map을 그릴 수 있음을 알 수 있다.

SOM의 특징을 정리해서 살펴보자.

 

1. SOM은 입력 셋의 topology(노드간의 연결성)를 유지한다.

2. SOM은 쉽게 발견되지 않는 관계성을 발견해준다.

3. SOM은 supervision이 없이 데이터를 분류한다.

4. 타겟 벡터가 없어서 역전파 과정이 존재하지 않는다.

5. 출력 node에는 수평 연결이 존재하지 않는다.


 

728x90

'Drawing (AI) > DeepLearning' 카테고리의 다른 글

Udemy - 딥러닝의 모든 것(볼츠만 머신) - (1)  (0) 2024.01.05
Udemy - 딥러닝의 모든 것(SOM)-(2)  (1) 2024.01.03
Udemy - 딥러닝의 모든 것(CNN 구축하기)  (0) 2023.09.05
GAN  (0) 2023.07.26
CNN for NLP  (0) 2023.07.22