損失関数(コスト関数または目的関数とも呼ばれる)は、モデルの予測と、それが一致させようとしている真のターゲット値との間の差を測定する数学的関数です。機械学習モデルのトレーニングは、ほぼ全ての場合において、バックプロパゲーションを通じて計算された勾配によって導かれる勾配降下法を用いて、この関数の出力を可能な限り小さくするようにパラメータを調整するプロセスです。
一般的な形式
ターゲットが連続値である回帰タスクでは、予測とターゲットの差の二乗を平均した平均二乗誤差が最も広く使われる損失であり、小さな誤差よりも大きな誤差を不釣り合いにペナルティします。分類タスクでは、クラス上の予測確率分布と真の分布との差を測定するクロスエントロピー損失(対数損失とも呼ばれる)が、画像分類から次世代トークン予測までの問題に対する標準的な選択肢です。大規模言語モデルは、ほぼ例外なく、すべてのトークン位置にクロスエントロピー損失を適用してトレーニングされ、各ステップで、トレーニングテキスト内の実際の次のトークンに可能な限り高い確率を割り当てるようにモデルに事実上要求します。他の損失は特定の目的に役立ちます。サポートベクターマシンなどのマージンベースの分類器用のヒンジ損失、類似したアイテムが潜在空間で互いに近くに配置されるべき埋め込みを学習するためのコントラスト損失やトリプレット損失、そして、2つ目のネットワークが本物と生成データを区別する能力が生成対抗ネットワークの生成器の損失となる敵対的損失などがあります。
損失と本来の目的の乖離
機械学習における繰り返し発生するテーマは、数学的に最小化するようにモデルが最適化される損失関数と、多くの場合に正確に定義することがより難しい実際の下流目標との間のギャップです。次世代トークンのクロスエントロピー損失のみを最小化するように訓練された大規模言語モデルは、流暢にテキストを続けることはできますが、正直で、役に立ち、安全であるように明示的に動機付けられているわけではありません。これらの特性は、人間の好みによって形成されたさらなる損失信号を提供する学習済み報酬モデルを用いるRLHFなどの追加の目的を通じて後から追加されます。モデルが意図された目標を真に達成することなく、その損失関数または関連するプロキシメトリックで良いスコアを獲得する方法を見つけた場合、その結果は報酬ハッキングと呼ばれ、モデルにより多くの自律性とより良い最適化が与えられるにつれて、より重大になる障害モードです。
損失と汎化
損失関数は通常、モデルが直接学習するトレーニングセットと、新しいデータでモデルがどの程度うまく機能するかを推定するホールドアウトされた検証セットの両方で評価されます。トレーニング損失と検証損失の間の大きく永続的なギャップは、モデルが汎化するパターンを学習するのではなく、トレーニングデータの詳細を事実上記憶している過学習の典型的な兆候です。損失関数に直接追加される重みペナルティ、ドロップアウト、検証損失に基づく早期停止などの正則化に分類されるテクニックは、このギャップを制御下に保つための標準的なツールです。ディープネットワークの損失曲面は非常に高次元であるため、損失関数の特定の形状は、その最終値だけでなく、モデルがどれだけ学習しやすいかに実質的に影響を与え、損失曲面の滑らかさと、正規化層や残差接続などのアーキテクチャ上の選択との関係についての研究を動機付けています。