「norm(ノルム)」という言葉は、数学・統計学・社会科学・日常会話など、多様な文脈でさまざまな意味を持って使われます。
数学ではベクトルの大きさを表す概念として、社会科学では社会規範・行動基準として、統計では標準値・基準値として登場します。
本記事では、normという言葉が持つ複数の意味と概念を整理し、数学・統計学・機械学習・日常的な使われ方まで幅広く解説していきます。
normの基本的な意味と語源
それではまず、normの語源と基本的な意味について解説していきます。
normの語源と一般的な意味
normはラテン語の「norma(規則・基準・直角定規)」に由来し、英語では「規範・標準・基準・平均」などの意味を持ちます。
日常英語では「社会的に一般的・標準的・通常とされること」を指し、「What’s the norm here?(ここでの標準的なやり方は何ですか?)」のような使い方をします。
「ノーマル(normal)」という言葉もnormと同じ語根を持ち、「標準的な・正規の」という意味です。
学術的な文脈では、「ノルム」としてカタカナ表記されることも多く、特に数学的な意味で使われます。
社会科学でのnorm(社会規範)
社会科学・社会学においてnormは社会規範を意味します。
社会規範とは、ある集団・社会において期待される行動の標準・慣習・不文律のことです。
「挨拶をする」「列に並ぶ」「職場でのドレスコード」などが社会規範の例です。
社会規範は明文化された法律(formal norm)と、暗黙の了解として存在する非公式な規範(informal norm)に分類されます。
統計・心理学でのnorm(基準値)
統計学・心理学では、normは基準値・標準値の意味で使われます。
IQテストや心理検査の結果を評価するための「標準化されたスコア」のことをnormと呼び、同年齢・同性別集団でのスコア分布との比較に使います。
「ノルム参照(norm-referenced)」評価とは、個人の成績を集団の平均値(norm)と比較して評価する方式で、偏差値はその典型例です。
数学におけるnorm(ノルム)
続いては、数学における最も重要なnormの概念、つまり「ノルム」について確認していきましょう。
ベクトルのノルム(大きさ)の定義
数学においてノルム(norm)とは、ベクトル空間の要素(ベクトル)の「大きさ・長さ」を測る関数です。
日常的に使う「距離」の概念を抽象化したものであり、以下の3つの性質を満たす関数として定義されます。
ノルムの3つの公理
1. 非負性:‖x‖ ≥ 0 であり、‖x‖ = 0 ⟺ x = 0
2. 斉次性:‖αx‖ = |α|・‖x‖(スカラー倍の性質)
3. 三角不等式:‖x + y‖ ≤ ‖x‖ + ‖y‖
記号は「‖x‖」(ダブルバーティカルバー)で表されることが多いです。
主要なノルムの種類
数学・機械学習でよく使われる主要なノルムの種類を整理します。
| ノルム名 | 記号 | 計算式(2次元) | 特徴 |
|---|---|---|---|
| L1ノルム(マンハッタンノルム) | ‖x‖₁ | |x₁| + |x₂| | 絶対値の和 |
| L2ノルム(ユークリッドノルム) | ‖x‖₂ | √(x₁² + x₂²) | 直線距離(最も一般的) |
| L∞ノルム(チェビシェフノルム) | ‖x‖∞ | max(|x₁|, |x₂|) | 各要素の絶対値の最大 |
日常でよく使う「ピタゴラスの定理による距離」はL2ノルム(ユークリッドノルム)に相当します。
L2ノルムの計算例
L2ノルムの具体的な計算例を確認しましょう。
ベクトル v = (3, 4) のL2ノルム
‖v‖₂ = √(3² + 4²) = √(9 + 16) = √25 = 5
ベクトル v = (1, 2, 3) のL2ノルム
‖v‖₂ = √(1² + 2² + 3²) = √(1 + 4 + 9) = √14 ≈ 3.742
機械学習でのnorm(正則化)
続いては、機械学習・ディープラーニングにおけるノルムの重要な活用方法について確認していきましょう。
L1正則化とL2正則化
機械学習では、モデルの過学習(overfitting)を防ぐために正則化(regularization)が使われます。
正則化はモデルのパラメーター(重み)の大きさに対するペナルティを損失関数に加える手法で、L1ノルムとL2ノルムが主に使われます。
L1正則化(Lasso)はパラメーターの絶対値の和をペナルティとして使い、不要なパラメーターをゼロに収束させる(スパース化)特性があります。
L2正則化(Ridge)はパラメーターの二乗和をペナルティとして使い、全パラメーターを均等に小さくする特性があります。
機械学習のL1正則化(Lasso)はスパース解(多くのパラメーターがゼロ)を生み出す特性があり、特徴選択に有効です。L2正則化(Ridge)はすべてのパラメーターを均等に小さくし、安定した学習に有効です。
バッチ正規化とレイヤー正規化
ディープラーニングでは、ノルムの概念を応用した正規化(normalization)テクニックも重要です。
バッチ正規化(Batch Normalization)は、各レイヤーの入力をミニバッチ単位で正規化することで、学習を安定させ収束を速める手法です。
レイヤー正規化(Layer Normalization)は、各サンプル内でレイヤーの活性化を正規化する手法で、Transformerアーキテクチャで標準的に使われています。
コサイン類似度とノルムの関係
ノルムはコサイン類似度の計算にも使われます。
コサイン類似度は2つのベクトルの内積をそれぞれのL2ノルムで割って求め、ベクトルの向きの類似性を測ります。
自然言語処理でテキストの類似度を計算したり、推薦システムでユーザーの嗜好の類似度を測ったりする場面で広く活用されています。
normを使った数値ベクトルの正規化
続いては、ノルムを使ってベクトルを正規化する操作について確認していきましょう。
ベクトルの正規化(単位ベクトル化)
ベクトルをそのL2ノルムで割ることで、大きさが1の単位ベクトルに変換できます。
単位ベクトルへの正規化
v = (3, 4)
‖v‖₂ = 5
単位ベクトル v̂ = v / ‖v‖₂ = (3/5, 4/5) = (0.6, 0.8)
確認:‖v̂‖₂ = √(0.6² + 0.8²) = √(0.36 + 0.64) = √1 = 1
単位ベクトル化は機械学習の前処理や、グラフィックスのシェーダー処理など多くの場面で使われます。
機械学習での特徴量正規化とノルム
機械学習の前処理として行われる特徴量の正規化にも、ノルムの概念が使われます。
各サンプルのベクトルをそのノルムで割ることで、スケールの異なる特徴量を正規化し、学習アルゴリズムの性能を向上させることができます。
scikit-learnのNormalizerクラスはL1・L2・L∞ノルムを指定して特徴量を正規化できる機能を提供しています。
行列のノルム
ノルムはベクトルだけでなく行列にも拡張できます。
行列ノルムの中で最もよく使われるのがフロベニウスノルム(Frobenius norm)で、行列の全要素の二乗和の平方根として計算されます。
機械学習のモデルパラメーター(重み行列)のL2正則化はフロベニウスノルムを使ったペナルティとして実装されることが多いです。
まとめ
本記事では、normの語源と一般的な意味(規範・基準値)、社会科学での使われ方、数学的なノルムの定義と種類(L1・L2・L∞)、機械学習での正則化・正規化への応用について解説しました。
normは文脈によって「社会規範」「基準値」「ベクトルの大きさ」と異なる意味を持ちますが、いずれも「何かを測定・評価するための基準」という核心的な概念を共有しています。
数学・機械学習の分野ではL1・L2ノルムが特に重要であり、正則化・正規化・類似度計算に幅広く活用されています。
ノルムへの理解を深めることで、機械学習の理論的な基盤がより明確に見えてくるでしょう。