Label Smoothing
label smoothingが過学習を防ぎ、モデルの汎化性能を向上させる仕組みを学びます。Ultralytics YOLO26でこの手法を実装し、より良い結果を得る方法を紹介します。
ラベルスムージングは、モデルの汎化性能を向上させ、過学習を防ぐために機械学習で広く使用されている正則化手法です。ニューラルネットワークをトレーニングする際、通常は予測と正解データの誤差を最小限に抑えることが目標になります。しかし、モデルが予測に対して過度に確信を持ち、単一のクラスにほぼ100%の確率を割り当てるようになると、堅牢なパターンを学習するのではなく、トレーニングデータに含まれる固有のノイズを記憶し始めることがよくあります。この現象は過学習と呼ばれ、新しく未知の例に対する性能を低下させます。ラベルスムージングは、モデルが絶対的な確信を持って予測することを抑制することでこの問題に対処します。つまり、ネットワークに対して、常にわずかな誤差の余地があることを伝えます。
ソフトターゲットの仕組み#
ラベルスムージングの仕組みを理解するには、標準的な「ハード」ターゲットと比較すると分かりやすくなります。従来の教師あり学習では、分類ラベルは通常、ワンホットエンコーディングで表現されます。例えば、猫と犬を区別するタスクでは、「犬」の画像のターゲットベクトルは[0, 1]になります。これに完全に一致させるため、モデルはロジットと呼ばれる内部スコアを無限大に近づけようとしますが、その結果、勾配が不安定になり、適応できなくなる可能性があります。
ラベルスムージングは、こうした固定的な1と0を「ソフト」ターゲットに置き換えます。ターゲット確率を1.0とする代わりに、正しいクラスには0.9を割り当て、残りの確率質量(0.1)を誤ったクラス全体に均等に分配します。この微細な変化により、損失関数(クロスエントロピーなど)の目的が変更され、活性化関数(通常はSoftmax)の飽和が防止されます。その結果、モデルは特徴空間内でクラスごとのより密なクラスタを学習し、より優れたモデルキャリブレーションを実現します。つまり、予測確率が正しい可能性の実際の尤度をより正確に反映するようになります。
実世界での利用例#
この手法は、データに本質的な曖昧さがある領域や、データセットでラベル付けエラーが発生しやすい場合に特に重要です。
- 医療診断: ヘルスケアにおけるAIの分野では、臨床データが完全に明確であることはほとんどありません。例えば、医用画像解析では、スキャンに疾患を強く示唆する特徴が見られても、確定的とは限りません。ハードラベルを使ってトレーニングすると、モデルはこの不確実性を無視することになります。ラベルスムージングを適用すると、モデルは一定の懐疑性を維持できます。これは、過信が誤診につながる可能性のある意思決定支援システムにおいて重要です。
- 大規模画像分類: ImageNetのような大規模な公開データセットには、誤ったラベルが付けられた画像や、複数の有効なオブジェクトを含む画像が含まれていることがよくあります。モデルがこうしたノイズの多い例に100%の確信度で適合しようとすると、誤った関連付けを学習してしまいます。ラベルスムージングはラベルノイズに対する緩衝材として機能し、少数の不適切なデータポイントが最終的なモデル重みを大きく歪めないようにします。
Ultralyticsでのラベルスムージングの実装#
最新のディープラーニングフレームワークを使用すると、この手法を簡単に適用できます。ultralyticsパッケージを使用すれば、画像分類や検出タスクのトレーニングパイプラインにラベルスムージングを簡単に統合できます。これは、YOLO26のような最先端モデルから追加の性能を引き出すためによく行われます。
次の例では、ラベルスムージングを有効にして分類モデルをトレーニングする方法を示します。
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Train with label_smoothing set to 0.1
# The target for the correct class becomes 1.0 - 0.5 * 0.1 = 0.95 (depending on implementation specifics)
model.train(data="mnist", epochs=5, label_smoothing=0.1)関連概念との比較#
ラベルスムージングをいつ使用するべきかを理解するには、他の正則化手法との違いを把握すると役立ちます。
- Dropoutとの比較: Dropoutレイヤーは、トレーニング中にニューロンをランダムに無効化し、ネットワークが冗長な表現を学習するよう促します。どちらも過学習を防ぎますが、Dropoutはネットワークアーキテクチャを動的に変更するのに対し、ラベルスムージングは最適化のターゲット(ラベル自体)を変更します。
- 知識蒸留との比較: どちらの手法もソフトターゲットを使ってトレーニングします。ただし、知識蒸留では、ソフトターゲットは「教師」モデルから得られ、学習された情報(例: 「これは猫に10%似ています」)を含みます。一方、ラベルスムージングでは、数学的に導出された「情報を持たない」ソフトターゲット(例: 「他のすべてのクラスに均等に10%の確率を与える」)を使用します。
- データ拡張との比較: データ拡張の手法では、入力データ(回転、クロップ、色付けなど)を変更して多様性を高めます。ラベルスムージングでは、出力に対する期待値を変更します。Ultralytics Platformでの包括的なトレーニングワークフローでは、最大の精度を実現するために、拡張、Dropout、ラベルスムージングを組み合わせることがよくあります。
最終層における勾配消失問題を緩和し、モデルがより堅牢な特徴を学習するよう促すラベルスムージングは、現代のディープラーニングアーキテクチャで今なお広く使用されています。









