AI・機械学習
上級

Label Smoothing(ラベルスムージング)

ワンホットラベルの正解確率を1.0から(1-ε)に下げ、残りのεを他クラスに均等配分することでモデルの過信を抑制し、予測のキャリブレーション精度と汎化性能を向上させる正則化手法。翻訳・要約などのLLMタスクで広く使用される。

0 回閲覧
0 いいね

Label Smoothingとは

Label Smoothing(ラベル平滑化)は、2016 年に Szegedy らが Inception v2 の論文で提案した正則化手法である。通常のクロスエントロピー損失では正解クラスに確率 1.0、それ以外に 0.0 を割り当てるワンホットラベルを使用するが、Label Smoothing ではこの「硬い」ラベルを「柔らかい」ラベルに変換する。

具体的には、正解クラスの確率を (1 - ε) に、残りの確率 ε を他の全クラスに均等配分する。ここで ε(イプシロン)は平滑化パラメータで、典型的には 0.1 が使用される。

変換例(クラス数 K = 5、正解クラス = 2、ε = 0.1):

  • ワンホット: [0, 0, 1, 0, 0]
  • 平滑化後: [0.025, 0.025, 0.9, 0.025, 0.025]

数学的定式化

Label Smoothing を適用したクロスエントロピー損失は以下のように定式化される。

通常のクロスエントロピー損失:L_CE = -Σ y_i * log(p_i)(y はワンホットラベル、p はモデル出力確率)

Label Smoothing 適用後:y_smooth_i = y_i * (1 - ε) + ε / K

パラメータ説明典型的な値
ε(epsilon)平滑化強度0.1
Kクラス数(語彙サイズ)32,000〜256,000
1 - ε正解クラスの確率0.9
ε / K非正解クラスの確率非常に小さい値

LLM では K が語彙サイズ(数万〜数十万)であるため、非正解トークンに配分される確率は極めて小さい。しかし、この微小な確率の存在がモデルの出力 logit の大きさを抑制し、過信を防ぐ効果がある。

Label Smoothingの効果

Label Smoothing がモデルに与える影響を以下に整理する。

効果説明実測結果
過信抑制出力確率の最大値が 1.0 に近づかないキャリブレーション ECE 20〜40% 改善
logit 圧縮出力 logit の絶対値が小さくなるlogit の分散が 30〜50% 減少
暗黙的な知識蒸留ソフトラベルが教師モデルの出力に類似知識蒸留と類似の効果
温度スケーリング不要化出力分布が自然にキャリブレーションされる推論時の温度調整が不要に
汎化性能向上テストセットでの性能改善BLEU +0.5〜1.0(翻訳タスク)

LLMにおけるLabel Smoothingの適用

LLM での Label Smoothing の採用状況は手法によって分かれる。

モデル/手法Label Smoothingε 値タスク
原著 Transformer使用0.1機械翻訳
BERT不使用-マスク言語モデル
GPT-2/3不使用-自己回帰生成
T5不使用-テキスト生成
mBART使用0.2多言語翻訳
NLLB使用0.1多言語翻訳
PaLM不使用-汎用 LLM
LLaMA不使用-汎用 LLM

翻訳モデルでは積極的に使用される一方、汎用 LLM の事前訓練では使用しないケースが多い。これは、自己回帰生成タスクでは「正解トークンに最大確率を割り当てる」ことが生成品質に直結するため、Label Smoothing による確率の平坦化が生成品質を低下させる可能性があるためである。

Label Smoothingの派生手法

基本的な一様分布 Label Smoothing 以外にも、様々な派生手法が提案されている。

派生手法原理利点
Token-Level Smoothingトークンの頻度に応じて ε を調整稀少トークンの学習改善
Unigram Smoothing非正解ラベルを一様ではなくユニグラム分布で配分言語的に妥当な分布
Adaptive Smoothing訓練進行に応じて ε を変化初期は強く後半は弱く
Focal Label SmoothingFocal Loss と Label Smoothing の組み合わせ困難サンプルへの注力
Bidirectional Smoothing正解・非正解の両方向に平滑化より滑らかな出力分布

Label Smoothingとキャリブレーション

モデルのキャリブレーション(予測確率と実際の正解率の一致度)は、LLM の信頼性にとって重要な指標である。

キャリブレーション指標説明Label Smoothing の影響
ECE(Expected Calibration Error)ビン分割による期待キャリブレーション誤差大幅に改善(20〜40%)
MCE(Maximum Calibration Error)最大キャリブレーション誤差改善
Brier Score確率予測の二乗誤差改善
NLL(Negative Log-Likelihood)対数尤度若干悪化することがある

Label Smoothing はキャリブレーションを大幅に改善するが、NLL は若干悪化する場合がある。これは、Label Smoothing が logit の大きさを制限するため、正解トークンに対する log 確率が低下するためである。

実装上の注意点

注意点説明対策
ε の選択大きすぎると正解ラベルの情報が失われる0.05〜0.2 の範囲で検証
パディングトークンパディングに確率を配分しないignore_index の設定
特殊トークンBOS/EOS に平滑化が必要かタスクに応じて判断
温度との相互作用Label Smoothing + 温度スケーリングの二重効果一方のみ使用を推奨
混合精度訓練FP16 での微小確率の精度ε/K が FP16 の精度範囲内か確認

よくある質問(FAQ)

Q1: Label Smoothing の ε = 0.1 は万能か?

多くのタスクで 0.1 は良好な出発点だが、万能ではない。語彙サイズが非常に大きい LLM(K > 100,000)では ε = 0.1 でも非正解トークンへの配分は無視できるほど小さくなる。翻訳タスクでは 0.1〜0.2 が一般的だが、テキスト生成タスクでは 0.0〜0.05 が適切な場合がある。検証セットでの perplexity と BLEU/ROUGE をバランスよく評価して決定する。

Q2: Label Smoothingは知識蒸留の代替になるか?

部分的に代替可能だが、完全な代替ではない。Label Smoothing は一様分布で平滑化するのに対し、知識蒸留は教師モデルの出力分布(クラス間の類似性を反映した「暗黒知識」)を利用する。知識蒸留の方がクラス間の関係性をより豊かに伝達できるため、教師モデルが利用可能な場合は知識蒸留が優れる。ただし、教師モデルがない場合の簡便な代替としては有効。

Q3: 自己回帰LLMでLabel Smoothingを使わない理由は?

自己回帰 LLM では次トークン予測の精度が生成品質に直結する。Label Smoothing は正解トークンの確率を下げるため、ビームサーチやグリーディデコーディングでの最良トークンの選択精度が低下する可能性がある。また、十分に大きなデータセットでは過学習自体が起きにくく、Weight Decay のみで十分な正則化効果が得られる。翻訳タスクでは BLEU が改善するが、これは翻訳品質の評価指標の特性による部分もある。