マトリックス(マトリックス)
行と列で構成される 2 次元データ構造。3D グラフィックスの座標変換、機械学習のテンソル演算、CSS の transform、暗号化等で広く使われる。
概要
マトリックス(Matrix / 行列)は、行と列で構成される 2 次元データ構造で、コンピュータグラフィックス・機械学習・物理シミュレーション・暗号理論等の核となる数学概念である。3D グラフィックスでは座標変換(Translate / Rotate / Scale / Projection)を 4×4 行列で表現し、機械学習では入力 × 重み行列の積でニューラルネットの伝播を計算する。2026 年現在、ハードウェアレベルでは NVIDIA Tensor Core / Apple AMX / Google TPU 等の行列演算専用アクセラレータが GPU / SoC に標準搭載されている。
主な用途
3D グラフィックス(4×4 行列)
| 行列 | 用途 |
|---|---|
| Model 行列 | オブジェクトのワールド配置 |
| View 行列 | カメラ位置・向き |
| Projection 行列 | 透視投影・正射投影 |
| MVP 行列 | 3 つの積、頂点シェーダで使用 |
| Bone 行列 | スケルタルアニメーション |
// 頂点シェーダの典型例
gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.0);
機械学習・AI
- 重み行列: 入力 N 次元 × 出力 M 次元の重みパラメータ
- アテンション行列: Transformer の Q × K^T、シーケンス内関連度
- テンソル: 多次元配列、行列の高次元拡張(PyTorch / TensorFlow / JAX)
- 行列分解: SVD / PCA / NMF で次元削減
CSS / Web
.element {
transform: matrix3d(1,0,0,0, 0,1,0,0, 0,0,1,0, 100,200,0,1);
}
3D Translate / Rotate / Scale / Skew を 1 個の 4×4 行列で表現。
暗号
- AES(Advanced Encryption Standard): State 4×4 行列で各種演算
- 行列暗号: Hill 暗号等の古典暗号
- 格子暗号(Lattice-based): 量子コンピュータ耐性の次世代暗号、行列演算が中核
ハードウェア行列アクセラレータ
| ハードウェア | 名称 | 性能 |
|---|---|---|
| NVIDIA RTX 5090 | Tensor Core 第 5 世代 | 3,352 TOPS(INT8) |
| NVIDIA H100 | Tensor Core 第 4 世代 | 1,979 TFLOPS(FP16) |
| Apple M4 Max | AMX(Apple Matrix Coprocessor) | 38 TOPS |
| Apple M4 Pro | AMX | 22 TOPS |
| Google TPU v6 | Sparse Core | 4,614 TOPS |
| AMD MI325X | Matrix Core | 1,300 TFLOPS(FP16) |
主要ライブラリ・フレームワーク
| ライブラリ | 言語 | 用途 |
|---|---|---|
| NumPy | Python | 数値計算の業界標準 |
| PyTorch | Python | 深層学習、動的計算グラフ |
| TensorFlow / JAX | Python | 深層学習、JIT コンパイル |
| Eigen | C++ | 高性能線形代数、ヘッダオンリー |
| Three.js Matrix4 | JavaScript | Web 3D グラフィックス |
| GLM | C++ | OpenGL Mathematics、シェーダ互換 |
| nalgebra | Rust | Rust 線形代数の標準 |
PC スペック要件(行列演算重視)
- 個人 ML 学習: RTX 4070 SUPER 12GB(5,888 CUDA + Tensor)
- LLM 推論: RTX 4090 24GB(16,384 CUDA + 4 世代 Tensor)
- 本格 ML 研究: H100 80GB / B200 192GB(クラウド GPU 含む)
- Apple Silicon: M4 Max 128GB Unified Memory が個人最強
関連用語との違い
| 用語 | 違い |
|---|---|
| ベクトル | 1 次元配列、行列は 2 次元 |
| テンソル | 多次元配列、行列は 2 階のテンソル |
| 配列 | プログラミング上の配列、行列は数学概念 |
| クォータニオン | 4 次元数、回転表現に使う、行列より省メモリ |
よくある質問
Q1: 4×4 行列が 3D グラフィックスで一般的な理由は? A: 同次座標(Homogeneous Coordinates)で平行移動を線形変換として扱うため。3×3 では Rotate と Scale しか表現できないが、4×4 で Translate も統一的に扱える。
Q2: NVIDIA Tensor Core と CUDA Core の違いは? A: CUDA Core は汎用浮動小数点演算(FP32 / FP64)、Tensor Core は行列乗算特化。AI / ML では Tensor Core が 5-20 倍高速、グラフィックスは CUDA Core メイン。
Q3: Apple AMX は明示的に呼べる? A: 2026 年も非公開 API。Accelerate Framework / Core ML / MLX / Metal Performance Shaders 経由で間接利用される。M4 では一部 Mac AI アプリで顕著な高速化が見られる。
まとめ
- 行と列の 2 次元データ構造、3D / ML / 暗号で核となる
- 2026 年のハードウェア加速は Tensor Core / AMX / TPU が標準
- 開発は PyTorch / NumPy / Three.js / Eigen が定番ライブラリ