부록 D08: 선형대수 3: 고유값, SVD, PCA
이 장에서 배울 것
이번 장에서는 고유값(eigenvalue), 고유벡터(eigenvector), 특이값분해(singular value decomposition, SVD), 주성분분석(principal component analysis, PCA)을 배웁니다. 이름만 보면 겁이 나지만, 처음부터 증명으로 들어갈 필요는 없습니다. 이 장의 목표는 “복잡한 행렬 데이터에서 중요한 방향을 찾고, 많은 변수를 적은 축으로 요약한다”는 감각을 잡는 것입니다.
핵심 용어를 먼저 정리하겠습니다.
- 고유벡터(eigenvector): 행렬이 작용해도 방향이 바뀌지 않는 특별한 벡터입니다.
- 고유값(eigenvalue): 고유벡터가 몇 배로 늘거나 줄었는지 나타내는 숫자입니다.
- 분산(variance): 값들이 평균 주변에서 얼마나 퍼져 있는지 나타내는 값입니다.
- 주성분(principal component): 데이터가 가장 많이 퍼지는 방향부터 차례로 잡은 새 축입니다.
- 설명분산(explained variance): 어떤 주성분이 데이터의 퍼짐을 얼마나 설명하는지 나타내는 양입니다.
- 설명분산비(explained variance ratio): 전체 분산 중 한 주성분이 차지하는 비율입니다.
- 특이값분해(SVD): 행렬을 중요한 방향과 세기로 나누어 보는 방법입니다.
- PCA: 복잡한 고차원 데이터를 중요한 방향 몇 개로 요약하는 방법입니다. 이 장 뒤에서는 짧게 PCA라고 쓰겠습니다.
가장 쉬운 비유: 사진을 몇 개의 큰 특징으로 요약하기
사람 얼굴 사진을 생각해 보겠습니다. 사진에는 눈, 코, 입, 얼굴형, 밝기, 그림자, 배경 등 수많은 정보가 들어 있습니다. 하지만 처음 얼굴을 구분할 때 모든 픽셀을 똑같이 보지는 않습니다. 얼굴 윤곽, 눈 위치, 명암처럼 큰 특징을 먼저 봅니다.
PCA도 비슷합니다. 데이터에 수많은 변수가 있을 때, 가장 큰 차이를 만드는 방향부터 찾습니다. 그 방향을 첫 번째 주성분이라고 합니다. 그다음으로 중요한 방향을 두 번째 주성분이라고 합니다.
단일세포 RNA-seq을 생각해 봅시다. 세포 하나는 수천~수만 개 유전자의 발현량을 가집니다. 이걸 그대로 보면 너무 복잡합니다. PCA는 세포들 사이의 가장 큰 차이를 설명하는 축을 찾아, 수천 개 유전자의 정보를 몇 개의 숫자로 요약해 줍니다.
고유벡터와 고유값의 직관
행렬은 벡터를 다른 벡터로 바꾸는 장치라고 했습니다. 대부분의 벡터는 행렬을 만나면 방향과 크기가 모두 바뀝니다. 그런데 어떤 특별한 벡터는 방향은 그대로이고 길이만 바뀝니다. 이런 벡터를 고유벡터라고 합니다.
예를 들어 다음 행렬을 보겠습니다.
A = [3 0]
[0 1]
이 행렬은 x방향은 3배로 늘리고, y방향은 그대로 둡니다. 벡터 [1,0]은 x방향만 가리킵니다.
A × [1] = [3]
[0] [0]
방향은 그대로 x방향이고 길이만 3배가 되었습니다. 따라서 [1,0]은 고유벡터이고, 고유값은 3입니다.
벡터 [0,1]은 y방향만 가리킵니다.
A × [0] = [0]
[1] [1]
이번에는 길이도 그대로입니다. 따라서 [0,1]도 고유벡터이고, 고유값은 1입니다.
입문 단계에서는 고유값을 직접 복잡하게 계산할 필요는 없습니다. “어떤 방향이 얼마나 강하게 늘어나는가”를 알려주는 숫자라고 이해하면 됩니다.
분산이 큰 방향을 찾는다는 말
데이터가 점들로 흩어져 있다고 해 봅시다. 점들이 좌우로 길게 퍼져 있고 위아래로는 조금만 퍼져 있다면, 가장 큰 변화는 좌우 방향입니다. PCA는 바로 이런 방향을 찾습니다.
좌우 방향 분산 = 10
위아래 방향 분산 = 2
전체 분산은 12입니다. 첫 번째 방향이 설명하는 비율은 다음과 같습니다.
10 / 12 = 0.833...
즉 약 83.3%입니다. 이 말은 첫 번째 주성분 하나만 봐도 데이터 퍼짐의 대부분을 설명한다는 뜻입니다.
PCA는 차원을 줄입니다
유전자 20,000개를 그대로 쓰면 세포 하나가 20,000차원 벡터가 됩니다. 사람 눈으로 볼 수 없습니다. PCA는 이 20,000차원 정보를 중요한 축 몇 개로 요약합니다.
원래 데이터: 세포 × 20,000개 유전자
PCA 후 데이터: 세포 × 50개 주성분
시각화용: 세포 × 2개 또는 3개 주성분
물론 차원을 줄이면 정보가 일부 사라질 수 있습니다. 그래서 설명분산을 확인합니다. 첫 몇 개 주성분이 전체 변동을 충분히 설명한다면, 낮은 차원 표현도 유용할 수 있습니다.
SVD는 행렬을 방향과 세기로 나누어 봅니다
SVD는 행렬을 세 부분으로 나누어 보는 방법입니다. 엄밀한 공식은 나중에 배워도 됩니다. 여기서는 다음 감각만 잡으면 됩니다.
원래 행렬 = 왼쪽 방향들 × 중요도 × 오른쪽 방향들
여기서 중요도에 해당하는 숫자들이 큰 순서대로 정렬됩니다. 큰 숫자는 데이터에서 큰 구조를 설명합니다. 작은 숫자는 상대적으로 약한 구조나 잡음을 담을 수 있습니다.
PCA는 실제 계산에서 SVD와 깊이 연결됩니다. 그래서 큰 유전자 발현 행렬을 요약할 때 SVD가 자주 등장합니다.
PCA 그림을 해석할 때 조심할 점
PCA 그림에서 점 하나는 보통 샘플 하나 또는 세포 하나입니다. 점들이 가까우면 비슷한 발현 패턴을 가진 것으로 볼 수 있습니다. 점들이 멀면 발현 패턴이 다를 수 있습니다.
하지만 PCA 그림을 너무 단순하게 믿으면 안 됩니다. 두 점이 멀리 보이는 이유가 질병 차이일 수도 있지만, 실험 날짜, 장비, 샘플 품질 차이일 수도 있습니다. 그래서 PCA는 “정답을 주는 도구”가 아니라 “데이터 구조를 확인하는 첫 지도”에 가깝습니다.
계산 감각 1: 고유값의 쉬운 해석
다음 행렬은 x방향을 4배, y방향을 2배로 늘립니다.
A = [4 0]
[0 2]
벡터 [1,0]은 4배가 되므로 고유값은 4입니다. 벡터 [0,1]은 2배가 되므로 고유값은 2입니다.
계산 감각 2: 설명분산비
두 주성분의 분산이 다음과 같다고 합시다.
PC1 분산 = 8
PC2 분산 = 2
전체 분산은 10입니다. PC1의 설명분산비는 다음과 같습니다.
8 / 10 = 0.8 = 80%
PC2는 20%를 설명합니다.
계산 감각 3: 누적 설명분산
세 주성분의 설명분산비가 다음과 같다고 합시다.
PC1 = 50%
PC2 = 30%
PC3 = 10%
PC1과 PC2를 함께 쓰면 80%를 설명합니다. PC1, PC2, PC3를 함께 쓰면 90%를 설명합니다.
생물정보학에서 왜 중요한가
PCA는 RNA-seq, 단일세포 분석, 대사체 분석, 단백체 분석에서 거의 기본처럼 등장합니다. 실험군과 대조군이 대략 나뉘는지, 배치 효과(batch effect, 실험 날짜나 장비 차이처럼 생물학적 이유가 아닌 기술적 차이)가 있는지, 이상한 샘플이 있는지 확인하는 데 유용합니다.
SVD와 PCA를 이해하면 “차원축소 그림이 예쁘다”에서 멈추지 않고, 그 그림이 무엇을 요약하고 무엇을 잃어버렸는지 생각할 수 있습니다.
보강: PCA는 큰 표를 읽기 쉬운 축으로 접는 도구입니다
PCA에서 주성분은 원래 변수 하나가 아닙니다. 많은 유전자 발현값이 섞여 만들어진 새 축입니다. 예를 들어 PC1이 처리군과 대조군을 잘 나눈다면, PC1은 여러 유전자 발현 패턴을 조합해 두 조건의 차이를 잘 보여 주는 방향일 수 있습니다.
설명분산비는 각 축이 데이터의 퍼짐을 얼마나 설명하는지 나타냅니다. PC1이 40%, PC2가 25%라면 두 축을 함께 볼 때 40% + 25% = 65%의 퍼짐을 설명합니다. 하지만 65%를 설명한다고 해서 나머지 35%가 쓸모없다는 뜻은 아닙니다. 작은 축에 중요한 생물학 신호나 잡음이 들어 있을 수 있습니다.
PCA 그림에서 점들이 나뉘어 보이면 바로 생물학적 차이라고 결론 내리면 위험합니다. 실험 날짜, 시퀀싱 장비, 샘플 처리 방식 같은 배치 효과가 그룹을 나눌 수도 있습니다. 따라서 PCA는 결론이 아니라 “어디를 더 확인해야 하는지 알려 주는 탐색 도구”로 봐야 합니다.
보강 학습: SVD와 PCA
왜 필요한가: 고차원 발현 데이터를 사람이 볼 수 있는 주요 변동 축 몇 개로 줄이기 위해 필요합니다.
공식 읽기: X ≈ UΣVᵀ. X는 원래 행렬, Σ는 각 축의 크기, U와 V는 샘플과 특징이 새 축에 놓이는 방식을 나타냅니다.
숫자 예시: PC1이 40%, PC2가 15%를 설명하면 두 축은 총 55% 변동을 보여 줍니다.
생물정보학에서 쓰이는 장면: PCA plot으로 샘플 이상치, batch, 조건별 큰 변동 방향을 탐색합니다.
흔한 오해와 주의점: PCA는 원인을 알려주는 기계가 아닙니다. PC가 batch나 품질 차이를 반영할 수도 있습니다.
핵심 정리
고유벡터는 행렬이 작용해도 방향이 바뀌지 않는 특별한 벡터이고, 고유값은 그 방향이 몇 배로 늘거나 줄었는지 나타내는 숫자입니다. PCA는 데이터가 가장 많이 퍼지는 방향부터 찾아 고차원 데이터를 낮은 차원으로 요약합니다. 설명분산비는 한 주성분이 전체 퍼짐 중 얼마를 설명하는지 나타냅니다. SVD는 행렬을 중요한 방향과 세기로 나누어 보는 방법이며, PCA와 깊게 연결됩니다.
문제 풀이
선형대수 3: 고유값, SVD, PCA
주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.
-
1. [보통] 객관식
고유벡터의 직관으로 가장 적절한 것은?
-
2. [보통] 객관식
고유값의 직관으로 맞는 것은?
-
3. [쉬움] 객관식
PCA의 주된 목적은?
-
4. [보통] 객관식
설명분산비의 뜻으로 가장 적절한 것은?
-
5. [계산] 객관식
[3 0;0 1]이 [1;0]을 몇 배로 늘리는가?
-
6. [계산] 객관식
[3 0;0 1]이 [0;1]을 몇 배로 늘리는가?
-
7. [계산] 객관식
[4 0;0 2]에서 [1;0] 방향의 고유값은?
-
8. [계산] 객관식
[4 0;0 2]에서 [0;1] 방향의 고유값은?
-
9. [계산] 객관식
PC1 분산 8, PC2 분산 2일 때 PC1 설명분산비는?
-
10. [계산] 객관식
PC1 분산 6, PC2 분산 4일 때 PC2 설명분산비는?
-
11. [계산] 객관식
분산이 5,3,2이면 전체 분산은?
-
12. [계산] 객관식
설명분산비가 50%, 30%, 10%일 때 앞 두 주성분의 누적 설명분산은?
-
13. [계산] 객관식
설명분산비가 40%, 35%, 15%일 때 세 주성분의 누적 설명분산은?
-
14. [쉬움] 객관식
PCA 그림에서 점 하나는 보통 무엇을 나타낼 수 있는가?
-
15. [보통] 객관식
PCA를 해석할 때 조심할 점은?
-
16. [보통] 객관식
SVD의 직관으로 적절한 것은?
-
17. [계산] 객관식
전체 분산 20 중 PC1이 12를 설명하면 설명분산비는?
-
18. [계산] 객관식
전체 분산 50 중 PC2가 10을 설명하면 설명분산비는?
-
19. [보통] 객관식
원래 데이터가 세포×20,000 유전자이고 PCA 후 세포×50 주성분이 되었다면 무엇이 줄었는가?
-
20. [보통] 객관식
PCA에서 첫 번째 주성분은 보통 어떤 방향인가?
-
21. [보통] 객관식
PC1 설명분산비가 0.45, PC2가 0.25이면 두 축의 누적 설명분산비는?
-
22. [보통] 객관식
PC1이 40%, PC2가 30%, PC3가 10%를 설명한다. PC1~PC3 누적 설명분산비는?
-
23. [보통] 객관식
PCA에서 주성분의 설명으로 가장 적절한 것은?
-
24. [보통] 객관식
PC1이 처리군과 대조군을 잘 나누지만 실험 날짜도 두 그룹과 완전히 겹친다. 가장 조심해야 할 해석은?
-
25. [보통] 객관식
고유값이 크다는 직관적 의미로 가장 가까운 것은?
-
26. [보통] 객관식
PCA로 1000개 유전자 차원을 PC1, PC2 두 축으로 그리는 가장 큰 이유는?
-
27. [보통] 객관식
설명분산비 0.6의 해석으로 맞는 것은?
-
28. [보통] 객관식
SVD의 직관으로 가장 적절한 것은?
-
29. [쉬움] 객관식
PCA의 목적은?
-
30. [보통] 객관식
X≈UΣVᵀ에서Σ는 직관적으로? -
31. [쉬움] 객관식
PC1 40%, PC2 15%면 합은?
-
32. [보통] 객관식
PCA plot에서 두 점이 가깝다는 뜻은?
-
33. [어려움] 객관식
PCA 과해석은?
-
주관식 34. [보통] 주관식 · Gemini 채점
PCA가 필요한 이유를 설명하라.
-
주관식 35. [보통] 주관식 · Gemini 채점
고유벡터와 고유값의 직관을 설명하라.
-
주관식 36. [보통] 주관식 · Gemini 채점
설명분산비가 무엇인지 설명하라.
-
주관식 37. [보통] 주관식 · Gemini 채점
PCA 그림을 해석할 때 조심해야 할 점을 설명하라.
-
주관식 38. [보통] 주관식 · Gemini 채점
설명분산비와 누적 설명분산비를 PCA 해석에서 어떻게 사용하는지 설명하라.
-
주관식 39. [보통] 주관식 · Gemini 채점
PCA 그림에서 군집이 나뉘어 보일 때 바로 생물학적 결론을 내리면 위험한 이유를 설명하라.
-
주관식 40. [보통] 주관식 · Gemini 채점
PC1 35%, PC2 20%, PC3 10%일 때 PC1~PC2 plot만 보면 놓칠 수 있는 점을 설명하라.
-
주관식 41. [보통] 주관식 · Gemini 채점
PCA plot에서 질병군과 정상군이 나뉠 때 batch effect를 어떻게 점검할 수 있는지 설명하라.