행렬의 곱(Matrix multiplication)
두 선형변환(linear transformation)을 이어서 적용한 것. 순서가 중요해서 AB와 BA는 보통 다르다.
먼저
왼쪽은 "먼저 → 다음" 순서, 오른쪽은 반대 순서입니다. 대부분의 조합에서 결과가 다릅니다. 90° 회전(rotation) 후 가로 늘이기와, 가로 늘이기 후 90° 회전은 서로 다른 모양을 만듭니다. 수의 곱셈에서는
크기가 다른 행렬까지 모으면 m×n 행렬을 n에서 m으로 가는 화살표로 삼는 범주(category)가 되고(안쪽 크기가 맞을 때만 곱할 수 있다는 것이 화살표를 이어 붙이는 조건입니다), 두 행렬을 나란히 놓는 크로네커 곱(Kronecker product)까지 더하면 모노이드 범주가 됩니다.
예외도 있습니다. 평면에서 회전끼리는 순서가 상관없고, 각도가 더해질 뿐입니다(회전 행렬, rotation matrix). 공간에서는 축이 다른 두 회전의 순서를 바꾸면 결과가 달라집니다. 복소수 곱셈(complex multiplication)도 순서와 무관합니다. 복소수(complex number)를 곱하는 행렬들은 어느 둘을 골라도 순서를 바꿔 곱할 수 있는 특별한 모임입니다.
행렬의 곱은 여러 분야에 나타납니다.
- 각도 α만큼 돌리는 행렬과 β만큼 돌리는 행렬을 곱해 성분을 풀면, α + β 회전 행렬의 성분과 맞춰 보는 것만으로 삼각함수의 덧셈정리(angle addition formulas)가 나옵니다.
- 날씨가 오늘 맑으면 내일 비 올 확률(probability)이 얼마인지처럼, 한 상태에서 다음 상태로 옮겨 갈 확률을 모은 표를 전이 행렬(transition matrix)이라 합니다. 이 행렬을 n번 곱하면 n단계 뒤의 확률이 나오고, 이런 과정이 마르코프 연쇄(Markov chain)입니다.
- 변수가 여러 개인 함수(function)는 한 점 근처에서 행렬 하나로 근사됩니다. 그 행렬을 야코비 행렬(야코비안, Jacobian)이라 하는데, 편미분(한 변수만 움직였을 때의 변화율)들을 표로 늘어놓은 것입니다. 두 함수를 이어 붙인 함수의 야코비 행렬(Jacobian matrix)은 각 함수의 야코비 행렬의 곱이고, 이것이 여러 변수에서의 연쇄법칙(chain rule)입니다.
- 신경망(neural network)은 층을 지날 때마다 입력에 행렬을 곱하고, 이어서 휘어진 함수를 한 번 적용합니다. 학습에 쓰는 역전파(backpropagation)는 층마다의 야코비 행렬을 출력 쪽부터 거꾸로 곱해 나가며, 각 가중치(weight)를 조금 바꾸면 오차가 얼마나 변하는지 계산합니다(자동 미분(automatic differentiation)의 후진 모드(reverse mode)).
- 합을 최솟값으로, 곱을 덧셈으로 바꾼 (min, +) 곱
로 도로 지도의 거리표를 거듭 곱하면 최단 경로(shortest path)의 길이가 나옵니다. 자기 자신까지의 거리가 0인 완성된 거리표 D가 를 만족한다는 것이 곧 삼각부등식(triangle inequality)이고, 이것이 거리 공간(metric space)을 범주로 읽는 풍부화된 범주(enriched category)의 출발점입니다.
n×n 행렬 둘을 정의대로 곱하면 수의 곱셈이
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 연쇄법칙
… 19세기 독일 수학자 야코비의 이름을 따 야코비 행렬이라 부릅니다. 함수를 합성하면 이 행렬들이곱해지니, 1변수 연쇄법칙은 이 행렬 곱셈의 1×1 경우입니다. e^{g(x)} 의 미분이 …
- 행렬
… 그 수를 곱하는 일은 기울기 m 인 직선 y = mx 입니다. 행렬 두 개를 이어 적용하는 것이행렬의 곱입니다. a = d , b = -c 인 행렬, 곧 \begin{bmatrix} a & -c \\ c & a …
- 회전 행렬
… R_\alpha R_\beta = R_{\alpha+\beta} ), 순서를 바꿔도 결과가 같습니다(행렬의 곱). 90° 회전은 i를 곱하는 일입니다. 이 90° 회전 행렬을 '속도 = 행렬 × 위치'라는 …
- 삼각함수의 덧셈정리
… 쪼개 옮깁니다. 그 합을 성분으로 적으면 그대로 덧셈정리입니다. 행렬로 쓰면 회전 행렬 두 개의곱입니다. 복소수 곱셈으로 보면 더 짧습니다. e^{i\alpha}e^{i\beta} = …
- 마르코프 연쇄
… \pi P = \pi . 곧 P 의 고유값 1에 대응하는 고유벡터입니다. 하루하루 곱하는 일은행렬의 곱이 쌓이는 것이라, k일 뒤의 분포는 오늘의 분포에 P^k 를 곱한 것입니다. 왜 모일까요? 상태가 …
- 피보나치 수열
… 행렬 곱셈 하나로 쓸 수 있습니다: . 그러니 F_n 을 구하는 일은 같은 행렬을 거듭 곱하는 일(행렬의 곱)이고, 거듭제곱은 대각화로 쉬워집니다. 행렬을 곱해도 같은 직선 위에 머물고 \lambda 배가 될 …
- 가우스 소거법
… 해는 한 점이 아니라 노란 직선 전체입니다. 행 연산 하나하나는 간단한 행렬을 왼쪽에 곱하는 일, 곧행렬의 곱이기도 합니다. 정사각행렬 오른쪽에 단위행렬(대각선이 1이고 나머지가 0인 행렬)을 붙이고 같은 연산을 …
- 그래프
… 것이 인접 행렬 A 입니다. i와 j가 이어져 있으면 (i, j) 성분이 1입니다. 를 눌러 보세요.행렬을 거듭 곱한A^k 의 (i, j) 성분은 i에서 j로 가는 길이 k인 걸음의 개수입니다. 여기서 길이 k인 걸음이란 …
- 최단 경로
… 가장 빠른 속력으로 나눈 값을 씁니다). 모든 두 점 사이의 최단 거리를 한꺼번에 구하는 방법도 있습니다.행렬의 곱에서 곱셈을 덧셈으로, 합을 최솟값으로 바꾼 '최소-합 곱'을 생각하면, 그 (i, j) 성분은 i에서 …
- 페이지랭크
… = \tfrac{1-d}{n}\mathbf 1 의 해로 구할 수도 있지만, 페이지가 수십억 개일 때는행렬과 벡터의 곱만 되풀이하는 이 거듭제곱법이 가장 실용적입니다. 얼마나 빨리 수렴할까요? 성분별 차이의 절댓값을 모두 …
- 신경망
… 필요할까요? 층 하나는 행렬 W를 곱하고 벡터 b를 더하는 일입니다. 구부리는 함수 없이 층을 쌓으면행렬의 곱은 다시 행렬 하나이므로, 몇 층을 쌓아도 선형변환 하나(와 평행이동)와 다를 바가 없습니다. 층 …
- 역전파
… 미분한 값을 모은 행렬(독일 수학자 야코비의 이름을 딴 야코비 행렬)이고 연쇄법칙은 그 행렬들의곱입니다. 손실은 수 하나이므로 L 쪽부터 곱해 나가면 매번 '벡터 × 행렬'로 끝나지만, 입력 쪽부터 …
- 분할 정복
… 같은 요령은 행렬에도 통합니다. 1969년 독일의 수학자 폴커 슈트라센은 행렬을 2×2 블록으로 나눈행렬의 곱을 여덟 번이 아닌 일곱 번의 블록 곱으로 해냈습니다. 블록 곱 하나는 반 크기 행렬의 곱이고, 블록을 …
- 동적 계획법
… 채우는 동적 계획법입니다. 최단 경로의 표를 채우는 식 \min_b\,(d_{ab} + d_{bc}) 는행렬의 곱에서 합을 최솟값으로, 곱을 덧셈으로 바꾼 (min, +) 곱이고, 다 채운 거리표가 이 곱을 해도 더는 …
- 오류 정정 부호
… 곱한 것이 부호어이니, 부호어들은 생성 행렬의 열공간입니다. 받은 비트열에 검사 행렬을 곱하면(행렬의 곱) 부호어일 때는 0이 나오고, 비트 하나가 뒤집혔을 때는 그 자리에 따라 정해진 값이 나옵니다. 이 …
- 사원수
… = i , ki = j 인데, 순서를 바꾸면 ji = -k , kj = -i , ik = -j 입니다.행렬의 곱처럼 곱하는 순서에 따라 값이 달라지는, 곧 곱셈의 교환법칙이 성립하지 않는 수입니다. 해밀턴의 결단은 …
- 특잇값 분해
… v_2 방향의 단위벡터 \vec u_1, \vec u_2 로 돌립니다( U ). 오른쪽에서 왼쪽으로 읽는행렬의 곱으로 쓰면 A = U\Sigma V^{\mathsf T} 입니다. 단계 t = 를 0에서 3까지 끌어 …
- 기울기 벡터와 야코비 행렬
… F}(P) = J_G(F(P))\,J_F(P) 이고, 1변수 연쇄법칙은 이것의 1×1 경우입니다(행렬의 곱). 출력이 수 하나인 f의 야코비 행렬은 1×n 가로줄이고, 이것을 세로로 세운 것이 ∇f입니다. 한 번 …
- 자동 미분
… 뉴턴 방법: 방정식 여러 개를 함께 풀 때 필요한 야코비 행렬도 자동 미분으로 얻습니다.행렬의 곱: 곱하는 순서가 비용을 가른다는 점은 행렬 곱의 결합법칙과 같은 이야기입니다. (AB)C 와 A(BC) …
- 인공지능
… 0으로 바꾸어 출력은 0입니다. 출력이 여러 개면 가중치가 가로세로 표(행렬)를 이룹니다. 그래서 한 층은행렬 곱을 하고 치우침을 더한 뒤 비선형 함수를 붙인 것입니다. 학습은 이 가중치와 치우침을 조금씩 바꿔 손실을 …
- 어텐션
… 두면, QK^{\mathsf T} 의 (i, j) 칸이 i번째 쿼리와 j번째 키의 내적이므로 모든 점수가행렬 곱한 번으로 나옵니다. 행마다 소프트맥스를 하고 V를 곱하면 끝입니다. 토큰 n개가 서로를 모두 보므로 점수 …
- 트랜스포머
… 있어서 학습할 때도 길이 방향으로 차례차례 계산해야 합니다. 트랜스포머는 학습할 때 모든 위치를 한꺼번에행렬 곱으로 계산하므로 GPU의 병렬 계산을 잘 씁니다. 또 어느 두 위치 사이든 어텐션 한 번이면 정보가 …
- 범주론
… 행렬. 대상은 자연수 0, 1, 2, …이고, n에서 m으로 가는 화살표는 m×n 행렬입니다. 합성은행렬의 곱이고 항등 화살표는 단위행렬입니다. 크기가 맞는 행렬끼리만 곱할 수 있다는 규칙이 곧 '끝과 시작이 …
- 모노이드
… 0. 실수 전체에서는 가장 작은 수가 없으므로 −∞를 덧붙여야 항등원이 생깁니다), n×n 행렬과행렬의 곱(항등원 단위행렬), 집합 X에서 X로 가는 함수들과 합성(항등원 항등 함수)이 모두 모노이드입니다. …
- 상태 공간 모형과 선형 순환
… 없는 '선형 어텐션'에 감쇠를 붙인 것입니다. 이 쌍대성 덕분에 짧은 구간 안에서는 GPU가 잘하는행렬 곱으로, 구간 사이에서는 되풀이로 계산할 수 있고, 논문은 Mamba의 선택적 스캔보다 2–8배 빠르다고 …
- 모노이드 범주와 끈 그림
… G 라 합니다. 곱하기 기호처럼 생겼지만 2\times 2 둘에서 4\times 4 를 만드는,행렬의 곱과는 다른 연산입니다. 이제 둘 사이를 잇는 일을 하나 넣습니다. h는 '비가 오면 램프 스위치를 한 번 …
- 풍부화된 범주: 거리를 범주로
… W\odot W 의 (i, k) 칸은 '도로를 둘까지 써서 i에서 k로 가는 가장 짧은 길'입니다.행렬의 곱\sum_j A_{ij}B_{jk} 에서 합을 최솟값으로, 곱을 덧셈으로 바꾼 것이고, 이 산술을 …
- 반환
… 합시다. 칸 (i, j)에 'i에서 j로 곧장 가는 도로의 수'를 적은 표(행렬)를 A라 합시다. 보통의행렬의 곱으로 A를 제곱하면, A²의 칸 (P, R)는 '도로 두 개를 써서 P에서 R로 가는 길의 수'입니다. …