YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

正規化

正規化がモデルの訓練と精度をどのように向上させるかを探ります。Min-Maxスケーリング、Zスコア標準化、およびUltralytics YOLO26プロジェクトにおけるその役割について学びましょう。

正規化は、データ前処理における基本的な技術であり、数値属性を標準範囲に再スケーリングするものです。機械学習 (ML)の文脈では、データセットには、年齢範囲 (0~100) と所得水準 (0~100,000) のように、スケールが異なる特徴が含まれることがよくあります。これらを未処理のままにしておくと、これらの不均衡により、最適化アルゴリズムがより大きな値に偏り、収束が遅くなり、最適ではないパフォーマンスにつながる可能性があります。データを正規化することで、エンジニアはすべての特徴が最終結果に比例して貢献することを保証し、ニューラルネットワークがより効率的に学習できるようにします。

一般的な正規化テクニック

データを変換するための標準的な手法がいくつかあり、それぞれ異なる分布やアルゴリズムの要件に適しています。

  • Min-Max Scaling: これは最も直感的な正規化形式です。データを固定範囲、通常は[0, 1]に再スケーリングします。この変換は、最小値を減算し、範囲(最大値から最小値を引いたもの)で割ることによって実行されます。ピクセル強度が0から255の間に制限されていることが知られている画像処理で広く使用されています。
  • Zスコア標準化: 正規化と互換的に使用されることが多いですが、標準化は特にデータを平均0、標準偏差1に変換します。これは、データがガウス分布に従う場合に特に有用であり、正規分布データを仮定するサポートベクターマシン (SVM)のようなアルゴリズムにとって不可欠です。
  • Log Scaling: 極端な外れ値を含むデータやべき乗則に従うデータの場合、対数変換を適用することで値の範囲を圧縮できます。これにより、分布がより扱いやすくなり、推論エンジンが大規模な値のスパイクによって歪められることなく効果的に解釈できるようになります。

実際のアプリケーション

正規化は、様々な産業における高性能AIシステムのパイプラインにおける標準的なステップである。

  1. コンピュータビジョン (CV): オブジェクト検出画像分類などのタスクでは、デジタル画像は0から255の範囲のピクセル値で構成されます。これらの大きな整数をネットワークに直接入力すると、勾配降下法が遅くなる可能性があります。標準的な前処理ステップでは、ピクセル値を255.0で割って[0, 1]の範囲に正規化します。この手法により、YOLO26のような高度なモデルに対して一貫した入力が保証され、Ultralytics Platformでのトレーニング安定性が向上します。
  2. 医療画像解析:医療用スキャン(医療分野におけるAIで使用されるものなど)は、 異なる装置で撮影され、輝度スケールが異なる場合が多い。 正規化処理により、MRIやCTスキャンのピクセル輝度が 異なる患者や装置間で比較可能となる。この一貫性は 腫瘍の正確な検出に不可欠であり、 モデルが輝度の変動ではなく構造的異常を認識できるようにする。

関連概念の区別

正規化を、ディープラーニングに見られる類似の前処理およびアーキテクチャ用語と区別することが重要です。

  • vs. Batch Normalization: データ正規化は、ネットワークに入力される前の生の入力データセットに適用される前処理ステップです。対照的に、バッチ正規化はモデルトレーニング中にネットワーク全体で層間で内部的に動作します。これは、学習プロセスを安定させるために、前の活性化層の出力を正規化します。
  • vs. Image Augmentation: 正規化がピクセル値のスケールを変更するのに対し、拡張は、データセットの多様性を高めるために、画像のコンテンツまたは幾何学的形状(例:反転、回転、色の変更)を変更します。Albumentationsのようなツールは拡張に使用され、正規化は数学的なスケーリング操作です。

実施例

コンピュータービジョンにおいて、正規化はしばしばパイプラインの最初のステップです。以下のpythonの例は、NumPyライブラリを使用して画像データを手動で正規化する方法を示しています。このプロセスは、トレーニング中にUltralytics YOLO26のデータローダー内で自動的に行われます。

import numpy as np

# Simulate a 2x2 pixel image with values ranging from 0 to 255
raw_image = np.array([[0, 255], [127, 64]], dtype=np.float32)

# Apply Min-Max normalization to scale values to [0, 1]
# This standardizes the input for the neural network
normalized_image = raw_image / 255.0

print(f"Original Range: {raw_image.min()} - {raw_image.max()}")
print(f"Normalized Range: {normalized_image.min()} - {normalized_image.max()}")

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

未来の機械学習で、新たな一歩を踏み出しましょう。