압축 알고리즘 2. manifold

허준·2022년 8월 14일

참고:
https://roytravel.tistory.com/105
https://ko.wikipedia.org/wiki/%EB%8B%A4%EC%96%91%EC%B2%B4
https://kh-mo.github.io/notation/2019/03/10/manifold_learning/

위키의 정의는 이해하기 어려워, 잘 정리된 설명을 따라 간다. 내 나름대로 해석을 얹은 거라, 틀린 내용이 들어 있을 수 있다.

우선, 이 개념이 나온 이유를 다음 사진이 잘 설명해 준다.

데이터가 사실 이렇게 분포되어 있는데, 이를 그냥 2차원 평면에서 본다면

대충 왼쪽처럼 보일 것이며, 이를 오른쪽처럼 그룹을 나눠 줄 수 있는 것이 manifold이다.
즉, 고차원 데이터를 저차원으로 옮길 때 데이터를 잘 설명해주는 모형이며, 이렇게 변환하는 것을 임베딩, 이 학습 과정을 manifold learning이라고 한다.

지구를 생각해보면, 명확한 비유를 알 수 있다. 직선거리로만 보면, 사실 가장 가까운 곳은 지구 반대편이어야 한다. 하지만 우리는 아래로 뚫고 도달할 수가 없으므로, 지구 반대편이 사실은 가장 먼 곳이 된다.

manifold learning은 따라서, 인공위성없이 세계지도를 만든다고 생각하면 된다. 걷건 배를 탔건, 평면에 근사한(유클리드 평면) 곳에서 움직여 가면서 지구 전체(매니폴드)를 돌아다니면서, 경계에 따라 선을 그리면(그룹을 나누면) 되는 것이다.

매니폴드의 특징은 다음과 같다.
1. 고차원 데이터의 밀도는 낮지만, 이를 포함하는 저차원의 매니폴드가 있다.
2. 이 저차원 매니폴드를 벗어나면 밀도가 급격히 작아진다.

manifold의 사용 예가 아래 그림에 잘 나타나 있다.

따라서 매니폴드는 고차원 데이터를 잘 표현해 중요한 특징을 발견해야 된다.
매니폴드를 잘 찾으면 dominant 한 feature를 잘 찾은 것이므로, manifold의 좌표를 옮겨가면서 데이터를 유의미하게 바꿀 수 있다. 또한, 의미적인 유사성을 잘 보존할 수 있게 된다!

PCA는 선형 구조에서의 작업이었다면, manifold는 비선형적 구조에서 사용하게 되는 것이다.

scikit learn에 여러 옵션이 구현되어 있었는데, 이 역시 데이터를 다룰 때 추가 검색을 해 보기로 하고 넘어갔다.

profile
퀀트 지망(Quant candidate)

0개의 댓글