공부일기/Machine-Learning

차원 축소 기법(Dimensionality Reduction)

pipiiiiii 2024. 8. 2. 00:25

차원 축소(Dimensionality Reduction 또는 Dimension Reduction)

고차원 원본 데이터의 의미 있는 특성을 원래의 차원과 가깝게 유지할 수 있도록 고차원 공간에서 저차원 공간으로 데이터를 변환하는 것을 말한다. 즉, 고차원의 데이터로부터 저차원의 데이터로 변환하는 방법이다. 

 

차원 축소를 할 때는 원본 데이터로부터 일부 정보가 손실될 수 있어 원본 데이터로부터의 정보 손실을 최소화하면서 저차원으로 얼마나 잘 재표현할 수 있느냐가 관건이다. 

 

이론적으로 변수간 독립성 만족 시 변수의 수가 증가할수록 모델의 성능이 향상한다. 그러나 실제 상황에서는 변수간 독립성 가정 위배, 노이즈 존재 등으로 인해 변수의 수가 일정 수준 이상 증가하면 모델의 성능이 저하되는 차원의 저주에 빠진다.


차원의 저주란

 

데이터 학습을 위해 차원이 증가하면서 학습데이터 수가 차원의 수보다 적어져 성능이 저하되는 현상을 말한다. 

간단히 말해서 차원이 증가함에 따라(변수의 수 증가) 모델의 성능이 안 좋아지는 현상인데, 무조건 변수의 수가 증가한다고 해서 차원의 저주 문제가 있는 것이 아니라 관측치 수보다 변수의 수가 많아지면 발생하는 것이다. (예를 들어 관측치 수는 200개인데, 변수는 7000개인 경우)

 

 

위의 그림으로 차원의 저주를 알아보자

변수가 1개인 1차원을 가정해 보면 1차원은 '선'이므로 제일 왼쪽의 그림처럼 선위에 관측치들이 표현된다. 

같은 데이터를 2차원인 '평면'에 표현하면 가운데 그림처럼 표현이 된다. 1차원일 때보다 점들 사이가 더 벌어져있음을 알 수 있다. 

마지막으로 축이 3개인 3차원으로 표현한 제일 오른쪽의 그림을 보면 점들 사이에 공간이 많이 비었음을 알 수 있다. 

 

이처럼 차원이 증가함에 따라 빈 공간이 생기는 것을 차원의 저주라고 한다.

 

빈 공간이 생기는 것이 문제인 이유는 컴퓨터 상으로는 ''0'으로 채웠다.' 즉, '정보가 없다'가 되는 것이기 때문이다. 정보가 적으니 모델을 돌릴 때 성능이 저하되고, 문제가 되는 것이다. 


 

 

차원 축소와 군집 분석의 공통점과 차이점

공통점

  • 특성 변수만을 가지고 데이터의 구조와 특성을 파악하는 비지도 학습에 속한다. 

차이점

  • 군집 분석은 관측치, 객체 간 유사성을 측정해 유사한 관측치 또는 객체끼리 그룹을 만드는 방법
  • 차원 축소는 특성 변수를 대상으로 변수 간 상관성에 기초하여 고차원에서 저차원으로 재표현하는 변수 변환

 

 

차원 축소 장단점

장점

  • 차원의 저주를 피할 수 있다.
  • 과적합을 방지할 수 있다. 
  • 연산 속도를 향상시킬 수 있다. 
  • 데이터를 압축하여 데이터 저장이나 전송 효율을 높일 수 있다. 

단점

  • 정보 손실이 발생한다.
  • 원본 데이터 대비 차원 축소한 데이터를 해석하는 데 어려움이 있다.
  • 데이터 변환 절차가 추가되어 데이터 파이프 라인이 복잡해진다. 

 

 

차원 축소 방법

주성분 분석(PCA, Principle Component Analysis)

데이터 분석에서 자주 등장하는 개념이다.

주성분 분석이 필요하는 이유는 데이터의 차원을 줄이고 중요한 정보를 더 효율적으로 추출하기 위해서다. 즉, 복잡하고 다차원인 데이터를 분석하기 위해 이해하기 쉬운 형태로 변환하는 것이다. 

 

주성분 분석은 데이터의 주요 특성을 추출하여 데이터를 저차원으로 투영한다.

여기서 추출되는 주요 특성을 '주성분'이라고 하며, 주성분 분석을 통해 데이터의 분산을 최대한 보존하는 새로운 축을 찾을 수 있고, 새로운 축은 데이터를 더 쉽게 이해할 수 있도록 도와준다. 

 

주성분 분석을 수행한 후에는 회귀분석이나 클러스터링 등의 머신러닝 기법들을 사용해서 더 심화된 데이터 분석을 할 수 있다. 

 

 

특이값 분해(SVD, Singular Value Decomposition)

SVD는 PCA와 밀접한 관련이 있는 기술로, 행렬을 세 부분으로 분해하여 데이터를 축소한다. 

 

특이값 분해는 데이터 분석과 차원 축소에 널리 사용되는 중요한 도구다.

데이터를 세 개의 행렬의 곱으로 분해함으로써 데이터를 축소하는 방법으로, 세 개의 행렬은 각각 데이터의 특이값, 왼쪽 특이 벡터, 오른쪽 특이 벡터라고 불린다. 각 행렬에는 주요 특성이 담겨 있기 때문에 개념상으로 PCA와도 밀접한 관련이 있다고 할 수 있다. 

 

 

t-분산 확률적 이웃 임베딩(t-SNE, t-distributed stochastic neighbor embedding)

t-분산 확률적 임베딩(또는 t-분산 확률 인접성 임베딩)은 고차원 데이터를 시각화하기 위한 방법으로 사용된다. 

이해하기 힘든 데이터를 저차원 공간으로 변환하여, 데이터의 복잡한 구조를 시각적으로 이해할 수 있도록 도와준다. 

 

t-SNE는 주어진 데이터의 각 점 사이의 거리를 확률 분포로 변환한 후, 저차원 공간에서도 가능한 유사한 확률 분포를 유지해 준다. 이러한 방법을 통해서 저차원에서도 고차원 데이터의 구조를 유지할 수 있다. 

 

 

잠재 디리클레 할당(LDA, Latent Dirichlet Allocation)

토픽 모델링을 위한 확률적 생성 모델이다. 

문서 집합 내에서 토픽을 추론하고 각 문서의 토픽 분포를 파악하는 데 사용된다. 

 

토픽이 무엇이고, 왜 토픽을 추론하는지에 대해 알기 위해서는 LDA가 텍스트마이닝에서 주로 사용되는 기법이라는 점을 먼저 알아야 한다. 토픽은 추출해 낸 텍스트의 공통된 주제를 말하는데, 여러 단어들을 뽑아낸 후 토픽(주제)에 맞게 카테고리화하는 것이다. 

 

LDA는 텍스트마이닝 된 빅데이터를 효과적으로 분석하기 위해 토픽과 문서 간의 관계를 이해하기 위해 개발된 기술로 주어진 문서 집합을 설명할 수 있는 토픽들의 확률 분포를 추정한다. 이를 통해 각 문서의 토픽 분포를 파악할 수 있으며 이를 기반으로 문서 간의 유사성을 계산해 낸다. 

 

 

비음수 행렬 분해(NMF, Non-negative MAtrix Factorization)

행렬을 두 개 이상 비음수 행렬로 분해하는 기술이다.

이미지 처리에서 이미지의 특성을 추출하거나, 음성 처리에서 음성 신호의 특성을 분석하는 등 다양한 응용 분야에서 사용될 수 있다. 

 

주어진 행렬을 두 개 이상의 비음수 행렬로 분해하여 원본 데이터의 특성을 잘 나타내는 요인들을 추출한다. 이를 통해 데이터의 차원을 줄이고, 중요한 패턴이나 구조를 포착할 수 있다. 또한, NMF는 비음수 제약을 사용하여 더 의미 있는 요인을 추출할 수 있다. 

 

 

차원 축소 기법 코드 공부

https://github.com/DIB-PP/Machine-Learning

 

GitHub - DIB-PP/Machine-Learning

Contribute to DIB-PP/Machine-Learning development by creating an account on GitHub.

github.com

 

 

 

 

 

 

 

 

 

참고 자료