Label Smoothing
ラベルスムージングでは、各ワンホット学習ターゲットを一様分布と混合し、分類器の過信を抑えてキャリブレーションを改善します。
ラベルスムージングは、ディープラーニングの分類モデルに使う正則化手法です。学習データのハードなワンホットターゲットを、正解クラスに確率の大半を残し、スムージング係数εで決まる小さな割合をすべてのクラスに均等に分散させたソフトな値に置き換えます。このソフトターゲットで学習すると、ニューラルネットワークが100%の信頼度を得るためにロジットを極端な値まで押し上げるのを防ぎ、過学習を抑えて、より適切に較正された確率を生成します。SzegedyらはInception-v3の論文でこれを説明し、1,000のImageNetクラスに対してε = 0.1を使用しました。現在では、画像分類、翻訳、音声モデルの学習で標準的なオプションになっています。
ラベルスムージングの仕組み#
クラス数をK、スムージング係数をεとすると、各ターゲットは(1 − ε) · y + ε / Kになります。yはワンホットラベルです。クラスが3つでε = 0.1の場合、ラベル[1, 0, 0]は約[0.933, 0.033, 0.033]になります。ハードターゲットに対する交差エントロピーは、正解ロジットが他のロジットをさらに上回るほど低下するため、損失関数はロジット間の差を大きくするほど報酬を与え、softmax出力は飽和します。スムージングされたターゲットに対する損失は、ln((1 − ε + ε / K) / (ε / K))で表される有限の差(この例では約3.3)で最小になり、それを超えると再び増加するため、勾配は過信した予測をより穏当な値へ戻します。Ultralytics YOLO26の検出モデルも、関連する種類のソフトターゲットでクラス予測を学習します。タスク整合アサイナーは、各正例アンカーのクラスターゲットを、予測スコアとボックスが物体にどの程度整合するかに応じてスケーリングするため、ほとんどのターゲットは1未満になります。
PyTorchのCrossEntropyLossは、label_smoothing引数でこの計算式を適用します。
import torch
from torch import nn
# The correct class is index 0 of three; hard and smoothed versions of the same loss
target = torch.tensor([0])
hard_loss = nn.CrossEntropyLoss()
smooth_loss = nn.CrossEntropyLoss(label_smoothing=0.1)
# Score the correct class increasingly far above the other two
for gap in [1.0, 3.0, 6.0, 12.0]:
logits = torch.tensor([[gap, 0.0, 0.0]])
hard = hard_loss(logits, target).item()
smooth = smooth_loss(logits, target).item()
print(f"Logit gap {gap:>4}: hard loss {hard:.3f}, smoothed loss {smooth:.3f}")差が大きくなるにつれ、ハード損失は0.551から0.000に低下します。一方、スムージング損失は差が約3のときに0.295で最小となり、差が12になると0.800まで上昇するため、極端な確信は適度な確信よりも大きなコストになります。
較正と学習特徴への影響#
Müller、Kornblith、Hintonは、ラベルスムージングがモデルの較正、つまり予測確率が実際の正解頻度にどの程度一致するかを改善することを示しました。また、各クラスのペナルティ層の特徴を、密集した等間隔のクラスターにまとめることも示しました。この圧縮によって、画像がどの誤クラスに似ているかという情報が失われ、ラベルスムージングで学習した教師モデルは、知識蒸留を通じて生徒モデルに伝えられる情報が大幅に少なくなりました。
実際のアプリケーション#
ラベルがノイズを含む場合、曖昧な場合、またはクラス数が多い場合に、ラベルスムージングは特に効果を発揮します。
- ImageNet規模の分類: ImageNetには、誤ったラベルが付いた画像や、複数の正解オブジェクトを含む写真があります。DeiTを含む畳み込みネットワークやVision Transformerの学習レシピでは、疑わしいラベルにモデルが完全な確信を持って適合しないよう、ε = 0.1を使用します。
- 機械翻訳: オリジナルのTransformerでは、ε = 0.1のラベルスムージングを使用しました。著者らは、モデルの確信度が下がるためパープレキシティは上昇する一方、精度とBLEUスコアは向上したと報告しています。
- 医用画像解析: 専門家のアノテーターは、判定が難しいスキャンで意見が分かれることがよくあります。スムージングされたターゲットを使うと、診断分類器が議論のあるラベルを確定事項として扱わなくなります。また、より適切に較正されたスコアにより、臨床トリアージのしきい値の信頼性が高まります。
ラベルスムージングと関連手法の比較#
- 知識蒸留: 蒸留でも、教師モデルの予測から得たソフトターゲットで学習します。これにより、どのクラス同士が似ているかを記録できます。ラベルスムージングのターゲットでは、すべての誤クラスに同じ小さな割合が割り当てられます。
- 温度スケーリング: 温度スケーリングは、学習済みモデルのロジットを学習可能な1つの定数で割ることで、後からモデルを較正します。重みは変更しません。
- ドロップアウトレイヤー: ドロップアウトは学習中にランダムな活性化をゼロにしてネットワークを正則化します。一方、ラベルスムージングは学習ターゲットを通じて正則化します。
- CutMix: CutMixとmixupは、2枚の学習画像を混合し、同じ割合でラベルも混ぜるデータ拡張手法です。そのため、ソフトターゲットは入力自体から得られます。CutMixでは貼り付けたパッチが占める面積に応じて各ラベルに重みを付け、mixupではベータ分布からサンプリングした1つの係数でピクセルとラベルの両方に重みを付けます。










