AI・機械学習
上級

Self-Paced Learning(セルフペーストラーニング)

Self-Paced Learning(SPL)とは、モデル自身の現在の学習状態に基づいて、次に学習すべきサンプルを自動的に選択するカリキュラム学習の一形態である。人手で難易度順序を定義する古典的カリキュラム学習と異なり、モデルの損失値やグラディエントノルムを指標として「今の自分にとって適切な難易度」のデータを動的に選択する。

0 回閲覧
0 いいね

Self-Paced Learningの原理

Self-Paced Learning(SPL)は2010年にKumar, Packer, Koller が提唱した自己適応型の訓練戦略である。基本的なアイデアは、各訓練イテレーションで「モデルの現在の損失が閾値λ以下のサンプルのみを選択して学習する」というものである。

数学的には、以下の最適化問題として定式化される:

min_{w,v} Σ_i v_i × L(x_i, y_i; w) - λ × Σ_i v_i

ここでwはモデルパラメータ、v_iはサンプルiの選択変数(0または1)、L は損失関数、λはペースパラメータ(閾値)である。λが小さいと簡単なサンプルのみ選択され、λを増大させることで徐々に難しいサンプルが含まれていく。

SPLの正則化項バリエーション

正則化型数式(概要)特徴適用場面
Hardv ∈ {0,1}(二値選択)閾値以下のサンプルを完全選択ノイズ除去に強い
Linearv ∈ [0,1](連続緩和)ソフトな重み付けで滑らかな遷移大規模データ向き
Logarithmic-ζ(v log v + (1-v) log(1-v))エントロピー正則化で多様性確保偏りやすいデータ
MixtureHard + Linear の組み合わせ二段階選択で精度と多様性を両立汎用

LLMへの適用

LLMの訓練にSPLを適用する場合、以下のような実装が一般的である。

トークンレベルSPL

各トークンの予測損失(negative log-likelihood)に基づいて、バッチ内の各トークンに重みを付与する。損失が極端に高いトークン(ノイズや非典型的なパターン)の重みを下げ、モデルの現在能力に適したトークンの重みを上げる。

EleutherAI の Pythia シリーズの実験(2023年)では、トークンレベルSPLにより、通常訓練と同一FLOPsでHellaSwagスコアを1.2ポイント改善した。特にウェブクロールデータのノイズ耐性が向上し、低品質テキストの悪影響を軽減できた。

ドキュメントレベルSPL

ドキュメント(文書)単位で損失を集計し、文書単位で選択・重み付けを行う。トークンレベルより粒度は粗いが、計算オーバーヘッドが小さく大規模訓練に適している。

ドメインレベルSPL

ドメイン(Wikipedia、ニュース、コード、学術論文など)単位でSPLを適用する。各ドメインのバリデーション損失に基づいてサンプリング比率を動的に調整する。DoReMi(Xie et al., 2023年)はこのアプローチの代表例で、280のドメインのサンプリング比率を自動最適化し、手動チューニング対比でGLUE平均スコアを2.6ポイント改善した。

Self-Paced Curriculum Learning(SPCL)

SPCLは、人手定義のカリキュラム(事前の難易度順序)とSPL(モデル自身の適応的選択)を統合した手法である。2015年にJiang et al. が提案し、以下のように動作する。

  1. 事前にproxy モデルで各サンプルに難易度スコアを付与(カリキュラム要素)
  2. 訓練中、現在の難易度範囲内でモデルの損失が低いサンプルを優先選択(SPL要素)
  3. 訓練進行に伴い難易度範囲を拡大(ペーシング)

この統合により、「全体的な進行方向はカリキュラムが決め、局所的なサンプル選択はSPLが決める」という階層的制御が実現される。

計算コストとスケーラビリティ

SPLの計算オーバーヘッドは、主にサンプル選択のための損失計算にかかる。

手法追加計算コストメモリオーバーヘッドスケーラビリティ
ナイーブSPL(全サンプル評価)100%(2倍の順伝播)選択変数v分低(〜10B)
ミニバッチSPL0%(通常順伝播の損失を再利用)損失バッファ分高(100B+)
EMA-SPL(指数移動平均)~1%EMA統計量非常に高
Proxy-SPLproxy推論分(2〜5%)proxyモデル分中〜高

実用的なLLM訓練では、ミニバッチSPL(各バッチの損失値をそのまま再利用して重み付け)が最も効率的で、追加の計算コストが実質ゼロに近い。

実装のポイント

ペースパラメータλのスケジューリング

λの増大速度が速すぎるとカリキュラム効果が薄れ、遅すぎると訓練データの利用効率が低下する。一般的には訓練ステップの平方根に比例してλを増大させる(λ(t) = λ_0 × √t)方式が安定した結果を示す。

温度スケーリング

選択変数vをソフトマックスで正規化する際の温度パラメータτにより、選択のシャープさを制御できる。τ=0.1では少数のサンプルに集中、τ=1.0では均等に近い分布となる。訓練初期はτを低く(集中的に簡単なサンプル)、後期はτを高く(多様なサンプル)にするアニーリングが効果的である。

FAQ

Q: SPLはデータ拡張と組み合わせられますか?

A: 組み合わせ可能で、相乗効果がある。拡張されたサンプルは元のサンプルより損失が高い傾向があるため、SPLにより適切なタイミングで導入される。ただし、拡張サンプルが常に後回しにされないよう、拡張サンプル専用の損失閾値を設定することが推奨される。

Q: SPLとActive Learningの違いは何ですか?

A: Active Learningは「ラベルなしデータからどのサンプルにラベルを付けるか」を選択する手法で、ラベル付けコストの最小化が目的である。SPLは「ラベル済みデータからどのサンプルで訓練するか」を選択する手法で、訓練効率の最大化が目的である。選択基準は類似(不確実性、損失値)だが、適用フェーズと目的が異なる。

Q: ノイズの多いデータセットでSPLは有効ですか?

A: 非常に有効である。SPLは損失が高いサンプル(=ノイズやアウトライアの可能性が高い)を後回しにするため、ノイズ耐性が自然に備わる。WebテキストのようなノイジーなコーパスでのLLM事前学習では、SPLによりノイズサンプルの影響を自動的に軽減できる。