コンピューターグラフィックス、機械学習、物理シミュレーションの裏にある数学のほとんどはベクトル空間(vector space)の中で起きている。行列、変換、勾配を扱う前に、それらが演じる舞台を理解する必要がある。その舞台がベクトル空間だ。
ベクトル:矢印を超えて
ベクトルを矢印として描いたことがあるだろう。そのイメージは直感に役立つが、本当のアイデアはより一般的だ。ベクトル(vector)とは、別のベクトルと加算できて数でスケールできる任意のオブジェクトだ — ただしその二つの演算が特定のルールのリストに従う限り。そのようなベクトルすべての集まりをベクトル空間と呼ぶ。
この定義のもとでは、平面内の矢印はベクトルだ。数の順序付きリストもそうだ。より発展的な設定では、関数や多項式もベクトルになれる。それらすべてを繋ぐのは同じ短いルールのリストだ。
形式的定義
実数 R 上のベクトル空間とは、二つの演算を持つ集合 V だ:
- ベクトルの加算(vector addition):任意の u,v∈V に対して、その和 u+v∈V。
- スカラー乗算(scalar multiplication):任意の c∈R と v∈V に対して、積 cv∈V。
これらの演算は、すべての u,v,w∈V と a,b∈R に対して八つの公理を満たさなければならない:
| # | 名前 | ルール |
|---|
| 1 | 加算の結合法則 | (u+v)+w=u+(v+w) |
| 2 | 加算の交換法則 | u+v=v+u |
| 3 | 加算の単位元 | v+0=v を満たす 0∈V が存在する |
| 4 | 加算の逆元 | v+(−v)=0 を満たす −v∈V が存在する |
| 5 | スカラー乗算の単位元 | 1⋅v=v |
| 6 | スカラー乗算の結合法則 | a(bv)=(ab)v |
| 7 | ベクトルの加算に対する分配法則 | a(u+v)=au+av |
| 8 | スカラーの加算に対する分配法則 | (a+b)v=av+bv |
ここにあるすべてのルールは、普通の数ではすでに当然と思っているものだ。明示的にリストアップする意味は、任意の集合とその演算に対してこれら八つが成り立つと確認さえできれば、線形代数の機構すべてが自動的についてくることだ。
標準的な例:Rn
初学者にとって最も重要なベクトル空間は Rn だ — 実数の順序付き n-タプルすべての集合:
v=(v1, v2, …, vn),vi∈R
加算とスカラー乗算は成分ごとに定義される:
u+v:=(u1+v1, u2+v2, …, un+vn)
cv:=(cv1, cv2, …, cvn)
ゼロベクトルは 0=(0,0,…,0) であり、v の加算の逆元は −v=(−v1,…,−vn) だ。これらの定義に対してすべての八つの公理を確認することは、抽象的なルールを具体的に感じさせる良い練習だ。
n=2 のとき馴染みのある 2D 平面に戻る。n=3 なら通常の 3D 空間だ。定義には更に高次元にすることを妨げるものは何もない。
スパン、基底、次元
スパン
ベクトル空間 V 内のベクトルの集まり {v1,…,vk} に対して、そのスパン(span)はそれらから形成できるすべての線形結合の集合だ:
span{v1,…,vk}:={c1v1+⋯+ckvk∣c1,…,ck∈R}
スパンが V 全体と等しければ、{v1,…,vk} は V を張る(span)— 空間内のすべてのベクトルがこれらのベクトルから作れる。
線形独立性
ベクトルの集合が線形独立(linearly independent)とは、そのどれも他のベクトルの線形結合として書けないことだ。同値な表現として、次の方程式の唯一の解が:
c1v1+c2v2+⋯+ckvk=0
c1=c2=⋯=ck=0 であることだ。もし何らかの ci が零でなくてよければ、集合は線形従属(linearly dependent)で — 冗長性を含んでいる。
基底と次元
V の基底(basis)は線形独立でありかつ V を張るベクトルの集合だ。V 内のすべてのベクトルを正確に一通りで組み立てられる最小の集合と考えるといい。
注目すべき事実:与えられたベクトル空間のすべての基底は全く同じ数のベクトルを持つ。その数を V の次元(dimension)と呼び、dim(V) と書く。
Rn の標準基底(standard basis)は:
e1=(1,0,…,0),e2=(0,1,…,0),…,en=(0,0,…,1)
この基底は n 個のベクトルを含むため、dim(Rn)=n。任意のベクトル (v1,…,vn) は次のように分解される:
v=v1e1+v2e2+⋯+vnen
座標 v1,…,vn は正確に標準基底における v の係数だ。
有限次元
ベクトル空間が有限次元(finite-dimensional)とは、有限の基底を持つことだ — 同値な表現として dim(V)<∞。具体的な値の n に対するすべての Rn は有限次元だ。関数の空間は一般的に無限次元だが、それは後で扱う。
部分空間
V の部分空間(subspace)とは、同じ演算のもとでそれ自体がベクトル空間になる空でない部分集合 W⊆V だ。八つの公理すべてを再確認する必要はない — 三つだけ確認すればいい:
- 0∈W
- すべての u,v∈W に対して u+v∈W(加算に対して閉じている)
- すべての c∈R、v∈W に対して cv∈W(スカラー乗算に対して閉じている)
残りの公理は V から自動的に引き継がれる。
R3 の例:原点 {0}(次元0)、原点を通る任意の直線(次元1)、原点を通る任意の平面(次元2)、R3 自体(次元3)はすべて部分空間だ。「原点を通る」という要件に注目 — 原点を逃す平面は 0 を含まず、条件1を満たさない。
まとめ
- R 上のベクトル空間とは、八つの公理を満たす加算とスカラー乗算を持つ集合だ。
- Rn — 成分ごとの演算を持つ順序付き n-タプル — が原型的な例だ。dim(Rn)=n。
- ある集合のスパンはそこから形成できるすべての線形結合だ。
- 集合が線形独立とは、その中のどのベクトルも他のベクトルの線形結合でないことだ。
- 基底は線形独立で張る集合だ。V のすべての基底は同じサイズを持ち、それを次元と呼ぶ。
- 部分空間とは加算とスカラー乗算に対して閉じており、0 を含む部分集合だ。
- 有限次元とは空間が有限の基底を持つことを意味する。