Mathematics

[선형대수학#4] 행렬의 종류

j.d 2025. 9. 21. 23:11

이번 글에서는 대표적인 행렬 유형과 부분·분할(블록) 행렬을 정리하도록 하겠습니다.

목차
  1. 대각 행렬 · 영행렬
  2. 스칼라 행렬 · 항등 행렬
  3. 상·하삼각 행렬
  4. 대칭 · 교대 대칭 행렬
  5. 부분 행렬
  6. 분할(블록) 행렬
  7. Gradient Descent와 분할 계산

대각 행렬 · 영행렬

대각 행렬(diagonal): 주대각선 밖이 모두 0.

\[ \begin{bmatrix} 1 & 0 & 0\\ 0 & 2 & 0\\ 0 & 0 & 3 \end{bmatrix} \]

영행렬(zero): 모든 원소가 0.

\[ \begin{bmatrix} 0 & 0 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{bmatrix} \]

스칼라 행렬 · 항등 행렬

스칼라 행렬(scalar): 대각 성분이 모두 동일한 대각 행렬.

\[ \begin{bmatrix} 4&0&0\\ 0&4&0\\ 0&0&4 \end{bmatrix} \]

항등 행렬(identity): 대각 성분이 1. 모든 \(n\times n\) 행렬 \(A\)에 대해 \(AI=IA=A\).

\[ I=\begin{bmatrix} 1&0&0\\ 0&1&0\\ 0&0&1 \end{bmatrix} \qquad AI=A,\ IA=A. \]

상·하삼각 행렬

상삼각(upper triangular): 주대각선 아래가 0. 하삼각(lower triangular): 주대각선 위가 0.

상삼각 예시: \[ \begin{bmatrix} 1 & 2 & 3\\ 0 & 4 & 5\\ 0 & 0 & 6 \end{bmatrix} \] \qquad 하삼각 예시: \[ \begin{bmatrix} 7 & 0 & 0\\ 8 & 9 & 0\\ 1 & 2 & 3 \end{bmatrix} \]

가우스 소거, LU 분해 같은 선형시스템 해법에서 핵심적으로 등장합니다.

대칭 · 교대 대칭 행렬

대칭(symmetric): \(A=A^T\). 교대 대칭(skew symmetric): \(A^T=-A\).

대칭 예시: \[ \begin{bmatrix} 2 & -1 & 0\\ -1 & 3 & 4\\ 0 & 4 & 5 \end{bmatrix} \] \qquad 교대 대칭 예시: \[ \begin{bmatrix} 0 & 2 & -3\\ -2 & 0 & 1\\ 3 & -1 & 0 \end{bmatrix} \]

대칭 행렬은 실수 고유값과 직교 고유벡터를 가지며(특히 실대칭), 최적화의 곡률(헤세) 분석과 PCA에서 중요합니다.

부분 행렬 (Submatrix)

큰 행렬에서 특정 행과 열을 골라 만든 작은 행렬. 예시:

\[ \begin{bmatrix} 1 & 3 & 2\\ 0 & 0 & -1\\ 0 & 0 & 4 \end{bmatrix} \Rightarrow \begin{bmatrix} 1 & 2\\ 0 & -1 \end{bmatrix} \]

분할(블록) 행렬 (Partitioned / Block Matrix)

큰 행렬을 블록 단위로 나눠 표시·연산하는 방법. 전형적인 2×2 블록 곱은 다음과 같습니다.

\[ A= \begin{bmatrix} A_{11}&A_{12}\\ A_{21}&A_{22} \end{bmatrix},\quad B= \begin{bmatrix} B_{11}&B_{12}\\ B_{21}&B_{22} \end{bmatrix} \Rightarrow AB= \begin{bmatrix} A_{11}B_{11}+A_{12}B_{21} & A_{11}B_{12}+A_{12}B_{22}\\ A_{21}B_{11}+A_{22}B_{21} & A_{21}B_{12}+A_{22}B_{22} \end{bmatrix} \]

Gradient Descent와 분할 계산

경사하강법에서 파라미터 \(\theta\)는 고차원 벡터(또는 행렬/텐서)이며 업데이트는 \(\theta \leftarrow \theta - \alpha \nabla_\theta J(\theta)\) 로 진행됩니다. 이때 부분 행렬은 전체 데이터/파라미터에서 필요한 행·열만 선택해 미니배치 기울기나 부분 파라미터 갱신을 수행할 때 쓰이고, 분할(블록) 행렬은 거대한 행렬 곱을 블록 단위로 쪼개 여러 GPU·노드에서 병렬 계산 후 조합해 메모리 사용과 통신을 줄이는 데 활용됩니다.