딥러닝 개념 정리

차원축소와 매니폴드1

정일균 2024. 3. 14. 10:50

1. 차원 축소의 개념을 예로 설명하면 아래와 같다.
손으로 쓴 숫자들의 이미지를 컴퓨터가 인식하고 분류하게 만들고 싶다고 가정할 때, 각 이미지는 픽셀로 이루어져 있게 된다.

예를 들어, 28x28 픽셀 크기의 이미지는 총 784개의 픽셀을 가지고, 각 이미지를 784차원의 점으로 볼 수 있다는 의미

* 여기서 784차원은 하나의 픽셀들이 0~255의 차원을 갖기 때문에 위와 같은 차원을 가지게 된다고 이해할 수 있음

이렇게 높은 차원의 데이터를 직접 처리하는 것은 어렵고 계산 비용도 많이 들고, 높은 차원에서는 데이터 포인트 간의 거리가 기하급수적으로 커져서 분석하기 어려운 '차원의 저주' 문제가 발생할 수 있음.

이럴 때 차원 축소 기술이 유용하게 사용해서 해결한다. 
차원 축소는 이 784차원의 데이터를 더 낮은 차원, 예를 들어 2차원이나 3차원 공간으로 매핑하는 과정으로, 이렇게 하면, 데이터를 시각적으로 쉽게 이해하고 분석할 수 있게 됨.

이 과정에서 중요한 것은 원래 고차원 공간에서 가까이 있던 데이터 포인트들이 낮은 차원에서도 여전히 가까이 위치하도록 매핑하는 것으로 즉, 비슷한 숫자 이미지들은 낮은 차원에서도 서로 가까운 위치에 매핑되어야 합니다.

차원의 저주란?
고차원 데이터를 다룰 때 발생하는 여러 문제를 가리키는 용어
이 용어는 1961년에 리처드 벨만(Richard Bellman)에 의해 처음 사용
차원의 저주는 데이터의 차원이 증가함에 따라, 데이터 분석이나 머신러닝 모델의 성능을 저하시키는 다양한 문제들을 일으킵니다.
주요 문제들은 다음과 같습니다.


1. 데이터 부족

고차원 공간에서의 데이터 희소성: 데이터의 차원이 높아질수록, 동일한 양의 데이터로는 공간을 채우기에 충분하지 않게 됩니다. 고차원에서는 각각의 데이터 포인트가 상대적으로 멀리 떨어져 있게 되어, 데이터 포인트 사이의 거리가 증가합니다. 이로 인해, 데이터가 희소해지고, 모델이 데이터 간의 관계를 학습하기 어려워집니다.
2. 계산 복잡성 증가
계산 비용의 급증: 차원이 증가함에 따라 필요한 계산량이 기하급수적으로 증가합니다. 이는 알고리즘의 학습 시간을 크게 늘리고, 모델을 훈련시키고 예측을 수행하는 데에 더 많은 컴퓨터 자원을 요구하게 합니다.
3. 과적합(Overfitting)의 위험 증가
모델의 과적합 문제: 고차원 데이터는 종종 많은 수의 특성을 가집니다. 이 때, 머신러닝 모델이 학습 데이터에 있는 잡음까지 학습해버려, 새로운 데이터에 대한 일반화 능력이 떨어지는 과적합 문제가 발생할 수 있습니다.

차원의 저주를 해결하기 위한 방법

1) 차원 축소 기법
PCA(주성분 분석), t-SNE, LLE와 같은 차원 축소 알고리즘을 사용하여 데이터의 차원을 줄일 수 있습니다. 이러한 방법들은 데이터의 중요한 정보를 보존하면서 차원을 줄여, 데이터의 희소성 문제를 완화하고 계산 복잡성을 감소시킵니다.
2) 특성 선택(Feature Selection)
가장 중요한 특성만을 선택하여 데이터의 차원을 줄입니다. 이는 모델의 복잡성을 줄이고, 과적합을 방지하는 데 도움을 줄 수 있습니다.
3) 정규화 기법
머신러닝 모델에 정규화 항을 추가하여 과적합을 방지할 수 있습니다. 예를 들어, L1 정규화는 특성 선택의 효과를 가지며, L2 정규화는 모델의 가중치를 제한하여 과적합을 줄입니다.

 

고차원 벡터로 데이터가 구성되면 sparse vector로 인해서 유사도 계산이 힘들어지는게 됨

고차원 공간에서 데이터 포인트들 사이의 거리가 멀어지고 데이터가 희소해짐에 따라, 이러한 희소한 벡터들로 이루어진 데이터 세트에서 유사도 계산이 어려워지는 문제가 발생합니다. 

희소 벡터의 문제점
1) 유사도 계산의 어려움
희소 벡터에서는 대부분의 값이 0이기 때문에, 두 벡터 간의 유사도(예: 코사인 유사도)를 계산할 때 유의미한 값을 얻기 어렵습니다. 대부분의 차원에서 값이 없는(즉, 0인) 경우가 많아, 두 벡터가 실제로 얼마나 유사한지 판단하기 어렵습니다.
2) 데이터 저장 및 처리 비효율
희소 벡터는 대부분의 값이 0으로 채워져 있어, 이러한 데이터를 효율적으로 저장하고 처리하는 데 있어서 추가적인 최적화가 필요합니다. 대량의 데이터를 다룰 때, 이는 심각한 메모리 사용량 증가와 처리 시간 지연을 초래할 수 있습니다.
3) 과적합의 위험
고차원의 희소 데이터 세트에서 모델을 학습시킬 때, 모델이 훈련 데이터의 잡음에 과도하게 적응하여, 새로운 데이터에 대한 일반화 능력이 저하되는 과적합의 위험이 증가합니다.


2. 매니폴드
2.1 매니폴드란 무엇인가?
매니폴드는 복잡하고 고차원적인 데이터 공간에서 데이터가 실제로 단순하고 저차원적인 공간 또는 구조를 의미

예를 들어, 지구의 표면은 3차원 공간에 존재하지만, 지구 표면 위의 어떤 지점들은 2차원 지도에 표현할 수 있습니다.

여기서 지구의 표면이 매니폴드의 한 예가 될 수 있으며, 이를 2차원 지도에 매핑하는 것은 고차원에서 저차원으로의 차원 축소 작업의 한 예입니다.

2.2 매니폴드로 매핑한다는 것은 무엇인가?
매니폴드로 매핑한다는 것은 고차원 데이터 공간에서의 데이터 포인트를 해당 데이터가 실제로 존재하는 저차원의 매니폴드 상의 포인트로 변환하는 과정을 의미

이 과정에서 핵심적인 목표는 고차원 데이터의 본질적인 구조와 관계를 가능한 한 보존하는 것입니다. 예를 들어, 손글씨 숫자 이미지들이 고차원 픽셀 공간에 존재할 때, 각 숫자들이 비슷한 패턴을 공유하고 있음을 감지하고 이를 기반으로 숫자 이미지들을 저차원 공간에서 서로 가까이 위치하게 하는 것입니다. 이렇게 하면, 숫자들이 비슷할수록 저차원 공간에서도 서로 가깝게 매핑되어, 데이터의 내재적인 구조를 더 잘 이해할 수 있게 됩니다.

2.3 자연어에서의 매니폴드와 임베딩의 관계
자연어 처리에서 매니폴드는 단순히 임베딩 자체를 의미하지 않습니다. 대신, 임베딩은 자연어의 복잡한 구조와 의미를 고차원 벡터 공간에 표현하는 방법입니다. 매니폴드는 이러한 고차원 임베딩 공간 내에서 발견할 수 있는, 저차원의 의미적 또는 문맥적 구조나 패턴을 의미합니다. 즉, 임베딩은 데이터를 표현하는 방식이며, 매니폴드는 이 데이터가 내재하고 있는, 보다 단순한 구조나 패턴을 찾는 개념입니다.

2.4 임베딩과 차원 축소의 과정에서의 매니폴드
자연어 임베딩 과정에서 고차원 벡터 공간을 사용하는 이유는 단어, 문장 또는 문서의 복잡한 의미와 문맥 정보를 충분히 포착하기 위함입니다. 이후, 차원 축소 또는 매니폴드 학습 기법을 적용하여 이 고차원 공간 내의 데이터를 더 낮은 차원으로 매핑할 수 있습니다. 이 과정에서 비슷한 의미를 가진 임베딩이 저차원 공간에서 서로 가까이 위치하게 됩니다. 따라서, 차원 축소 과정에서 매니폴드를 발견하고 이를 통해 데이터의 내재적인 구조를 이해하는 것입니다. 매니폴드 학습은 고차원 데이터의 복잡성을 줄이면서도, 데이터 포인트 간의 중요한 관계나 구조를 보존하려는 시도입니다.

3. 매니폴드 학습과 차원축소의 목표
고차원 데이터에서 내재하는 저차원의 구조를 발견하고 이를 통해 데이터의 본질적인 특성을 파악하는 것

이 과정을 통해 데이터의 복잡성을 관리할 수 있으며, 이해하기 어려운 고차원 데이터를 더 간단하고 직관적인 형태로 변환할 수 있습니다. 매니폴드 학습은 고차원 데이터 공간 내에 숨어 있는 저차원 매니폴드를 찾아내어 데이터 포인트 간의 중요한 관계나 구조를 보존하는 것을 목표로 합니다.

3.1 매니폴드 학습의 주요 아이디어
1) 고차원 데이터의 복잡성 감소
많은 실세계 데이터는 고차원 공간에 존재하지만, 실제로 중요한 정보는 더 낮은 차원의 매니폴드 상에 내재되어 있습니다. 예를 들어, 이미지나 자연어 데이터는 고차원 벡터로 표현될 수 있으나, 이 데이터의 중요한 패턴이나 구조는 저차원에서 잘 나타낼 수 있습니다.
2) 내재적인 구조 발견
매니폴드 학습은 고차원 데이터에서 이러한 저차원의 내재적인 구조를 찾아내려고 시도합니다. 이 구조를 발견함으로써, 데이터 포인트 간의 관계를 더 잘 이해할 수 있고, 데이터를 더 효율적으로 처리하며 분석할 수 있습니다.
3) 데이터 포인트 간의 관계 보존
중요한 것은, 차원을 축소하면서도 데이터 포인트 간의 기본적인 거리나 이웃 관계를 가능한 한 보존하는 것입니다. 이는 유사한 데이터 포인트가 저차원 공간에서도 서로 가깝게 위치하도록 함으로써, 데이터의 본질적인 패턴이나 그룹핑을 유지하는 데 도움이 됩니다.

3.2 매니폴드 학습의 예시
1) t-SNE(t-distributed Stochastic Neighbor Embedding)
고차원 데이터 포인트 간의 상대적인 거리를 보존하면서 이를 저차원 공간으로 매핑합니다. 이 과정에서 유사한 데이터 포인트들이 저차원 공간에서 서로 가까이 위치하게 되며, 데이터의 클러스터 또는 그룹을 시각적으로 이해하기 쉬워집니다.
2) LLE(Locally Linear Embedding)
각 데이터 포인트와 그 이웃 간의 로컬(지역적) 선형 관계를 찾아내고, 이 관계를 저차원 공간에서도 유지하려고 시도합니다. 이 방법은 데이터의 로컬 구조를 보존하면서 고차원에서 저차원으로의 매핑을 수행합니다.

4. 자연어에서의 매니폴드 예시
1) 단어 임베딩 공간의 매니폴드
단어 임베딩은 단어를 고차원 공간에서 벡터로 표현하는 기술

예를 들어, Word2Vec, GloVe 같은 임베딩 기법은 단어의 의미를 포착하여 고차원 벡터로 매핑합니다. 이 고차원 공간 내에서 유사한 의미를 가진 단어들은 서로 가까이 위치하게 됩니다. 따라서, 단어 임베딩 공간에서의 매니폴드는 의미적으로 유사한 단어들이 모여 있는 저차원의 구조를 찾는 것을 의미합니다.
2) 문장이나 문서의 임베딩 공간
문장이나 문서 또한 벡터로 임베딩할 수 있으며, 이 때 사용되는 고차원 공간에서도 비슷한 맥락이나 주제를 가진 문장이나 문서들이 가까이 위치합니다. 예를 들어, 특정 주제에 대한 문서들은 벡터 공간에서 비슷한 영역에 위치할 수 있으며, 이러한 영역이 저차원의 매니폴드를 형성할 수 있습니다.

3) 의미적 매니폴드

자연어 처리에서 더 추상적인 의미적 매니폴드를 생각할 수 있습니다. 예를 들어, 감정 분석에서 긍정적인 감정을 표현하는 단어나 문장은 고차원 공간에서 특정 영역을 형성할 수 있고, 부정적인 감정을 표현하는 단어나 문장은 다른 영역을 형성할 수 있습니다. 이렇게 의미적 유사성에 기반한 구조가 매니폴드를 형성합니다.