行列はベクトルを変換する。回転、拡大縮小、射影。これらの操作が、数値の長方形の配列で表現できる。ニューラルネットワークの各層は、本質的には行列とベクトルの積である。AIを理解するには、行列を理解する必要がある。

行列 線形変換 行列積 転置 逆行列

行列とは

行列(Matrix)

数を長方形に並べたもの。m×n行列は m 行 n 列。

A = [[a₁₁, a₁₂], [a₂₁, a₂₂]]

ベクトルの集まり、または線形変換の表現と見なせる。

行列演算

行列の和

同じサイズの行列同士、対応する要素を足す。

スカラー倍

すべての要素に同じ数を掛ける。

行列積(Matrix Multiplication)

行列積

A (m×n) × B (n×p) = C (m×p)

Cᵢⱼ = Σₖ Aᵢₖ Bₖⱼ

Aの列数とBの行数が一致する必要がある。

注意:AB ≠ BA(一般に交換法則は成り立たない)

転置(Transpose)

転置行列 Aᵀ

行と列を入れ替える。

(Aᵀ)ᵢⱼ = Aⱼᵢ

性質:(AB)ᵀ = BᵀAᵀ

特殊な行列

名前 特徴 用途
単位行列 I 対角成分が1、他が0 AI = IA = A
零行列 O すべての成分が0 バイアスの初期化
対角行列 対角成分以外が0 スケーリング
対称行列 A = Aᵀ 共分散行列、グラフ隣接行列
直交行列 AAᵀ = I 回転、正規直交基底

行列とベクトルの積

行列 A にベクトル x を掛けると、新しいベクトル y = Ax が得られる。これは x を線形変換したもの。

ニューラルネットワークの1層:y = Wx + b

W: 重み行列、x: 入力、b: バイアス、y: 出力

逆行列

逆行列(Inverse Matrix)

AA⁻¹ = A⁻¹A = I となる行列 A⁻¹

存在条件:正方行列で行列式 ≠ 0(正則行列)

用途:連立方程式 Ax = b の解 x = A⁻¹b

実務での応用

WEB開発での応用

CSS Transform:translate, rotate, scale は行列で表現される。

3Dグラフィックス:ビュー行列、射影行列、モデル行列。

画像処理:畳み込みフィルタは行列演算。

AI/MLでの応用

全結合層:入力ベクトルに重み行列を掛ける。

Attention:Query, Key, Value の行列演算。

バッチ処理:複数サンプルを行列として一括処理。GPUで高速化。

共分散行列:特徴量間の関係を表す。PCAの基盤。

深掘りリンク

  • Wikipedia: 行列
  • 動画:3Blue1Brown「線形代数の本質」
  • ライブラリ:NumPy, PyTorch, TensorFlow
  • 次のステップ:固有値、特異値分解