부록 D06: 선형대수 1: 벡터
이 장에서 배울 것
이번 장에서는 선형대수의 첫 계단인 벡터를 배웁니다. 선형대수는 계산생물학에서 매우 중요합니다. RNA-seq, 단일세포 분석, PCA, 머신러닝, 딥러닝은 모두 벡터와 행렬 위에서 움직입니다.
핵심 용어를 먼저 정리하겠습니다.
- 벡터(vector): 여러 숫자를 순서 있게 묶은 것입니다. 방향과 크기를 가진 화살표로도 생각할 수 있습니다.
- 성분(component): 벡터 안에 들어 있는 각각의 숫자입니다.
- 차원(dimension): 벡터가 가진 성분의 개수입니다.
- 스칼라(scalar): 숫자 하나입니다.
- 스칼라곱(scalar multiplication): 벡터의 모든 성분에 같은 숫자를 곱하는 것입니다.
- 내적(dot product): 두 벡터의 대응 성분을 곱한 뒤 모두 더하는 계산입니다.
- 코사인 유사도(cosine similarity): 두 벡터가 비슷한 방향을 가리키는지 보는 방법입니다.
- 크기(norm): 벡터가 얼마나 긴지 나타내는 값입니다.
가장 쉬운 비유: 학생 한 명을 여러 점수로 표현하기
학생 한 명을 수학 점수 하나로만 표현할 수도 있습니다. 하지만 국어, 영어, 수학 점수를 함께 보면 더 많은 정보를 담을 수 있습니다.
학생 A = [국어 80, 영어 90, 수학 70]
학생 B = [국어 60, 영어 85, 수학 95]
이렇게 여러 숫자를 순서 있게 묶은 것이 벡터입니다.
생물정보학에서도 비슷합니다. 샘플 하나를 여러 유전자의 발현량으로 표현할 수 있습니다.
샘플 1 = [BRCA1 발현량, TP53 발현량, EGFR 발현량]
유전자가 3개면 3차원 벡터입니다. 유전자가 20,000개면 20,000차원 벡터입니다.
벡터는 숫자 묶음입니다
벡터는 다음처럼 쓸 수 있습니다.
v = [2, 5, 1]
이 벡터는 성분이 3개이므로 3차원 벡터입니다. 첫 번째 성분은 2, 두 번째 성분은 5, 세 번째 성분은 1입니다.
벡터는 단순한 목록처럼 보이지만, 계산할 수 있다는 점이 중요합니다. 벡터끼리 더하고, 숫자를 곱하고, 서로 얼마나 비슷한지 계산할 수 있습니다.
벡터 덧셈
두 벡터를 더할 때는 같은 위치의 성분끼리 더합니다.
[1, 2, 3] + [4, 5, 6] = [5, 7, 9]
첫 번째 성분끼리 1+4, 두 번째 성분끼리 2+5, 세 번째 성분끼리 3+6을 한 것입니다.
단, 벡터 덧셈은 차원이 같아야 합니다. [1, 2, 3]과 [4, 5]는 성분 개수가 다르므로 그대로 더할 수 없습니다.
스칼라곱
스칼라는 숫자 하나입니다. 벡터에 스칼라를 곱하면 모든 성분에 그 숫자를 곱합니다.
2 × [1, 3, 5] = [2, 6, 10]
생물 데이터에서는 정규화나 가중치 조정처럼 값을 일정하게 키우거나 줄이는 상황에서 이런 감각이 필요합니다.
벡터의 크기
2차원 벡터 [3, 4]의 크기는 피타고라스 정리로 구할 수 있습니다.
크기 = √(3² + 4²) = √(9 + 16) = √25 = 5
입문 단계에서는 “각 성분을 제곱해서 더한 뒤 제곱근을 취한다”는 계산만 잡으면 됩니다.
고차원에서도 같은 생각이 확장됩니다. 유전자 발현 벡터의 크기는 그 샘플의 전체적인 수치 규모를 나타내는 데 쓰일 수 있습니다.
내적은 두 벡터의 대응 성분을 곱해 더합니다
두 벡터가 있다고 합시다.
a = [1, 2, 3]
b = [4, 5, 6]
내적은 같은 위치의 성분을 곱한 뒤 더합니다.
내적 = 1×4 + 2×5 + 3×6 = 4 + 10 + 18 = 32
내적은 머신러닝에서 매우 중요합니다. 모델은 입력 벡터와 가중치 벡터의 내적을 계산해 예측값을 만들 수 있습니다.
코사인 유사도는 방향의 비슷함을 봅니다
두 벡터가 같은 방향을 가리키면 비슷하다고 볼 수 있습니다. 코사인 유사도는 벡터의 크기보다 방향의 유사성을 보는 방법입니다.
예를 들어 두 샘플의 전체 발현량 규모는 다르지만, 유전자들 사이의 상대적 패턴이 비슷하다면 방향이 비슷할 수 있습니다. 이럴 때 코사인 유사도가 유용할 수 있습니다.
이번 장에서는 복잡한 공식을 깊게 외우지 않아도 됩니다. 다만 내적, 크기, 방향이 서로 연결되어 있다는 점을 기억하면 됩니다.
계산 감각 1: 벡터 덧셈
[2, 1, 4] + [3, 5, 6] = [5, 6, 10]
같은 자리끼리 더합니다.
계산 감각 2: 스칼라곱
3 × [2, 0, 4] = [6, 0, 12]
모든 성분에 3을 곱합니다.
계산 감각 3: 내적
[1, 3] · [2, 4] = 1×2 + 3×4 = 14
내적은 같은 자리끼리 곱한 뒤 더하는 계산입니다.
계산 감각 4: 벡터 크기
[6, 8]의 크기 = √(6² + 8²) = √100 = 10
2차원 벡터에서는 직각삼각형의 빗변 길이와 같습니다.
생물정보학에서 왜 벡터가 중요한가
유전자 발현 데이터는 벡터와 행렬로 표현됩니다. 샘플 하나는 유전자 발현량 벡터가 될 수 있고, 세포 하나도 수천 개 유전자의 발현량 벡터가 될 수 있습니다.
단일세포 분석에서는 세포 하나하나가 고차원 벡터입니다. PCA나 UMAP 같은 차원축소는 이런 고차원 벡터들을 더 낮은 차원에서 볼 수 있게 도와줍니다. 머신러닝 모델도 입력을 벡터로 받아 계산합니다.
즉, 벡터를 모르면 현대 생물정보학의 데이터 구조를 이해하기 어렵습니다.
보강: 발현 데이터 한 줄은 벡터입니다
유전자 3개 A, B, C를 측정했고 어떤 샘플의 발현량이 (10, 5, 0)이라면 이 샘플은 3차원 벡터로 볼 수 있습니다. 다른 샘플이 (8, 4, 1)이라면 두 샘플은 숫자 묶음끼리 비교할 수 있습니다. 즉 벡터는 생물학 대상을 계산 가능한 형태로 바꾸는 첫 단계입니다.
내적은 대응 성분을 곱해서 더합니다. 예를 들어 (1, 2, 3) · (4, 0, 2) = 1×4 + 2×0 + 3×2 = 10입니다. 벡터 크기는 원점에서 얼마나 멀리 있는지 보는 값입니다. (3, 4)의 크기는 sqrt(3² + 4²) = 5입니다.
코사인 유사도는 크기보다 방향을 봅니다. 두 샘플의 전체 발현량 규모가 달라도 유전자들이 함께 높고 낮아지는 패턴이 비슷하면 방향이 비슷할 수 있습니다. 반대로 유클리드 거리는 실제 숫자 차이의 크기에 더 민감합니다. 어떤 질문을 하느냐에 따라 벡터 비교 방법이 달라집니다.
보강 학습: 벡터, dot product, 길이
왜 필요한가: 한 샘플의 여러 유전자 발현량처럼 여러 숫자를 한꺼번에 다루기 위해 필요합니다.
공식 읽기: a·b = Σ aᵢbᵢ, ||a|| = √Σaᵢ². aᵢ,bᵢ는 같은 위치의 값입니다. dot product는 자리별 곱의 합, 길이는 원점에서 떨어진 정도입니다.
숫자 예시: [1,2,3]·[4,0,2]=1×4+2×0+3×2=10, [3,4]의 길이는 5입니다.
생물정보학에서 쓰이는 장면: 선형모델, 유사도 계산, 세포/샘플 발현 벡터 비교에서 쓰입니다.
흔한 오해와 주의점: 벡터 길이가 크다고 생물학적으로 중요하다는 뜻은 아닙니다. 정규화와 스케일을 확인해야 합니다.
핵심 정리
벡터는 여러 숫자를 순서 있게 묶은 것입니다. 벡터의 각 숫자는 성분이고, 성분의 개수가 차원입니다. 벡터끼리는 같은 위치의 성분끼리 더하고, 스칼라를 곱하면 모든 성분이 함께 커지거나 작아집니다. 내적은 대응 성분을 곱해 더하는 계산이고, 벡터의 크기는 전체 길이를 나타냅니다. 생물정보학에서 샘플, 세포, 유전자 발현 패턴은 벡터로 표현될 수 있습니다.
문제 풀이
선형대수 1: 벡터
주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.
-
1. [쉬움] 객관식
벡터의 설명으로 가장 적절한 것은?
-
2. [쉬움] 객관식
벡터의 차원은 무엇으로 정하는가?
-
3. [보통] 객관식
벡터 덧셈의 원칙으로 적절한 것은?
-
4. [보통] 객관식
내적의 설명으로 가장 적절한 것은?
-
5. [계산] 객관식
[1,2,3]+[4,5,6]의 결과는?
-
6. [계산] 객관식
[2,1,4]+[3,5,6]의 결과는?
-
7. [계산] 객관식
3×[2,0,4]의 결과는?
-
8. [계산] 객관식
2×[1,3,5]의 결과는?
-
9. [계산] 객관식
[1,3]·[2,4]의 내적은?
-
10. [계산] 객관식
[1,2,3]·[4,5,6]의 내적은?
-
11. [계산] 객관식
[3,4]의 크기는?
-
12. [계산] 객관식
[6,8]의 크기는?
-
13. [계산] 객관식
벡터 [2,5,1]의 차원은?
-
14. [계산] 객관식
벡터 [7,0]의 차원은?
-
15. [계산] 객관식
[5,5]-[2,3]의 결과는?
-
16. [계산] 객관식
[2,4]와 [1,2]의 내적은?
-
17. [계산] 객관식
[0,3]의 크기는?
-
18. [계산] 객관식
[1,1,1]+[2,2,2]의 결과는?
-
19. [쉬움] 객관식
벡터
(2, 3, 5)의 차원은? -
20. [쉬움] 객관식
(1, 2, 3) + (4, 0, 2)의 결과는? -
21. [보통] 객관식
3 × (2, -1, 4)의 결과는? -
22. [보통] 객관식
(1, 2, 3) · (4, 0, 2)의 내적은? -
23. [쉬움] 객관식
벡터
(3, 4)의 크기는? -
24. [보통] 객관식
샘플 A
(10, 5, 0), 샘플 B(20, 10, 0)의 방향 관계로 가장 적절한 것은? -
25. [보통] 객관식
두 발현 벡터의 크기는 다르지만 패턴 방향이 비슷한지 보고 싶을 때 적절한 지표는?
-
26. [보통] 객관식
유전자 4개를 측정한 세포 하나의 발현 벡터는 보통 몇 차원으로 볼 수 있는가?
-
27. [쉬움] 객관식
[1,2,3]·[4,0,2]는? -
28. [쉬움] 객관식
벡터
[3,4]의 길이는? -
29. [보통] 객관식
발현량 벡터의 예로 맞는 것은?
-
30. [어려움] 객관식
dot product가 선형모델에서 중요한 이유는?
-
31. [보통] 객관식
벡터 비교 전 정규화가 필요한 이유는?
-
주관식 32. [보통] 주관식 · Gemini 채점
샘플 하나를 벡터로 표현한다는 말의 의미를 설명하라.
-
주관식 33. [보통] 주관식 · Gemini 채점
벡터 덧셈과 스칼라곱을 각각 설명하라.
-
주관식 34. [보통] 주관식 · Gemini 채점
내적이 어떤 계산인지 예 없이 말로 설명하라.
-
주관식 35. [보통] 주관식 · Gemini 채점
생물정보학에서 벡터가 중요한 이유를 설명하라.
-
주관식 36. [보통] 주관식 · Gemini 채점
유전자 발현 데이터에서 샘플 하나를 벡터로 볼 수 있는 이유를 설명하라.
-
주관식 37. [보통] 주관식 · Gemini 채점
내적과 코사인 유사도가 벡터 비교에서 각각 어떤 의미를 갖는지 설명하라.
-
주관식 38. [보통] 주관식 · Gemini 채점
a=[2,1,0],b=[3,4,5]의 dot product를 계산하라. -
주관식 39. [보통] 주관식 · Gemini 채점
유전자 발현량 벡터를 비교하기 전 정규화 여부를 확인해야 하는 이유를 설명하라.