본문 바로가기

Dimension Reduction 차원 축소 이유 Why? [빅공남! 통계 같이해요]

KAIST수학전공쌤 2022. 1. 24.

차원축소 Demension Reduction 데이터 분석 왜 하는가? 빅데이터 딥러닝 머신러닝 등에서 중요한 개념중에 하나입니다. 차원축소를 왜 해야하는지?를 3가지 관점에서 정리를 해보고자 합니다. 차원의 저주 Curse of Dimension 이라는 개념도 등장하게 됩니다. 관련 유튜브 동영상 링크는 포스팅 맨 하단에 첨부하도록 하겠습니다.

 

1. 차원(Dimension) 축소(Reduction)?

1) 차원(Dimension)이란?

 데이터 분석에 사용되는 변수의 개수

2) 차원(Dimension)축소

 차원을 줄인다? ☞ 사용되는 변수의 개수를 줄인다.

 

차원 축소의 개념은 결국 변수의 숫자를 줄이는 것입니다. 하지만 변수의 개수를 줄인다면 데이터 정보의 손실은 감수해야하는 부분입니다. 아래 그림처럼 5개의 변수가 있다고 가정하면, Feature 2개로 줄인다면 5차원이 2차원으로 축소해서 데이터를 보는 것입니다. 정보의 유실이 있을 수 있다는 것을 알 수 있습니다. 그럼에도 

조금더 시각화해서 아래 그림을 통해서 시각화 하는 그림을 차장보았습니다. 3차원 공간의 정면에서 바라본다고 생각을 하면 다음 아래 그림과 같이 2차원으로 데이터를 바라볼 수 있습니다. 3차원 공간에서 복잡한 데이터가 2차원으로 바라보면 오히려 간단히 시각화 해서 데이터가 어디에 분포하고 있는지 알아 볼 수 있습니다.

일반적으로 N차원 공간을 다음 그림과 같이 3차원으로 그림을 나타내는 경우가 있습니다. 사람의 시각으로 공간을 그려낼 수 있는 차원은 3차원까지입니다. 그래서 원본데이터를 3차원처럼 그림으로 표현하고 줄어든 차원을 2차원 평면으로 표현해서 이해하면 데이터의 차원을 이해하는데 직관적으로 도움을 주기 때문입니다.

 

2. 차원축소의 이유 3가지

 

아래와 같이 차원축소(Dimension Reduction)의 이유를 3가지로 정리해보았습니다.

 

1) 비용, 시간, 자원, 용량 문제

분석 시간의 증가, 불필요한 변수의 저장(Sparse, 0 증가), 용량 문제

 

2) 차원이 높으면 과적합(Overfit) 문제가 발생할 수 있음.

변수가 많으면 모델의 복잡도 증가, 정교해질 수 있으나 변수가 증가함에 따라 민감도 증가, 노이즈가 커질 수 있는 여지가 커질 수 있음.

 

3) 차원이 높으면 설명력과 시각화가 불리함.

차원이 적을수록 내부의 구조파악과 해석에 용이함. 직관적으로 시각화하기 유리함.

 

그러면 차원축소의 이유 각각의 이유를 하나씩 세부적으로 살펴보도록 하겠습니다

 

3. 차원의 저주 (Curse of Dimension)

차원의 저주(CUrse of Dimension)은 차원이 커짐에 따라서 공간의 범위가 기하급수적으로 증가해서 많은 Sample이 필요해지는 현상을 말합니다. 차원이 커지면서 두 데이터간의 거리가 멀어지고 밀도가 급격히 줄어들게 됩니다. 아래 그림을 보면서 이러한 현상을 시각적으로 이해해보고자 합니다. 

1차원, 2차원, 3차원으로 증가함에 따라서 데이터의 밀도가 작아짐을 알 수 있습니다. 예를들어서 1차원에서는 2개의 데이터는 전체의 2/5 = 40%를 차지하게 됩니다. 하지만 2차원에서는 2개의 밀도를 가지면, 4/25 = 16% 차지하게 되고 3차원에서는 8/125 = 6.4%를 차지하게 됩니다. 이렇게 공간의 부피가 기하급수적으로 증가하기 떄문에 어떤 데이터간의 거리는 증가하고 데이터간 밀도가 줄어들게 됩니다. 컴퓨터 차원에서는 이러한 빈 공간들은 0으로 저장되게 됩니다. 즉, Sparse가 커지게 되는 것입니다. 이처럼 데이터를 저장해야하는 부피, 밀도 증이 증가해서 고차원에서 데이터 분석은 많은 변수의 저장이 필요하며 시간을 많이 필요로 하게됩니다. 이러한 이유로 정보의 유실이 있더라고 차원을 축소를 하는 방법에 대해서 찾게 되는 것입니다.

 

4. 과적합(Overfit) 문제

차원이 높으면, 과적합 문제를 일으킬 수 있습니다. 아래 그림에서 오른쪽 그림과 같이 고차원 문제를 풀다보면 너무 정확해서 문제?를 일으킬 수 있습니다. 너무 정교해서 일반화(Gneralization) 결과를 도출할 수 없는 상황이 올 수 있습니다. 또한 경계에서의 Prameter의 민감도가 증가해서 모델링 결과의 잡음(Noise)가 많이 들어 갈 수 있기 때문에 차원을 계속 올린다고 효율적인 결과도출로 이어지지 않을 수 있습니다. 눈으로 보기에도 적당히 중가넹 Optimum정도가 일반화로 인한 결과를 낼 수 있는 수준으로 볼 수 있습니다.

아래 그림과 같이 적당한 수준에서 효율적인 부분까지만 차원축소를 하는 것이 도움이 된다는 그래프 내용입니다. 계속 차원을 늘려가면 데이터의 복잡성 증가 그리고 효율성이 떨어지는 것을 알 수 있습니다.

 

5. 분석 및 시각화 용이

복잡한 형태의 데이터 구조를 낮은 차원에서 분석하게 되면 구조를 파악하기 쉽거나 시각하 하기 쉬울 수 있습니다. 사람의 눈에는 3차원 공간까지만 표현을 해낼 수 있습니다. 4차원부터는 보기 힘든 것입니다. 그래서 어려운 문제를 차원축소를 통해서 저차원에서 보기 쉽게 만드는 장점이 있습니다. 아래 그림과 같이 보면 고차원 문제를 3차원, 2차원으로 시각화 해서 어떤 군집성(Clustering)을 찾아내는 과정을 담고 있습니다. 그림에서 보면 결국 2차원으로 쉽게 분포가 보일 수 있다는 것을 알 수 있습니다.

 

6. 정리하며...

오늘 포스팅에서는 차원축소를 해야하는 이유를 3가지 관점에서 바라보고 정리를 해보았습니다. 빅데이터 분석 등에서 고차원의 문제가 발생하기 때문에 이제는 어떻게 차원을 축소해서 데이터 분석을 할 것인가? 방법에 관한 주제들이 등장할 차례입니다. 그래서 다음 포스팅에서는 어떻게에 포커스를 맞추고 내용을 준비해보고자합니다.

 

https://youtu.be/aLlNzxFt0xc

 

댓글