seegongsik
내 단어장
공업수학

주성분은 가장 퍼진 방향이다

데이터 구름에서 가장 많이 퍼진 방향을 찾고, 주성분은 공분산 행렬의 고유벡터이며 그 방향만 남기면 차원이 준다

책상에 좁쌀 한 줌을 흩뿌렸다고 해봐요. 알갱이들이 둥글게 퍼진 게 아니라 한쪽으로 길쭉하게 누워 있다면, 누구나 한눈에 '이 방향으로 가장 넓게 퍼졌네'라고 짚을 수 있죠. 주성분 분석(PCA)이 묻는 게 딱 이거예요. 데이터 구름에서 가장 퍼진 방향은 어디인가. 그 방향이 제1주성분(PC1)이고, 거기에 직각인 두 번째로 퍼진 방향이 PC2예요. 놀랍게도 이 두 방향은 데이터 공분산행렬의 고유벡터고, 각 방향의 퍼진 정도(분산)가 바로 고유값이에요. 8강에서 본 그 고유 개념이, 이번엔 데이터의 퍼짐에 그대로 쓰여요.

점구름을 끌어서 빙 돌려 보세요. 손잡이를 잡고 회전시키면 구름 전체가 함께 기울어요. 어느 각도로 돌리든, 점들을 감싸는 골드 타원(공분산을 1-시그마로 그린 것)이 구름과 같이 따라 돌죠. 그리고 그 타원 안에서 가장 긴 축(초록)이 PC1, 그에 직각인 짧은 축(주황)이 PC2예요. 두 축의 길이는 각 방향 분산의 제곱근, 곧 표준편차예요. 구름을 돌려도 PC1은 언제나 가장 길게 퍼진 쪽을 정확히 가리켜요. 이 축들이 바로 점들로 계산한 공분산행렬의 고유벡터예요.

이번엔 슬라이더로 구름의 각도만 바꿔 보세요. 화살표 두 개, PC1(초록)과 PC2(주황)가 늘 따라붙어요. PC1은 분산이 가장 큰 방향, PC2는 거기에 정확히 직각인 두 번째 방향이에요. 슬라이더를 어디에 두든 두 축은 항상 90도를 유지해요. 대칭 공분산행렬의 고유벡터는 언제나 서로 직교하기 때문이에요. 그러니 주성분들은 겹치지 않는 방향들로 데이터를 깔끔하게 분해해 줘요. 한 축의 정보가 다른 축에 새지 않는다는 뜻이죠.

왜 PC1이 특별한지 직접 재 보세요. 슬라이더로 한 방향의 직선을 돌리면, 모든 점을 그 직선 위로 수직 투영해 발자국을 찍어요. 그 발자국들이 직선 위에서 얼마나 퍼졌는지가 그 방향의 분산이에요. 막대가 그 값을 보여줘요. 직선을 이리저리 돌려 보면, 분산은 PC1과 나란할 때 최댓값으로 솟고 PC2와 나란할 때 최솟값으로 가라앉아요. 그래서 PC1은 '분산을 최대로 만드는 방향'이라고도 정의해요. 가장 퍼진 방향이 곧 정보가 가장 많이 살아 있는 방향이에요.

이제 진짜 쓸모로 가요. 차원 축소예요. 토글로 PC1 또는 PC2 중 하나의 축만 남겨 보세요. 점들이 그 축 위로 납작하게 눌리고, 버려진 직각 방향은 점선 꼬리(복원 오차)로 표시돼요. 읽기 값은 버린 축의 분산, 곧 잃어버린 정보의 양이에요. PC1만 남기면 꼬리가 가장 짧아요. 가장 안 퍼진 방향을 버렸으니 잃은 게 가장 적죠. 2D를 1D로 줄이면서도 손실을 최소로 하는 것, 그게 PCA로 데이터를 압축하는 방식이에요.

마지막으로, 몇 차원이 정말 필요한지 묻는 도구예요. 슬라이더로 구름을 둥근 모양에서 아주 길쭉한 모양까지 늘여 보세요. 두 막대가 고유값의 비율을 보여줘요. 위는 람다1/(람다1+람다2), 아래는 람다2/(람다1+람다2)예요. 구름이 둥글면 두 막대가 거의 50대 50이라 한 축만 남기면 절반을 잃어요. 길쭉해질수록 PC1 막대가 100퍼센트에 다가가고 PC2는 거의 0이 돼요. 그땐 한 축만 남겨도 정보를 거의 다 지켜요. 이 '설명된 분산' 비율이, 데이터를 몇 차원으로 줄여도 괜찮은지를 알려주는 잣대예요.

빠른 적용PCA는 데이터 구름에서 가장 퍼진 방향을 찾는 일이에요. 점들의 공분산행렬을 만들고 그 고유벡터를 구하면, PC1은 분산이 가장 큰 방향, PC2는 직각인 그다음 방향이고, 두 고유값이 각 방향의 분산이에요. 8강의 고유 개념 그대로지만, 이번엔 변환행렬이 아니라 데이터의 공분산행렬이고 정답표 없이 구조를 찾는 무지도 학습이라는 점이 달라요. PC1에 투영하면 가장 적은 숫자로 가장 많은 정보를 지키니 차원 축소가 되고, 설명된 분산 비율이 몇 차원이면 충분한지 알려줘요. 얼굴 인식의 고유얼굴, 유전자 데이터 요약, 잡음 제거가 전부 이 한 아이디어 위에 서 있어요.
공업수학
이 페이지가 도움 됐다면 후원하기