数学や機械学習の文脈で「ベクトルの正規化」という言葉が登場することがありますが、データの正規化とは意味が異なります。
ベクトルの正規化は数学・物理学・コンピュータグラフィックス・自然言語処理など幅広い分野で活用される重要な操作です。
この記事ではベクトルの正規化の意味・計算式・具体的な計算例・活用場面をわかりやすく解説していきます。
ベクトルの正規化とはベクトルの長さを1にして方向だけを保持する単位ベクトルを求める操作である
それではまず、ベクトルの正規化の基本的な定義について解説していきます。
ベクトルの正規化(Vector Normalization)とは、任意のベクトルをその大きさ(長さ・ノルム)で割ることで、大きさが1の「単位ベクトル」を求める操作です。
正規化後のベクトルはもとのベクトルと同じ方向を向いていますが、長さが1になっているため「方向のみを表すベクトル」となります。
ベクトルの正規化が重要な理由は「方向の比較」を「大きさに依存せずに行えるようにするため」です。
たとえば文書の類似度を計算する際、文書の長さ(単語数)に関わらず内容の方向性を比較したい場合に正規化が必要です。コサイン類似度はこの考え方を応用した指標です。
ベクトルの正規化の計算式と手順
続いては、ベクトルの正規化の計算式と実際の計算手順について確認していきます。
ベクトルのノルム(大きさ)の計算
ベクトルのノルムと正規化の計算式
ベクトルv = (v1, v2, …, vn)のL2ノルム(ユークリッドノルム):
||v|| = √(v1² + v2² + … + vn²)
正規化ベクトル(単位ベクトル)の計算式:
v̂ = v / ||v|| = (v1/||v||, v2/||v||, …, vn/||v||)
正規化後のベクトルは ||v̂|| = 1(大きさが1)を満たします。
具体的な計算例
2次元ベクトルの正規化計算例
ベクトルv = (3, 4)の場合
ノルム:||v|| = √(3² + 4²) = √(9 + 16) = √25 = 5
正規化ベクトル:v̂ = (3/5, 4/5) = (0.6, 0.8)
検証:||v̂|| = √(0.6² + 0.8²) = √(0.36 + 0.64) = √1 = 1 ✓
コサイン類似度とベクトル正規化の関係
続いては、ベクトルの正規化が特に重要となるコサイン類似度との関係について確認していきます。
コサイン類似度の定義
コサイン類似度とは2つのベクトルがなす角度のコサイン値を計算することで、ベクトルの方向の類似性を-1〜1の数値で表す指標です。
コサイン類似度の計算式
cosine_similarity(A, B) = (A · B) / (||A|| × ||B||)
A · B:ベクトルAとBの内積
||A||・||B||:各ベクトルのノルム
両ベクトルを正規化した場合(||A||=||B||=1)はA·Bがそのままコサイン類似度になります。
自然言語処理での活用
自然言語処理では単語や文書をベクトルで表現し、コサイン類似度で類似性を計算します。
Word2VecやBERTなどの単語ベクトルの比較では、ベクトルを正規化することで単語の出現頻度ではなく意味の方向性で類似度を測定できます。
機械学習・深層学習でのベクトル正規化の活用
続いては、機械学習と深層学習でのベクトル正規化の具体的な活用場面について確認していきます。
バッチ正規化・レイヤー正規化
深層学習では「バッチ正規化(Batch Normalization)」や「レイヤー正規化(Layer Normalization)」という技術が広く使われています。
ニューラルネットワークの各層の出力を平均0・分散1に正規化することで学習を安定させ、勾配消失・爆発問題を緩和する手法です。
画像処理でのベクトル正規化
コンピュータグラフィックスでは3Dの法線ベクトルをレンダリング計算に使用する際、法線ベクトルを正規化して単位ベクトルにすることがライティング計算の前提条件となります。
正規化せずに計算すると、ベクトルの大きさによって光の強度が変化してしまい意図しない結果になります。
| 活用分野 | ベクトル正規化の用途 | 効果 |
|---|---|---|
| 自然言語処理 | 単語・文書ベクトルの正規化 | 長さに依存しない類似度計算 |
| 画像処理・CG | 法線ベクトルの正規化 | 正確なライティング計算 |
| 深層学習 | バッチ正規化・レイヤー正規化 | 学習の安定化・収束の高速化 |
| 推薦システム | ユーザー・アイテムベクトルの正規化 | 公平な類似度計算 |
まとめ
ベクトルの正規化とはベクトルをそのノルムで割ることで大きさを1にした単位ベクトルを求める操作であり、方向のみを保持することがその本質です。
コサイン類似度・自然言語処理・深層学習・コンピュータグラフィックスなど幅広い分野でベクトルの正規化が活用されており、特に「大きさに依存しない方向の比較」が必要な場面で威力を発揮します。
計算式を理解した上で実際にPythonやNumPyで試してみることで、ベクトル正規化の実感を深めることができるでしょう。
数学とプログラミングの両面からベクトルの正規化を理解して、データサイエンスや機械学習の実践に役立ててみてください。