우리도 14,000,605의 미래를 볼 수 있을까?

차원 축소의 개념과 PCA, LDA

by 생각하는뇌

<어벤저스:인피니티 워>와 <어벤저스:엔드게임>. CG로 가득한 액션 영화는 영화관이 아니면 제대로 느낄 수 없다는 필자의 한 가치관을 만들어준 추억의 영화들이다. 특히 <어벤저스:엔드게임>은 한 때 역대 박스오피스 1위(전 세계 기준!)를 차지했을 정도이니, 얼마나 눈과 귀를 만족시키는 내용으로 가득 차있었다.


그런데 어떤 영화든 시간이 지나면 감상이 조금씩 변하는 법이다. 당시에는 화려한 그래픽과 당시까지 마블의 모든 캐릭터 총집합과 같은 요소에 눈이 팔려 보이지 않았던 것들이 시간이 지나니 조금씩 보이기 시작했다.


"닥터 스트레인지는 어떻게 14,000,605가지 미래를 볼 수 있었을까?"


시간을 되돌리는 타임 스톤이라는 도구로 1400만 정도의 미래를 보고 온다. 그때 당시에도 흥미로운 설정이었는데, 지금 생각해 봐도 '어떻게 그게 가능하지?'라는 생각이 먼저 든다. 1400만 정도의 죽음, 혹은 그에 가까운 실패를 겪고 사람이 멀쩡히 돌아와 행동할 수 있을까? 그리고 승리하는 경우의 수를 '보았다'라고 했는데, 그러면 왜 다시 돌아왔을까?(영화가 끝나면 안 되니까라는 합리적인 이유가 있지만, 그 이유는 그냥 넘어가자.)

maxresdefault.jpg <어벤저스:인피니티 워>에서 닥터 스트레인지는 수많은 미래를 보고 온다


그런데 이런 고민을 닥터 스트레인지라는 마법사만 한 것이 아니다. 사실 현대의 과학자, 특히 통계학자가 이런 문제를 고민해 나름대로의 해법을 제시했다. 바로 '차원 축소(dimension reduction)'라는 방법이다. 이번 글에서는 차원 감소의 대표적인 방법인 PCA와 LDA를 알아보고자 한다.


차원 축소가 뭐길래?


차원 축소. 이름만 들어보면 굉장히 어벤저스처럼 판타지나 공상 과학 영화에서나 나올 법한 느낌이 난다. 그렇지만 여기서 말하는 차원은 현실, 더 정확히는 데이터를 의미한다. 세상에 수많은 데이터가 점점 쌓이고, 그 데이터 하나하나가 바로 차원이다. 그리고 '빅데이터 시대'라고 불릴 정도로 변수는 많아지고 모델이 복잡해지니 그 차원도 수없이 많아졌다.


대표적인 예로 사람의 유전체 분석이 있다. 생명과학이 발달한 요즘, 우리는 다음과 같은 상황을 생각해 볼 수 있다.


"100명의 암 환자 샘플에서 20,000개의 유전자 발현량을 측정한 데이터"


이 경우, 데이터는 아래와 같은 구조를 가진다:

샘플 수: 100개 (행)

변수(특성) 수: 20,000개 (열)

각 변수는 하나의 유전자 발현량(gene expression level)을 의미한다


이렇게 되면 데이터는 100개의 행과 20,000개의 열을 가진 거대한 행렬이다. 이걸 해석하면, 20,000차원 공간에 있는 100개의 점처럼 해석할 수 있다. 가령, 유방암 유전자이라는 차원에서 A는 발현량이 3이고, B는 4고, C는 2, D는 10...처럼 100명이 각각의 발현량을 가진다. 반면 폐암 유전자에서는 A가 10, B가 10이고 C는 2, D는 1... 이런 식으로 20000개의 차원 하나씩 100명 각각의 발현량이 있는 것이다.


그러나 사람은 3차원에 사는 존재다. 0차원은 점, 1차원은 선, 2차원은 면, 3차원은 공간. 결국 사람이 인지할 수 있는 것은 3차원이 한계라는 소리다. 그렇다면 우리는 20000차원을 이해할 수 없는 걸까?


차원 축소를 할 수 있다면 가능하다. 20000차원, 혹은 그 이상이더라도 우리가 알아먹을 수 있는 정도의 차원으로 줄여서 표현하는 것이다. 최대 3차원까지 가능하긴 하지만, 1차원, 2차원으로도 충분히 가능하다. 그렇다면 그 방법은 무엇일까? 사실 우리는 그 방법을 알고 있다.


바로 수많은 차원을 우리가 볼 수 있는 차원에 본을 뜨는 거다. 3차원의 손을 2차원의 종이에 본을 뜨면 우리는 그것을 보고 그 손의 생김새를 알 수 있다. 이처럼 수많은 차원을 우리에게 익숙한 차원에 본을 뜨면, 우리는 그것을 보고 유의미한 분석을 진행할 수 있다.

PYH2009061102220001300_P4.jpg 굉장히 조국을 위해 힘썼을 것 같은 기운이 느껴진다(출처 : 연합뉴스)

그러기 위해서는 가장 적합한 '축'이 필요하다. 위 사진처럼 본을 뜰 때, 손바닥 말고 손날을 내렸다면 어떻게 나왔을까? 아마 약지가 없다는 정보를 몰랐을 것이고, 그러면 이 손이 안중근 의사의 손이라는 것도 몰랐을 것이다. 이처럼 수많은 차원에서 가장 중요한 정보를 얻을 수 있는 방향, 즉 '축'을 제대로 설정해야 한다. 그리고 축을 설정하는 방법 중 대표적인 것이 PCA다.



PCA, 분산을 기준으로 축소


PCA(principal component analysis)는 한국어로 번역하면 주성분 분석이다. 즉 데이터 중에서 가장 중요한 성분을 토대로 축을 만든다는 뜻이다. 그렇다면 그 판단은 어떻게 하는 걸까? 통계적으로 PCA는 데이터의 '분산이 가장 큰 방향'을 찾아 새로운 축을 생성한다. 즉 가장 큰 정보를 '분산'으로 잡는 것이다.


41587_2008_Article_BFnbt0308303_Fig1_HTML (1).png (출처 : https://www.nature.com/articles/nbt0308-303)

위 사진의 왼쪽 그림에 있는 모든 점은 제각각의 차원으로 존재한다. 그중 분산이 가장 큰 방향을 계산하니 우상향으로 화살표가 있는 'PC1'이라는 축이 만들어졌고, 그 축에 각 차원에서 본을 뜬(수학적으로는 수선의 발을 내린) 결과가 오른쪽이다. 그러면 "PC1으로 내리니 ER에 있는 데이터(ER+)와 ER에 없는 데이터(ER-)로 나뉘는구나. 그러면 ER에 있냐 없냐 여부가 가장 중요한 정보군!"이라고 분석할 수 있고, 어떤 차원이 ER 안에 있는지 없는지도 모두 파악할 수 있다.


그러나 PCA는 무적이 아니다. 분산을 최대화하는 방향으로 진행하는 차원 축소는 분명 훌륭한 방법이지만, 오른쪽 그림에서 맨 위(All)를 보면 검은색과 빨간색을 서로 구분하기 힘든 영역이 가운데에 있다. 그리고 실제로 위 그래프는 분석을 끝내고 빨간색을 칠한 것이지, 실제로는 전부 검은색이었다(당연한 말이다. 축에 본을 뜨기 전에 어디에 속할지 알면 1차원으로 보기 전에 20000차원을 이미 분석할 수 있다는 거니까.)


이렇게 여러 데이터가 중첩될 때는 분산 대신 다른 것을 축의 기준으로 삼아야 한다. 그 방법이 LDA다.



LDA: 분리를 최대로

LDA(Linear discriminant analysis)는 한국어로 번역하면 선형 판별 분석이다. 판별이라는 단어처럼 LDA는 차이를 확실하게 구분하는 데에 목적을 둔다. 즉 분리가 잘 되는지를 축의 기준으로 삼는다.


그런데 뭐를 분리한다는 걸까? PCA는 그런 생각을 할 필요가 없이 분산만 구하면 되어서 가장 보편적으로 많이 쓰인다. 그렇지만 LDA는 분리를 목적으로 두는 만큼, 어떤 것이 다른지 미리 알고 있어야 한다. 그래서 LDA를 사용하기 위한 전제조건이 분리를 위한 집단(cluster, 알고리즘 영역에서는 class)이다.


이 집단을 알고 있으면, 이제 그 집단을 가장 잘 구별해 주는 축을 찾는다. 그 방법은 통계적으로 검증이 되었다. 두 가지 조건을 조율하는데, 첫 번째는 집단 내 분산을 최소화하는 것이고, 두 번째는 집단 간의 거리를 최대화하는 것이다. 쉽게 말하면 지도 위에서 마을을 구분할 때 건물의 밀도가 높을수록(분산의 최소화), 그리고 마을 간의 거리가 멀수록(거리의 최대화) 더 구별이 잘 되는 것과 같은 원리다.


10.3233_aic-170729-fig3.jpg 분홍, 초록, 파랑을 아래 가로선(v1)을 축으로 삼아서 확실하게 구분해준다



결론


이런 PCA와 LDA의 차이를 표로 정리하면 다음과 같다.

제목 없음.png

결국, PCA는 언제나 쓸 수 있는 대신 서로 다른 집단(클래스)의 구분이 어려워지는 문제가 있는 반면, LDA는 집단을 알고 있어야 한다는 전제 아래에서 명확한 분류를 할 수 있는 방법이라고 할 수 있다.


점점 관측할 수 있는 기구와 데이터 저장 기술이 발달하면서 빅데이터는 날이 갈수록 늘어나고 있다. 이런 데이터를 확인하기 위해서 차원 축소가 쓰인다는 것이 어떤 느낌인지 알아둔다면, 언젠가 감당할 수 없는 미래 정보 14,000,605개의 홍수 속에서도 내게 유용한 정보만을 쏙쏙 골라 대응할 수 있을 것이다.

keyword
월요일 연재
이전 03화엄마는 일해, 나는 집에 있을게