ベクトル空間と基底 ― 座標系を変えて世界を見る
同じ位置でも、GPS座標系と北斗座標系では経度・緯度の数値が異なる——しかし位置自体は変わらない。
ベクトルも同じである:同じベクトルは異なる基底のもとでは異なる座標を持つ。この一点を理解すれば、PCA次元削減と単語埋め込み空間の本質を理解したことになる。
ベクトル空間
ベクトル空間 = 一つの集合であり、その要素(ベクトル)は加法とスカラー倍について閉じている。
閉じている = 空間内の任意の2つのベクトルを加えても、任意のベクトルにスカラーを掛けても、結果は空間内に留まる。
基底:空間を記述する座標のものさし
基底とは、それらの線形結合によって空間内の任意のベクトルを一意に表現できるベクトルの組である。
標準基底:(1,0,0)、(0,1,0)、(0,0,1)——それぞれx軸、y軸、z軸の方向を表す。
線形独立:冗長性がない
あるベクトルの組が線形独立である = その中のどのベクトルも他のベクトルの線形結合では表せない。
直感的には:それぞれのベクトルが本当の「新しい方向」をもたらし、無駄がない。
線形独立
{(1,0), (0,1)}
各ベクトルが新しい方向を提供
ランク = 2(フルランク)
線形従属
{(1,2), (2,4)}
2つ目 = 1つ目 × 2
ランク = 1(冗長)
基底は2つの条件を満たさなければならない:線形独立(冗長でない) + 空間全体を張る(すべてのベクトルを表現できる)。
n次元空間の一組の基底はちょうどn個のベクトルを含む。
身近な例
座標系の変換
北京の位置は北京54座標系では (x₁, y₁) であり、WGS-84座標系では (x₂, y₂) である。
位置自体は変わらないが、それを記述する「ものさし」(基底)が異なるため、座標の数値は異なる。
単語埋め込み空間
単語埋め込みモデルは各単語を300次元空間内のベクトルに写像する。この空間の各次元は潜在的な意味的方向に対応する。
「王 - 男性 + 女性 ≈ 女王」——これらのベクトル演算はすべてこの300次元のベクトル空間内で行われる。
数学的定義
\( \{\mathbf{v}_1, \dots, \mathbf{v}_n\} \) が基底である = それらが線形独立 + span{\(\mathbf{v}_1,\dots,\mathbf{v}_n\)} = 空間全体。
線形結合:\( c_1\mathbf{v}_1 + \cdots + c_n\mathbf{v}_n = \mathbf{0} \) が自明解のみを持つ → 線形独立。
Pythonで実践
実例
# 標準基底
e1, e2, e3 = np.array([1,0,0]), np.array([0,1,0]), np.array([0,0,1])
v = np.array([4, 5, 6])
print("v = 4*e1 + 5*e2 + 6*e3:", 4*e1 + 5*e2 + 6*e3)
# ランクで線形独立を判定
v1, v2 = np.array([1,2]), np.array([2,4]) # v2 = 2*v1
M = np.column_stack([v1, v2])
print(f"{{v1, v2}} のランク: {np.linalg.matrix_rank(M)} (< 2 → 線形従属)")
# 基底変換:同じベクトルでも、異なる基底のもとでは座標が異なる
v_std = np.array([3.0, 2.0])
B_new = np.array([[2.0, 0], [0, 3.0]]) # 新しい基底
v_new = np.linalg.inv(B_new) @ v_std
print(f"標準座標: {v_std}, 新しい基底での座標: {v_new}")
print(f"検証: B @ 新しい座標 = {B_new @ v_new}")
v = 4*e1 + 5*e2 + 6*e3: [4 5 6]
{v1, v2} 的秩: 1 (< 2 → 线性相关)
标准坐标: [3. 2.], 新基下坐标: [1.5 0.67]
验证 B @ 新坐标 = [3. 2.]
AIでの応用シーン
PCA次元削減 = 基底の変換
PCAは、データの新しい基底の最初のk個の座標における分散が最大になるような、新しい正規直交基底(主成分方向)を見つける。次元削減 = 新しい基底の最初のk個の座標だけを残し、それ以降の分散が小さい方向を捨てる。これは本質的に座標系の変換である——784次元のピクセル空間から50次元の主成分空間への変換。
単語埋め込み空間
Word2Vec と GloVe は各単語を300次元ベクトル空間内の1点に写像する。この空間は恣意的に作られたものではない——単語間の幾何学的関係は意味的関係を反映している。類義語は距離が近く、反意語はある方向において正反対になる。ベクトル空間内の線形演算(加減)は意味的操作に対応する。
特徴空間の変換
ニューラルネットワークの各層は、入力を新しいベクトル空間へ写像すると見なせる。元の空間で線形分離できないデータ(XOR問題など)は、隠れ層による変換を経て特徴空間では線形分離可能になる。これが深層学習の中核的な直観である——層ごとに変換し、最終的に特徴空間では単純な分類器で分離できる。
その他の拡張