Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Normalization

正規化は、特徴量や活性化を共通のスケールに変換し、特定の値域が支配的にならないようにします。最小最大、zスコア、L2、正規化レイヤーを解説します。

正規化とは、数値を共通の尺度に合わせて再スケーリングし、単位の違いだけを理由に特定の特徴量がモデルを支配しないようにすることです。データ前処理では通常、トレーニング前に各入力特徴量を[0, 1]などの固定範囲、または平均0・分散1に変換します。ニューラルネットワーク内部では、バッチ正規化などの正規化レイヤーが、中間活性化に同じ考え方を適用します。正規化しない場合、所得のように数千単位で測定される特徴量は、世帯人数のように1桁の値で測定される特徴量よりも、あらゆる距離計算や勾配更新で大きな影響を与えます。

一般的な正規化手法#

  • 最小最大スケーリング: (x − min) / (max − min)を使って各特徴量を[0, 1]に変換します。極端な値が1つあると、他の値が狭い範囲に圧縮されるため、255で割った8ビットのピクセル値のように、既知の固定範囲を持つ特徴量に適しています。
  • Zスコア標準化: 特徴量の平均を引き、標準偏差で割ることで、平均0、標準偏差1にします。固定範囲を持たない特徴量に対する通常の既定手法です。
  • ロバストスケーリング: 中央値を引き、四分位範囲で割ります。そのため、少数の外れ値によって残りの値のスケーリングが大きく変わることはありません。
  • 対数スケーリング: 対数を適用し、多くの場合はlog(1 + x)を使って、他のスケーリングを行う前に価格、人口、閲覧数など裾の重い特徴量を圧縮します。
  • 単位ベクトル(L2)正規化: 各サンプルのベクトルを長さで割り、すべてのベクトルのノルムを1にします。埋め込みに適用すると、コサイン類似度を単純な内積として計算できます。scikit-learnのNormalizerはサンプルごとにこの処理を行います。MinMaxScalerのように各特徴量をスケーリングすると想定しているユーザーは、この動作に戸惑うことがあります。

適切な手法は、何をスケーリングするか、また値がどのように分布しているかによって異なります。

正規化が重要な理由#

k近傍法(k-NN)、k-meansクラスタリング、RBFカーネルを使うサポートベクターマシンなど、距離ベースの手法はユークリッド距離をそのまま比較するため、値の範囲が最も広い特徴量によって、どの点が近いと判断されるかが決まります。勾配ベースのモデルは、正規化された入力でより速くトレーニングできます。特徴量のスケールが大きく異なると、損失曲面が狭い谷の形に引き伸ばされ、勾配降下法で小さなステップを踏む必要があるためです。ランダムフォレストなどの木アンサンブルは、一度に1つの特徴量のしきい値で分割するため、単調な再スケーリングを行っても分割結果は変わりません。Wineデータセットをk-NNの前にスケーリングすると、その効果がわかります。

from sklearn.datasets import load_wine
from sklearn.model_selection import cross_val_score
from sklearn.neighbors import KNeighborsClassifier
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import MinMaxScaler, StandardScaler

# 13 chemical features on very different scales, from hue (about 0.5-1.7) to proline (about 280-1,680)
X, y = load_wine(return_X_y=True)

# k-NN compares raw distances, so unscaled proline dominates every distance
for name, scaler in [("none", "passthrough"), ("min-max", MinMaxScaler()), ("z-score", StandardScaler())]:
    # The pipeline fits the scaler on each training fold only, so no test statistics leak in
    model = make_pipeline(scaler, KNeighborsClassifier())
    accuracy = cross_val_score(model, X, y, cv=5).mean()
    print(f"scaling {name:8s} 5-fold accuracy: {accuracy:.3f}")

スケーリングしない場合、k-NNの精度は0.691です。範囲が約1,400単位に及ぶプロリンが、距離計算のたびに他の12個の特徴量を上回る影響を与えるためです。最小最大スケーリングでは精度が0.950に、Zスコア標準化では0.949に向上します。スケーラーをパイプライン内で適合させることも重要です。データを分割する前に、データセット全体から最小値、最大値、平均、標準偏差を計算すると、テストセットの情報がトレーニングに漏れるデータリーケージが発生します。

コンピュータービジョンにおける正規化#

画像はチャンネルごとに正規化されます。8ビットのピクセル値を255で割ると[0, 1]の範囲にマッピングされ、多くの分類バックボーンはその後、チャンネルごとの平均値を差し引いて標準偏差で割りますが、ImageNetで事前学習されたtorchvisionのResNet-50が想定する平均値は(0.485, 0.456, 0.406)、標準偏差は(0.229, 0.224, 0.225)です。事前学習済みモデルに、そのモデルの学習データとは異なる方法で正規化した入力を与えると、すべての活性化が変化し、精度が低下します。Ultralytics YOLOの前処理では、学習時も推論時もピクセル値を255で割り、平均値や標準偏差によるシフトは適用しないため、YOLO26には常に[0, 1]の入力が与えられます。

医用画像にはモダリティごとのルールが必要です。CTスキャンでは、空気が−1000、水が0となる物理的な尺度であるハンスフィールド単位で強度を保存するため、すべてのスキャンに同じ統計値を使用できます。広く使われているnnU-Netセグメンテーションフレームワークは、すべてのトレーニングケースにおける前景値の0.5パーセンタイルと99.5パーセンタイルでCT強度をクリップし、その後、データセット全体の平均と標準偏差でZスコア化します。MRIの強度には固定された物理的な尺度がなく、スキャナーによって異なるため、nnU-NetではMRIスキャンごとにZスコア化します。

  • 標準化: Zスコアスケーリングの一般的な名称です。最小最大スケーリングとZスコアスケーリングの両方を「正規化」と呼ぶ資料もあれば、「正規化」を最小最大スケーリングに限って使う資料もあります。
  • データ拡張: 反転、クロップ、色調の変更などによって画像の内容や幾何形状を変え、バリエーションを増やします。一方、正規化は値のスケールだけを変更します。
  • 正規化レイヤー: バッチ正規化は、現在のミニバッチの統計値を使って各チャンネルを標準化します。レイヤー正規化は、バッチサイズに依存せず、各サンプルの特徴量を標準化します。Transformer全般で使用されるこのレイヤーは、正規化の後に学習可能なスケールとシフトを適用します。
  • RMSNorm: 平均の減算を省略し、二乗平均平方根のみで割る簡略化されたレイヤー正規化です。MetaのLlamaや他の多くの大規模言語モデルで使用される正規化レイヤーです。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう