brunch

You can make anything
by writing

C.S.Lewis

by 코딩하는 수학쌤 Sep 13. 2021

34. [비지도 학습]복잡한 차원을 간단히-차원 축소

[4악장 - Cadenza] 머신러닝의 알고리즘과 수학


데이터의 ‘차원(Dimension)’이란 데이터를 구성하고 있는 속성의 개수를 의미합니다.(엄밀하게 선형대수학에서 dimension의 정의가 있습니다만, 여기서에는 우리가 살펴보는 데이터를 통해 살펴봅니다.) 예를 들어 한 학급 학생들의 번호, 수학1, 확률과 통계, 물리학, 물리실험, 음악, 체육의 점수로 구성이 되어있는 데이터가 있다고 가정해봅시다. 그러면 여기에 나와있는 번호, 수학1, .. 체육까지 7개의 속성이 있습니다. 이 7개의 속성은 데이터를 구성하고 있는 차원의 역할을 합니다. 각 데이터마다 (번호, 수학1, …, 체육) 이렇게 7개의 값으로 구성된 순서쌍을 통해서 데이터를 정확하게 표현할 수 있기 때문입니다. 속성이 7개이므로 7차원의 데이터입니다.


 그런데 자세히 살펴보면 각 속성들 중에서 매우 비슷한 성향을 가지는 속성이 존재할 수 있습니다. 가령 수학1과 확률과 통계는 매우 비슷합니다. 또한 물리학과 물리실험도 비슷한 경향을 띌 수 있죠. 게다가 우리는 체육 점수를 굳이 필요로 하지 않는다고 가정해봅시다. 그렇다면 7개의 데이터가 모두 필요한 것이 아니라 번호, 수학1, 물리학, 체육 4개의 속성만으로도 데이터를 살펴볼 수 있습니다. 차원이 7개에서 4개로 줄일 수 있습니다. 이렇게 특성의 수를 줄이는 방법을 ‘특성 선택’이라고 합니다.


 그런데 수학과 물리학은 분야의 유사함이 존재하기 때문에 이과 성향을 낸 학생들이라면 두 과목에 관심을 가질 가능성이 높습니다. 따라서 수학1과 물리학의 평균점수를 내어 ‘이과 성향’이라는 특성을 만들어낼 수도 있죠. 이런 것처럼 기존의 특성들로부터 새로운 특성을 만들어내는 것을 ‘특성 추출’이라고 합니다.



차원 축소(Dimensional Reduction)란?

 차원 축소(Dimensional Reduction)란 높은 차원의 데이터를 낮은 차원으로 줄여 특징을 살펴보는 기법입니다. 고등학교 기하 시간의 정사영(Orthogonal Projection)이나 선형대수학이나 위상 수학에서 projection Mapping을 배운 분들은 좀 더 쉽게 이해할 수 있습니다. projection은 하나의 space에서 다른 space로 어떤 대상을 보내는 map 중의 하나입니다. 기왕 보낼 때  특징적인 부분을 남겨놓고 나머지는 정보를 없애는 것이죠.

 


  projection을 통해 대상의 많은 부분 중 가장 특징적인 것을 눈에 잘 띄게 만들 수 있습니다. 예를 들어 3차원의 물체를 그림자로 표현하면 많은 부분의 정보가 사라지는 대신 윤곽선이 또렷하게 남습니다. 앞서 이야기했던 특성 선택을 할 수 있죠. 그리고 그림자의 각도를 어떻게 가져가느냐에 따라 특성 추출과 같은 효과도 나타납니다. 따라서 projection을 할 때는 그림자를 만드는 각도가 중요합니다. projection을 어떻게 시키느냐에 따라 대상의 일부분이 더 잘 보이기도 하고 많은 생략이 나타나 대상이 잘 안 보이기도 합니다.


 따라서 차원을 줄일 때는 자료의 특성을 가장 다양하게 표현할 수 있는 방향이 어느 쪽인지 잘 살펴봐야 합니다. 방향에 대해 예를 들어 살펴볼께요. 상대방 군대를 A 방향과 B방향에서 살펴보는 것을 대조해보겠습니다.  A방향에서 군대를 보면 대부분의 데이터가 겹쳐 보이므로 특징을 파악하기가 어렵습니다. 그러나 B방향에서 살펴보면 데이터를 넓은 범위로 살펴볼 수 있으므로 데이터의 분포와 특성 등을 잘 설명할 수 있습니다. 따라서 projection 방향을 결정짓는데 데이터가 분포 정도가 큰 영향을 미칩니다. 통계에서 데이터가 얼마나 넓게 펼쳐 있는지를 측정하는 '분산'이라는 도구가 있습니다. 만약 데이터가 넓게 펼쳐져있으면 분산의 값은 커지고 데이터가 모여있으면 분산은 작아지죠. 분산을 통해 평균을 기준으로 얼마나 데이터가 얼마나 모여있고 흩어져 있는지 측정할 수 있습니다.

 차원 축소에서는 데이터의 분산이 가장 크게 나타나는 방향을 찾는 것이 가장 중요합니다. 이 방향을 1번째 주성분(1st PC. principal component)라고 합니다. 그리고 주성분과 수직인 방향 중에서 데이터의 분산을 또 가장 크게 나타내는 방향을 2번째 주성분(2nd PC)이라고 부릅니다. 이렇게 찾은 주성분 중에서 데이터를 가장 잘 설명하고 있는 성분을 찾으면 차원을 낮출 수 있습니다. 위의 예시에서는 B방향에서 분산이 가장 크므로 B방향을 주성분으로 하여 차원을 축소시킬 수 있습니다.


 차원의 주성분은 데이터를 직접 분석하면서 찾아야 하기 때문에 어떤 차원인지 알려주는 레이블이 별도로 존재하지 않습니다. 따라서 직접 데이터를 분석해가며 주성분을 찾아가기 때문에 차원 축소법은 비지도 학습으로 분류됩니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari