이전 글에서 인공신경망(ANN; Artificial Neural Network)을 공부하면서 입력받은 데이터에 따라 은닉층(Hidden layer)의 가중치를 조정하여 학습하는 인공지능 학습에 대해 살펴본 바 있다. 자기 조직화 지도(SOM; Self Organizing Map) 역시 이와 같이 데이터에 맞춰 각 노드가 가중치를 조정하는 한 방법인데, 오늘은 이에 대해서 공부해보았다.
여러 방법론을 공부하다 보면 '지도(Map)'라는 단어를 만나는 경우가 꽤 많은데, 보통 방법론에서 지도라는 단어를 말할 때는 X축과 Y축의 2차원 도식으로 표현이 가능한 경우가 많다. '사용자 여정 지도'나 '사용자 행동 지도'와 같은 경우가 그러하다. 이 '자기 조직화 지도' 역시도 마찬가지인데, 매우 고차원적인 특징(Feature)을 가진 데이터를 저차원화시키면서 그 저차원화된 데이터의 분포에 노드 망(Node Network)을 맞춰가는 식으로 동작한다. 데이터가 저차원화되어 분포되는 과정에서 데이터 간의 유사도에 따라 군집(Cluster)을 이루는 특징이 있고, 그 데이터의 덩어리 형태에 노드 망이 맞춰지면서 각 노드가 가진 가중치가 조정되는, 인공신경망에서 본 뉴런(Neuron)의 학습이라는 점도 가지고 있는 것이 특징이다.
이 가중치의 조정은 노드와 데이터 간의 '거리'에 따라 달라지는데, 데이터와 가까운 노드일수록 더 많이 조정되어 더 큰 폭으로 데이터에 가까워지고, 먼 노드는 적게 조정되어 작은 폭으로 데이터에 맞춰지는 것이 특징이다. 이 데이터와 가까워 큰 폭으로 조정되는 노드를 승자 노드(winning node)라고 하는데, 이 조정에 따라 맵의 전체 형태는 데이터의 분포와 유사해지게 된다.
이러한 과정을 거치기 때문에 SOM 방법론에서 '거리'의 개념이 중요한데, 주로 이 거리의 계산법으로 채택되는 것은 유클리드 거리(Euclidean Distance)이다. 이름 때문에 조금 어렵게 느껴질 수 있지만 사실 단순히 설명하면 최단거리를 의미하는데, 데이터와 노드 간 거리를 단순한 삼각함수를 통해 계산하면 유클리드 거리가 계산된다. 이는 우리가 흔히 아는 피타고라스 정리와도 유사한데, 2차원이라면 피타고라스의 정리가 그대로 먹히겠지만 3차원 이상이 되기 때문에 약간의 응용은 필요하다.
차원이 n인 경우의 유클리드 거리는 위와 같이 계산되는데, 쉽게 풀어쓰자면 '각 항의 좌표 차이를 제곱하여 더한 제곱근'이라고 풀어쓸 수 있다. 익숙한 피타고라스의 정리에서 빗변의 길이가 '너비의 제곱과 높이의 제곱의 합에 대한 제곱근'임을 생각해볼 때, 차원만 늘어날 뿐 동일하다는 것을 알 수 있다. 즉 데이터를 정의하는 다양한 축(독립변수)에 따라 각 데이터는 좌표를 갖게 되는데, 그 좌표에 대해 임의로 그려진 지도가 점차 거리에 따라 변화하며 데이터의 형태와 유사하게 자신을 바꾸어감으로서 데이터를 학습하는 것이다.
그 결과로 만들어진 지도(map)는 데이터를 어느 정도 대표할 수 있는, 단순화된 저차원의 알고리즘이 된다. 이 과정은 마치 보자기로 어떠한 복잡한 형태의 물건을 감싸는 것과도 유사하다. 보자기로 싸기 전의 물건은 여러 가지의 특징(Feature)과 파악하기 어려운 복잡성을 띄고 있다. 그러나 보자기로 싼 물건은 도드라지는 대표적인 특징점들이 나타나며, 복잡한 정보들은 많이 단순해진다. 자기 조직화 지도는 이와 같이 높은 특징량을 가진 특정 노드(winning node)들을 강조하며, 정보를 저차원화하여 축약한다.
'Artificial.Intelligence' 카테고리의 다른 글
[AI-12] 최적의 분류 평면 찾기, 서포트 벡터 머신(SVM) (1) | 2024.11.14 |
---|---|
[AI-11] 유에서 무로, 다시 유로 : Diffusion Model (2) | 2024.11.07 |
[AI-09] 데이터에서 자라난 무작위의 숲, Random Forest (0) | 2024.07.30 |
[AI-08] 진흙 속에서 진주 찾기 : KDD (1) | 2024.07.13 |
[AI-07] 어떻게 학습시킬까? : 레이블과 강화 (3) | 2024.06.16 |