#L04 · 線形代数学 (Linear Algebra) · Lv.23Dマインドマップで見る

行列の積と線形変換の合成 (GEMM)

Arthur Cayley · 1858년

(AB)ij=∑k=1nAikBkj(AB)_{ij} = \sum_{k=1}^{n} A_{ik} B_{kj}
AB≠BA(Non-commutative)AB \neq BA \quad (\text{Non-commutative})

行列Aの第i行と行列Bの第j列の内積をとる演算であり、幾何学的には2つの線形変換(回転・拡大・せん断)の連続適用を意味します。

🧮 即時公式計算機 & グラフプロッター
A₁₁
A₁₂
B₁₁
B₂₁
[21−12][13]=[5.05.0]\begin{bmatrix}2 & 1\\ -1 & 2\end{bmatrix}\begin{bmatrix}1\\3\end{bmatrix} = \begin{bmatrix}5.0\\5.0\end{bmatrix}
합성 성분 (AB)₁₁ = 1행·1열
5.000
합성 성분 (AB)₂₁ = 2행·1열
5.000
변환 스케일 배율
2.236
B열 (입력)AB열 (변환)

前提概念ルート (Prerequisite Path) (11 STEP)

ルート解析機

順番にクリックすると基礎から目標公式までの3Dネオン経路を辿れます。

幾何学的・直観的解説

왜 행렬 곱셈은 같은 자리끼리 곱하지 않고 '행 × 열'로 복잡하게 곱할까요? 벡터 x에 변환 B를 먼저 가하고(Bx) 이어서 변환 A를 가한 A(Bx) 의 최종 결과 식을 정리해보면 정확히 (AB)x 의 행×열 내적 규칙이 나오기 때문입니다!

ステップ別 数式導出

  1. Step 1.1단계: 벡터 x를 y = Bx 로 변환하면 y_k = ∑_j B_{kj} x_j 입니다.
  2. Step 2.2단계: 다시 y를 z = Ay 로 변환하면 z_i = ∑_k A_{ik} y_k = ∑_j (∑_k A_{ik} B_{kj}) x_j 가 됩니다.
  3. Step 3.3단계: 따라서 합성 변환 행렬 C = AB 의 (i, j) 성분은 C_{ij} = ∑_k A_{ik} B_{kj} 로 유일하게 결정됩니다.

AI・プログラミング実戦活用

NVIDIA GPU演算の90%を占めるAIディープラーニング全結合/Attention層および3D CGのMVP変換パイプライン

#GPU Tensor Cores GEMM#Deep Learning Y=XW#3D MVP Pipeline
const matMul2 = (A:number[][], B:number[][]) => [[A[0][0]*B[0][0]+A[0][1]*B[1][0], A[0][0]*B[0][1]+A[0][1]*B[1][1]]];

線形代数学 (Linear Algebra) — 同分野の関連公式