目的関数(Objective Function) | Deep Learning の基礎
定義
学習アルゴリズムが実際に最小化(または最大化)しようとする関数を目的関数と呼びます。
代表的な目的関数に損失関数に正則化項などを加えた関数があります。
関連用語の整理
| 用語 | 役割 |
|---|---|
| 損失関数(loss function) | 1つのデータ点に対する予測と正解の誤差を測る関数(例:交差エントロピー、二乗誤差) |
| コスト関数(cost function) | 損失関数をデータセット全体で平均・合計したもの |
| 目的関数(objective function) | 損失関数 + 正則化項など、最適化のターゲットとなる関数全体 |
基本式
\[目的関数 = 損失関数(誤差) + 正則化項\]例:L2 正則化
\[\begin{aligned} 目的関数 = 交差エントロピー(予測, 正解) ← 損失関数(誤差そのもの) \\ + λ × Σ W² ← 正則化項(誤差ではない) \end{aligned}\]目的関数が必要な理由
LLM の文脈における目的関数
- 事前学習(pretraining)における目的関数は、交差エントロピー誤差の平均
- ファインチューニングや RLHF の段階では、報酬モデルのスコアや KL ダイバージェンス項など、別の目的関数が追加・置換される
正則化(Regularization)
定義
モデルが訓練データに過剰に適合(オーバーフィッティング)しないように、意図的に制約やペナルティを加えてモデルをシンプルに保つための手法です。
基本的な考え方
損失関数にパラメータの大きさに対するペナルティ項を加えるます。
最終的な目的関数 = 訓練データへの誤差 + λ × ペナルティ項
この λ(ラムダ、正則化係数)を調整することで、正則化の強さをコントロールする。
- λを大きくする → ペナルティが強く効く → パラメータが小さく抑えられる → モデルが単純になる(正則化を強める)
- λを小さくする(0に近づける) → ペナルティがほぼ効かない → パラメータが自由に動ける → モデルが複雑になれる(正則化を弱める)
代表的な種類
- L2正則化(Ridge): パラメータの二乗和にペナルティをかける。パラメータ全体を滑らかに小さくする。最も一般的。
- L1正則化(Lasso): パラメータの絶対値の和にペナルティをかける。一部のパラメータを完全に0にする性質があり、特徴量選択にも使える。
- Elastic Net: L1とL2を組み合わせたもの。
- Dropout: 学習時に一部のニューロンをランダムに無効化する(ニューラルネットワーク特有)。
- 重み減衰(weight decay): パラメータ更新の式に直接組み込む手法。現代的な実装(AdamW等)ではL2正則化とは別物として区別される。
- データ拡張(augmentation): 入力データ側を加工することで汎化性能を高める。
- 早期終了(early stopping): 学習を打ち切るタイミングの工夫。
- ラベルスムージング: 正解ラベルの確率分布自体を緩める手法。
損失関数への「足し算」になるか
| 種類 | 損失に「足し算」される? |
|---|---|
| L1 / L2正則化 | される(λ × Σ W² のような項を損失に追加) |
| Dropout | されない。ランダムにニューロンを無効化する操作自体が正則化効果を生む |
| Weight decay(AdamW等) | されない。パラメータ更新の式に直接組み込む |
| データ拡張 | されない。入力データ側を加工する |
| 早期終了 | されない。学習を打ち切るタイミングの工夫 |
| ラベルスムージング | 「足し算」というより「入力の加工」に近い |
共通しているのは「モデルがオーバーフィッティングしにくくなるよう、 何らかの制約や工夫を加える」という目的の部分。
バイアス・バリアンスとの関係
- バリアンスが大きい(オーバーフィッティング)場合: λ を大きくして正則化を強め、モデルを単純に保つことでバリアンスを抑える。
- バイアスが大きい(アンダーフィッティング)場合: 正則化が強すぎる可能性があるため、λ を小さくして正則化を弱め、モデルがより自由にパターンを学習できるようにする。