[데이터분석] 매니폴드(manifold)란?


매니폴드를 설명할 때 대표적인 예시로 나오는게 스위스 롤이다.


 swiss roll manifold에 대한 이미지 검색결과


스위스롤의 특징을 보면 3차원의 공간에 롤처럼 말린형태로 데이터가 분포해 있다.

이 데이터 공간에 개미가 한마리 살고 있다고 가정해보자. 우리는 롤 안쪽에서 바깥쪽의 거리를 계산할 때, 공간상에서 가로지르는 유클리디안 방식으로 거리를 구하기 때문에 거리가 가깝다. 하지만 개미의 입장에서는 점프를 할 수 없기 때문에 롤을 따라서 바깥으로 도달하기위한 거리는 훨씬 멀다. 그리고 개미의 입장에서는 비선형적인 곡선도 국부적으로는 직선으로 근사되기 때문에 평면으로 느낄 것이다. (매니폴드 상의 임의의 점도 미소 구간에서는 유클리디안 공간) 우리가 사는 세상을 지도로 보면 2차원이지만 실제로는 구 형태의 3차원 매니폴드에 있는 것과 같다.

매니폴드 학습이라는 단어의 주관적인 이해는 '눈을 감고(학습이되지 않은 상태에서) 비유클리디안 형태를 만져가며(데이터를 이용해) 모양을 이해해(모델을 학습해) 나간다'라고 이해하고 있다. 매니폴드 학습을 하게되면 학습된 모델의 latent vector(기저 벡터)는 우리가 생각하는 차원과 다를 수 있으며, 위의 스위스롤도 신경망 모델의 입장에선 경우에 따라 펼친 모양으로 학습을 하게 될 것이다.


위 그림에서 선이 없고 점만 있다고 가정하면 단순한 데이터의 분포로 보일 수 도 있다. 하지만 실제로는 꼬여있는 실처럼 실선은 매니폴드를 나타낸다. 그리고 그 선이 모델이 학습해야할 매니폴드이다. 이 선을 고차원으로 projection하면 그림에서 실의 한쪽 끝을 잡고 들어올린다고 생각해볼수 있다. 그러면 꼬인 실이 펴지게 된다. 이와 비슷하게 차원을 높임으로써 매니폴드 학습을 쉽게할 수도 있다. 실제로 신경망 모델은 중간 층의 차원을 높임으로써 매니폴드 학습을 한다.




+ Recent posts