5 분 소요

이 장에서 배울 것

이번 장에서는 행렬(matrix)을 배웁니다. 행렬은 숫자를 가로와 세로로 배열한 표입니다. 그런데 그냥 표가 아닙니다. 더하고, 곱하고, 데이터를 변환할 수 있는 계산 가능한 표입니다. 생물정보학에서 유전자 발현표, 단일세포 데이터, 이미지 데이터, 머신러닝 입력 자료는 거의 모두 행렬로 생각할 수 있습니다.

핵심 용어를 먼저 정리하겠습니다.

  • 행(row): 행렬에서 가로줄입니다.
  • 열(column): 행렬에서 세로줄입니다.
  • 원소(element): 행렬 안에 들어 있는 각각의 숫자입니다.
  • 행렬(matrix): 숫자를 행과 열로 정리한 직사각형 표입니다.
  • 크기(shape): 행렬이 몇 행 몇 열인지 나타낸 것입니다. 예를 들어 2행 3열 행렬은 2×3 행렬입니다.
  • 전치(transpose): 행과 열을 서로 바꾸는 것입니다.
  • 단위행렬(identity matrix): 곱해도 대상을 그대로 두는 특별한 행렬입니다.
  • 역행렬(inverse matrix): 어떤 행렬의 작용을 되돌리는 행렬입니다. 입문 단계에서는 “되돌리기 행렬” 정도로 이해하면 됩니다.
  • 계수(rank): 행렬 안에 서로 겹치지 않는 정보가 얼마나 들어 있는지 보는 값입니다.

행렬의 기본 생각

가장 쉬운 비유: 여러 학생의 여러 과목 점수표

학생 세 명의 국어, 영어, 수학 점수를 표로 적어 보겠습니다.

        국어  영어  수학
학생1    80   90   70
학생2    60   85   95
학생3    75   65   80

이 표는 3행 3열 행렬로 볼 수 있습니다. 행은 학생이고, 열은 과목입니다. 생물정보학에서는 이 구조가 그대로 반복됩니다.

        유전자1  유전자2  유전자3
샘플1      10      5      0
샘플2       3      8      2
샘플3       7      1      9

여기서 행은 샘플이고, 열은 유전자입니다. 단일세포 분석에서는 행이 세포이고 열이 유전자인 경우가 많습니다. 즉, 행렬은 생물 데이터를 담는 가장 기본적인 그릇입니다.

행렬의 크기 읽기

다음 행렬을 보겠습니다.

A = [1 2 3]
    [4 5 6]

가로줄이 2개이고 세로줄이 3개입니다. 따라서 A는 2행 3열 행렬입니다. 보통 2×3 행렬이라고 씁니다. 앞의 숫자는 행의 개수, 뒤의 숫자는 열의 개수입니다.

행렬의 크기를 읽는 습관은 중요합니다. 행렬 계산에서는 크기가 맞아야 계산할 수 있는 경우가 많기 때문입니다. 벡터 덧셈에서 차원이 같아야 했던 것처럼, 행렬도 모양이 맞아야 계산이 됩니다.

행렬 덧셈

행렬 덧셈은 같은 위치의 원소끼리 더합니다.

[1 2] + [5 6] = [6  8]
[3 4]   [7 8]   [10 12]

왼쪽 위는 1+5=6, 오른쪽 위는 2+6=8입니다. 왼쪽 아래는 3+7=10, 오른쪽 아래는 4+8=12입니다.

행렬 덧셈은 두 행렬의 크기가 같아야 합니다. 2×2 행렬과 2×3 행렬은 그대로 더할 수 없습니다.

스칼라곱

행렬에 숫자 하나를 곱하면 모든 원소에 그 숫자를 곱합니다.

2 × [1 2] = [2 4]
    [3 4]   [6 8]

이 계산은 유전자 발현값을 일정 배율로 조정하는 상황을 떠올리면 됩니다. 실제 정규화는 훨씬 조심스럽지만, “모든 값에 같은 규칙을 적용한다”는 감각은 여기서 시작합니다.

행렬과 벡터의 곱

행렬은 벡터를 다른 벡터로 바꿀 수 있습니다. 다음 행렬과 벡터를 보겠습니다.

A = [1 2]
    [3 4]

x = [5]
    [6]

A×x를 계산할 때는 행렬의 각 행과 벡터를 내적합니다.

첫 번째 값 = 1×5 + 2×6 = 17
두 번째 값 = 3×5 + 4×6 = 39

A×x = [17]
      [39]

처음에는 어렵게 느껴질 수 있지만, 핵심은 “행 하나와 벡터 하나를 대응시켜 곱하고 더한다”입니다.

행렬 곱셈은 왜 그냥 자리끼리 곱하지 않을까

행렬 곱셈은 같은 위치끼리 곱하는 계산이 아닙니다. 행렬 곱셈은 “앞 행렬의 행”과 “뒤 행렬의 열”을 내적해 새 원소를 만듭니다.

예를 들어 다음을 계산해 보겠습니다.

A = [1 2]     B = [5 6]
    [3 4]         [7 8]

A×B의 왼쪽 위 원소는 A의 첫 번째 행 [1,2]와 B의 첫 번째 열 [5,7]의 내적입니다.

1×5 + 2×7 = 19

오른쪽 위 원소는 A의 첫 번째 행 [1,2]와 B의 두 번째 열 [6,8]의 내적입니다.

1×6 + 2×8 = 22

같은 방식으로 계산하면 다음과 같습니다.

A×B = [19 22]
      [43 50]

이 계산은 머신러닝과 차원축소에서 계속 등장합니다. 딥러닝의 층(layer, 입력을 받아 다른 표현으로 바꾸는 계산 단계)도 본질적으로는 행렬곱을 많이 사용합니다.

전치: 행과 열을 바꾸기

전치는 행과 열을 바꾸는 작업입니다.

A = [1 2 3]
    [4 5 6]

A의 전치는 다음과 같습니다.

Aᵀ = [1 4]
     [2 5]
     [3 6]

2×3 행렬이 3×2 행렬로 바뀌었습니다. 생물정보학에서는 “샘플×유전자” 행렬을 “유전자×샘플” 관점으로 바꿔야 할 때가 있습니다. 이때 전치라는 생각이 유용합니다.

단위행렬과 역행렬의 직관

단위행렬은 곱해도 대상을 그대로 두는 행렬입니다.

I = [1 0]
    [0 1]

예를 들어 I에 벡터 [3,4]를 곱하면 [3,4]가 그대로 나옵니다. 숫자에서 1을 곱하면 값이 그대로인 것과 비슷합니다.

역행렬은 어떤 행렬의 작용을 되돌리는 행렬입니다. 예를 들어 어떤 행렬이 데이터를 특정 방향으로 늘리거나 줄였다면, 역행렬은 그 변화를 원래대로 되돌리는 역할을 합니다. 모든 행렬에 역행렬이 있는 것은 아닙니다. 정보가 사라진 변환은 완전히 되돌릴 수 없습니다.

계수는 겹치지 않는 정보의 수를 보는 감각입니다

계수는 입문자에게 어려운 개념입니다. 처음에는 “행렬 안에 진짜 독립적인 정보가 얼마나 있는가” 정도로 이해하면 됩니다.

예를 들어 두 열이 완전히 같은 정보를 담고 있다면, 열이 두 개여도 새 정보가 두 배로 늘어난 것은 아닙니다.

[1 2]
[2 4]
[3 6]

두 번째 열은 첫 번째 열의 2배입니다. 이런 경우 두 열은 사실상 같은 방향의 정보를 담고 있습니다. 데이터 분석에서는 이런 중복 정보가 많을 수 있습니다. PCA나 차원축소는 이런 중복을 줄이는 데 도움을 줍니다.

계산 감각 1: 행렬 크기

[1 2 3]
[4 5 6]

이 행렬은 2행 3열이므로 2×3 행렬입니다.

계산 감각 2: 행렬 덧셈

[1 2] + [3 4] = [4 6]
[5 6]   [7 8]   [12 14]

같은 위치끼리 더합니다.

계산 감각 3: 행렬과 벡터 곱

[1 2] × [3] = [1×3 + 2×4] = [11]
[0 1]   [4]   [0×3 + 1×4]   [4]

첫 번째 행은 11, 두 번째 행은 4를 만듭니다.

생물정보학에서 왜 행렬이 중요한가

RNA-seq의 발현량 표, 단일세포의 세포×유전자 행렬, 단백질 특징표, 임상 변수표는 모두 행렬로 표현할 수 있습니다. 행렬을 이해하면 데이터가 단순 표가 아니라 계산 가능한 구조라는 점을 볼 수 있습니다.

PCA, 회귀모델, 머신러닝, 딥러닝은 행렬 위에서 작동합니다. 그러니 행렬은 수학 파트의 중간 주제가 아니라, 생물정보학 데이터를 실제로 다루기 위한 기본 언어입니다.

보강: 행렬 계산은 데이터 표를 변환하는 일입니다

생물정보학에서 행렬은 단순한 표가 아닙니다. 예를 들어 행이 샘플, 열이 유전자라면 3×4 행렬은 샘플 3개와 유전자 4개를 담은 데이터입니다. 이 행렬을 전치하면 유전자 4개를 행으로, 샘플 3개를 열로 보는 관점으로 바뀝니다.

행렬-벡터곱은 가중합으로 이해하면 쉽습니다. 유전자 발현 벡터가 (10, 5)이고 가중치 벡터가 (2, -1)이면 점수는 10×2 + 5×(-1) = 15입니다. 즉 첫 번째 유전자는 점수를 올리고, 두 번째 유전자는 점수를 낮추는 식으로 하나의 예측 점수를 만들 수 있습니다.

초보자가 자주 하는 실수는 행렬곱을 자리끼리 곱하는 계산으로 착각하는 것입니다. 행렬곱은 행과 열을 맞춰 내적을 반복하는 계산입니다. 그래서 2×3 행렬3×1 벡터는 곱할 수 있지만, 2×3 행렬2×1 벡터는 안쪽 크기 3과 2가 맞지 않아 곱할 수 없습니다.

보강 학습: 행렬과 design matrix

왜 필요한가: 많은 샘플과 많은 특징을 한 번에 계산하기 위해 행렬이 필요합니다.

공식 읽기: y ≈ Xβ. X는 샘플×특징 행렬, β는 각 특징의 계수, y는 결과값입니다.

숫자 예시: X=[[1,2],[1,5]], β=[3,4]이면 두 번째 예측값은 1×3+5×4=23입니다.

생물정보학에서 쓰이는 장면: 유전자 발현 행렬, 회귀모델의 design matrix, batch 보정 모델에서 쓰입니다.

흔한 오해와 주의점: 행과 열의 의미를 바꾸면 해석이 완전히 달라집니다. 행이 샘플인지 유전자인지 먼저 확인해야 합니다.

핵심 정리

행렬은 숫자를 행과 열로 정리한 계산 가능한 표입니다. 행은 가로줄, 열은 세로줄, 원소는 행렬 안의 숫자입니다. 행렬은 같은 위치끼리 더할 수 있고, 모든 원소에 같은 숫자를 곱할 수 있으며, 벡터나 다른 행렬과 곱해 새로운 값을 만들 수 있습니다. 전치는 행과 열을 바꾸는 것이고, 단위행렬은 곱해도 대상을 그대로 두는 행렬입니다. 생물정보학의 많은 데이터는 행렬로 표현됩니다.

문제 풀이

선형대수 2: 행렬

0 / 45
Gemini AI 채점

주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.

API KEY 미등록
  1. 1. [쉬움] 객관식

    행렬의 설명으로 가장 적절한 것은?

    선택지
  2. 2. [쉬움] 객관식

    2×3 행렬의 의미로 맞는 것은?

    선택지
  3. 3. [보통] 객관식

    행렬 덧셈의 원칙은?

    선택지
  4. 4. [보통] 객관식

    전치의 설명으로 가장 적절한 것은?

    선택지
  5. 5. [계산] 객관식

    다음 행렬의 크기는? [1 2 3] / [4 5 6]

    선택지
  6. 6. [계산] 객관식

    [1 2; 3 4]+[5 6; 7 8]의 결과는?

    선택지
  7. 7. [계산] 객관식

    2×[1 2; 3 4]의 결과는?

    선택지
  8. 8. [계산] 객관식

    [1 2; 0 1]×[3;4]의 결과는?

    선택지
  9. 9. [계산] 객관식

    [1 2; 3 4]×[5;6]의 결과는?

    선택지
  10. 10. [계산] 객관식

    [1 2; 3 4]의 전치는?

    선택지
  11. 11. [계산] 객관식

    단위행렬 [1 0;0 1]에 [3;4]를 곱하면?

    선택지
  12. 12. [계산] 객관식

    행렬곱 [1 2;3 4]×[5 6;7 8]의 왼쪽 위 원소는?

    선택지
  13. 13. [계산] 객관식

    행렬곱 [1 2;3 4]×[5 6;7 8]의 오른쪽 위 원소는?

    선택지
  14. 14. [계산] 객관식

    행렬곱 [1 2;3 4]×[5 6;7 8]의 왼쪽 아래 원소는?

    선택지
  15. 15. [계산] 객관식

    행렬곱 [1 2;3 4]×[5 6;7 8]의 오른쪽 아래 원소는?

    선택지
  16. 16. [보통] 객관식

    2×2 행렬과 2×3 행렬을 더할 수 없는 이유는?

    선택지
  17. 17. [쉬움] 객관식

    샘플×유전자 행렬에서 행이 샘플이라면 열은 보통 무엇인가?

    선택지
  18. 18. [보통] 객관식

    두 열이 완전히 같은 비율로 움직이면 계수 관점에서 어떤 문제가 생길 수 있는가?

    선택지
  19. 19. [계산] 객관식

    행렬 [9]의 크기는?

    선택지
  20. 20. [쉬움] 객관식

    행렬 [1 0;0 1]의 이름으로 적절한 것은?

    선택지
  21. 21. [계산] 객관식

    행렬 [2 0;0 3]이 벡터 [1;1]에 작용하면 결과는?

    선택지
  22. 22. [계산] 객관식

    행렬 [2 1;1 0]과 벡터 [3;4]의 곱 결과는?

    선택지
  23. 23. [계산] 객관식

    3×[0 2;5 1]의 결과는?

    선택지
  24. 24. [보통] 객관식

    행렬을 생물정보학에서 중요하게 보는 이유로 가장 적절한 것은?

    선택지
  25. 25. [쉬움] 객관식

    샘플 5개와 유전자 3개의 발현표를 “행=샘플, 열=유전자”로 놓으면 행렬 크기는?

    선택지
  26. 26. [쉬움] 객관식

    2×3 행렬을 전치하면 크기는?

    선택지
  27. 27. [보통] 객관식

    행렬 [[1,2],[3,4]]와 벡터 (10,1)의 곱 결과 첫 번째 성분은?

    선택지
  28. 28. [보통] 객관식

    같은 계산에서 두 번째 성분은?

    선택지
  29. 29. [보통] 객관식

    2×3 행렬과 곱할 수 있는 벡터의 길이는?

    선택지
  30. 30. [보통] 객관식

    행렬 [[1,2],[3,4]] + [[5,6],[7,8]]의 오른쪽 아래 원소는?

    선택지
  31. 31. [보통] 객관식

    행렬-벡터곱을 생물정보학적으로 해석한 것으로 가장 적절한 것은?

    선택지
  32. 32. [보통] 객관식

    rank가 낮다는 말을 데이터 관점에서 해석하면 가장 가까운 것은?

    선택지
  33. 33. [쉬움] 객관식

    3개 샘플과 4개 유전자의 샘플×유전자 행렬 크기는?

    선택지
  34. 34. [보통] 객관식

    X=[[1,2],[1,5]], β=[3,4]에서 두 번째 예측값은?

    선택지
  35. 35. [보통] 객관식

    design matrix의 첫 열이 모두 1인 흔한 이유는?

    선택지
  36. 36. [쉬움] 객관식

    행렬에서 행과 열 의미를 확인해야 하는 이유는?

    선택지
  37. 37. [보통] 객관식

    발현 행렬을 ML 입력으로 쓸 때 열은 보통?

    선택지
  38. 주관식 38. [보통] 주관식 · Gemini 채점

    행렬이 생물정보학에서 중요한 이유를 설명하라.

  39. 주관식 39. [보통] 주관식 · Gemini 채점

    행렬 덧셈과 행렬의 스칼라곱을 각각 설명하라.

  40. 주관식 40. [보통] 주관식 · Gemini 채점

    전치가 무엇인지 설명하라.

  41. 주관식 41. [보통] 주관식 · Gemini 채점

    단위행렬의 직관을 설명하라.

  42. 주관식 42. [보통] 주관식 · Gemini 채점

    행렬-벡터곱을 가중합 관점에서 설명하라.

  43. 주관식 43. [보통] 주관식 · Gemini 채점

    행렬 전치가 생물정보학 데이터 해석에서 어떤 관점 전환을 만드는지 설명하라.

  44. 주관식 44. [보통] 주관식 · Gemini 채점

    샘플 2개, 유전자 3개 발현량 [5,2,0], [1,4,3]을 샘플×유전자 행렬로 쓰라.

  45. 주관식 45. [보통] 주관식 · Gemini 채점

    차등발현 분석에서 design matrix에 batch 열을 넣는 이유를 설명하라.