AI VIDEO BRIEFING
자기조직화지도(SOM) 학습 원리: 고차원 데이터를 2차원으로 압축하는 코호넨 맵
자기조직화지도(SOM)는 출력 노드의 가중치를 입력 공간의 좌표로 삼아, 데이터와 가장 가까운 노드(BMU)와 그 이웃을 끌어당기며 고차원 데이터를 2차원 지도로 압축하는 비지도 학습 기법이다. 그 학습 원리를 정리했다.

핵심 메시지
쉽게 이해하기
자기조직화지도(SOM)는 데이터의 차원을 줄이는 데 쓰이는 비지도 학습 기법이다. 예컨대 입력이 세 개의 특성을 가진다면 입력 공간은 3차원이지만, SOM의 출력은 항상 2차원 지도이므로 3차원을 2차원으로 압축하는 셈이다. 출력 노드의 개수가 입력 특성 수보다 많아 보여도 이는 차원과는 다른 개념이니 혼동하지 않아야 한다.
SOM에서 가장 주의할 점은 '가중치'의 의미가 일반 신경망과 다르다는 것이다. 보통의 인공신경망에서 가중치는 입력에 곱한 뒤 더하고 활성화 함수를 적용하는 값이지만, SOM에는 활성화 함수가 없다. 대신 각 출력 노드의 가중치들은 그 노드가 입력 공간에서 차지하는 좌표를 나타낸다. 즉 출력 노드는 입력 공간에 떠 있는 가상의 점처럼, 데이터 사이 어디에 자리 잡을지를 찾는 존재다. 입력이 20개 특성이면 각 노드는 20개의 가중치(좌표)를 가진다.
학습은 노드들 사이의 경쟁으로 시작된다. 가중치는 처음에 0에 가까운 작은 무작위 값으로 정해지고, 데이터의 한 행을 입력하면 모든 노드와의 유클리드 거리를 계산해 가장 가까운 노드를 찾는다. 이 가장 가까운 노드를 BMU(Best Matching Unit, 최적 일치 단위)라고 부른다. 이 거리 계산이 제대로 작동하려면 입력값을 미리 0과 1 사이로 정규화해 두어야 한다.
BMU를 찾으면 그 노드의 가중치를 해당 데이터 행에 더 가깝게 갱신한다. 데이터는 바꿀 수 없으니, 우리가 통제할 수 있는 노드의 가중치(좌표)를 움직여 지도를 데이터 쪽으로 끌어당기는 것이다. 이때 BMU 하나만 움직이는 것이 아니라, BMU 주변 일정 반경 안에 들어오는 이웃 노드들도 함께 끌려온다. BMU에 가까울수록 더 세게, 멀수록 더 약하게 갱신되어 마치 사슬처럼 주변 구조가 같은 방향으로 끌려간다.
데이터의 다음 행은 또 다른 위치에 자신의 BMU를 가지며, 그 BMU와 이웃도 같은 방식으로 갱신된다. 어떤 노드가 두 BMU 사이에 있으면, 더 가까운 BMU 쪽으로 더 강하게 끌려가는 경쟁이 벌어진다. 이런 끌어당김과 경쟁이 모든 데이터에 걸쳐 반복되면서, 지도가 입력 데이터의 분포 위에 스스로 펼쳐지듯 조직화된다. 그래서 이름이 '자기조직화지도'다.
주요 인사이트
- SOM의 가중치는 곱셈 계수가 아니라 노드의 위치다. 활성화 함수가 없는 대신, 가중치가 곧 그 노드가 입력 공간에서 어디에 있는지를 가리키는 좌표 역할을 한다.
- 한 노드의 가중치 개수는 입력의 특성 수와 같다. 입력이 20개 열이면 각 노드도 20개의 가중치를 가져 입력 공간 안의 한 점을 정의한다.
- 거리 계산이 핵심이므로 입력을 0~1로 정규화하는 전처리가 반드시 필요하다. 정규화를 건너뛰면 BMU 선정과 갱신이 제대로 작동하지 않는다.
- 이웃 갱신은 거리에 따라 가중된다. BMU에 가까운 노드는 크게, 먼 노드는 작게 끌려가며, 이 때문에 지도가 매끄럽게 펼쳐지면서 위상 구조가 보존된다.
- SOM은 같은 용어라도 일반 신경망과 의미가 달라 혼동하기 쉽다. '가중치', '시냅스' 같은 말이 등장할 때 SOM 맥락에서의 뜻으로 다시 새겨야 한다.
자주 묻는 질문
BMU(최적 일치 단위)란 무엇인가요?
데이터의 한 행을 입력했을 때, 모든 출력 노드 중 그 행과 유클리드 거리가 가장 가까운 노드를 말합니다. 학습은 이 BMU와 그 주변 이웃 노드의 가중치를 해당 데이터에 더 가깝게 끌어당기는 방식으로 진행됩니다.
SOM의 가중치는 일반 신경망의 가중치와 어떻게 다른가요?
일반 신경망에서 가중치는 입력에 곱해 더한 뒤 활성화 함수를 거치는 값이지만, SOM에는 활성화 함수가 없습니다. SOM의 가중치는 각 노드가 입력 공간에서 차지하는 좌표를 의미하며, 노드를 데이터 쪽으로 옮길 때 이 좌표가 갱신됩니다.
왜 입력 데이터를 정규화해야 하나요?
SOM은 입력 행과 노드 사이의 유클리드 거리로 BMU를 찾기 때문에, 모든 값이 0과 1 사이에 있어야 거리 계산과 가중치 갱신이 의도대로 작동합니다. 따라서 학습 전에 정규화나 표준화를 적용해 두어야 합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗