線形写像とは何か — ITで使う線形代数の基礎と応用

はじめに:線形写像(線形変換)とは

線形写像(線形変換、linear map)は線形代数の中心概念で、ベクトル空間の構造を保存する写像です。数学的には、ベクトル空間 V から W への写像 T: V → W が任意のベクトル u, v とスカラー α, β に対して T(αu + βv) = αT(u) + βT(v) を満たすときに線形写像と呼びます。ITやデータサイエンスの分野では、データの前処理、画像変換、機械学習モデルの内部計算、シグナル処理など多岐にわたって登場します。

基本的な性質と定義

線形写像の重要な基礎概念を整理します。

  • 零ベクトルの保存: T(0)=0 が常に成り立ちます。
  • 行列表示: 有限次元のベクトル空間では、基底を選ぶことで線形写像は行列で表現できます。行列 A による行列積 x ↦ Ax が線形写像の典型例です。
  • 核(カーネル): ker(T) = {v | T(v)=0}。線形空間であり、T が単射かどうかを決めます。
  • 像(イメージ): im(T) = {T(v) | v∈V}。T の値域です。
  • 階数と基本定理(Rank–Nullity): 有限次元の場合 dim(V) = rank(T) + nullity(T)(像の次元 + 核の次元 = 元空間の次元)となります。

行列表示と計算

線形写像を計算機上で扱う際、行列は最も直接的な表現です。m×n 行列 A は R^n → R^m への線形写像を定義します。行列の列ベクトルは単位基底の像を並べたものとして解釈できます。行列演算(和、スカラー倍、積)は写像の和、スカラー倍、合成に対応します。

合成・逆写像・行列の基本操作

線形写像同士の合成は再び線形で、行列で表すと積に相当します。可逆(逆写像を持つ)ならば行列は正則で、逆行列 A^{-1} が存在します。逆行列の存在は線形方程式 Ax=b の一意解やデータ復元に直結しますが、数値計算では条件数により不安定になることがあります。

固有値・固有ベクトルと対角化

線形写像の振る舞いを調べるために、固有値 λ と固有ベクトル v(Av=λv)が重要です。対角化可能な行列は基底を変えることで斜め成分に分解でき、計算や理論解析を容易にします。対角化できない場合はジョルダン標準形が理論上の拡張解を与えますが、数値計算では敏感です。

内積空間・随伴・直交射影

内積を持つ空間では線形写像の随伴(エルミート共役)や直交射影が定義できます。特に直交射影は最小二乗問題やPCA(主成分分析)の核となる操作です。正規行列(AA* = A*A)やエルミート行列は固有分解が実数固有値で直交基底を持つため、安定した数値性質を持ちます。

特異値分解(SVD)と擬似逆行列

SVD は任意の行列 A を UΣV^T の形に分解する強力な道具で、列空間・零空間を明示し、近似やノイズ除去に使えます。擬似逆行列(Moore–Penrose 擬似逆)は SVD を用いて定義でき、過剰決定・過少決定系の最小二乗解を与えます。推薦システムや画像圧縮(低ランク近似)で頻繁に使われます。

数値計算上の注意点

実用での線形写像の扱いでは以下に注意が必要です。

  • 条件数: cond(A) = ||A||·||A^{-1}||。条件数が大きいと数値誤差が増幅されるため、解の信頼性が低下します。
  • 浮動小数点誤差: 直接解法(LU分解など)や反復法(CG, GMRES)は丸め誤差や打ち切り基準によって結果が変わります。
  • ランク欠損と近似ランク: ノイズにより数値上のランク不足が生じることがあり、SVDに基づく閾値処理で実用的なランクを決めます。
  • 疎行列の扱い: 大規模問題では疎行列を用い、専用のデータ構造と反復解法で計算効率を確保します。

アルゴリズムと計算量

行列演算の計算量は次のように概算されます(密行列の場合)。行列積は O(n^3)(高効率アルゴリズムでも n^{2.3..} 程度)、LU分解やガウス消去は O(n^3)。一方で疎行列・反復法は非ゼロ要素数や条件に依存して大幅に高速化できます。SVDは一般的に O(mn^2) など高コストであり、近似SVD(ランダム化アルゴリズム)で大規模データに対応します。

ITでの代表的応用例

  • コンピュータグラフィックス: 2D/3D のアフィン変換(回転・拡大縮小・並進は同次座標を含めて行列で表現)。レンダリングやモデリングの基礎。
  • 機械学習: 線形回帰、線形層(ニューラルネットワークの全結合層)、PCA による次元削減、SVD による潜在因子モデル。
  • 信号処理: 線形フィルタ、畳み込み演算(有限次元では行列乗算として扱える)、時系列の線形予測。
  • 情報理論と暗号・符号化: 線形符号(例えばリード・ソロモン、ハミング符号)は有限体上の線形写像。
  • 科学計算: 偏微分方程式の離散化(有限差分・有限要素法)では線形作用素(行列)が現れる。

プログラミングと実装のヒント

  • Python/NumPy: 行列計算の基本。NumPy の linalg や SciPy の sparse、scipy.sparse.linalg を利用。
  • 高性能ライブラリ: LAPACK, BLAS, Eigen, MKL。並列化やGPU(cuBLAS, cuSOLVER)で高速化。
  • 疎行列: CSR/CSC などの格納形式と反復解法(CG, BiCGSTAB)を選択。
  • 近似手法: ランダム化 SVD、ストリーミング PCA は大規模データ向け。
  • 数値安定性: 前処理(スケーリング、正則化)やプレコンディショニングで精度改善。

有限体上の線形写像

情報通信や暗号の分野では実数ではなく有限体(例: GF(2))上の線形写像が使われます。これにより符号理論やビット演算で効率的なアルゴリズムが設計できます。理論は実数上と類似しますが、内積や順序に関する性質は異なる点に注意が必要です。

まとめ:ITにおける線形写像の重要性

線形写像は理論的に洗練されており、実務では性能・精度・スケーラビリティの観点で扱い方が分かれます。行列表示によりアルゴリズム実装が可能で、SVD や擬似逆などの道具が問題解決に直結します。数値的な注意(条件数、丸め誤差、疎性の活用)を踏まえることで、線形写像はデータ処理、機械学習、グラフィックス、信号処理など多くの IT 領域における基盤技術となります。

参考文献

Wikipedia: 線形写像

Wikipedia: 特異値分解(SVD)

NumPy Documentation

SciPy

Rank–Nullity の解説(大学講義資料)

Golub and Van Loan, Matrix Computations (参考文献)