損失関数とは?意味・仕組みと損失の設計を変えた論文(2026年11月時点)

損失関数(そんしつかんすう)

Loss function / コスト関数

損失関数とは、機械学習のモデルの予測が正解からどれだけずれているかを、損失という1つの数として計算する関数のこと。学習はふつう、この損失を小さくするように進める。

要するに

  • 数を予測する回帰は二乗誤差、クラスを予測する分類は対数損失や交差エントロピーをよく使う
  • 言語モデルは次のトークンの予測で損失を測り、パープレキシティは交差エントロピーの指数になる
  • 損失は同じ分類器とデータの中でだけ比べられ、低ければ役に立つとは限らない

最終確認

白い面に置いた白い的と、少し離れて立つすりガラスの印、印と的の中心を結ぶ紫の細い糸
目次8

ひとことで言うと

損失関数は、モデルの予測が正解からどれだけずれているかを、1つの数(損失)として計算する関数だ。Google の機械学習の用語集は、教師あり学習のモデルの学習で予測がラベルからどれだけ離れているかを測るものを損失と呼ぶ。同じ用語集によると、損失関数はよい予測をするモデルに、悪い予測をするモデルより低い損失を返す。学習の目標はふつう、損失関数が返す損失を最小にすることだという。画像認識の深層学習の講義 CS231n のノートは損失関数をコスト関数や目的関数と呼ぶこともあると書いている。

身近な例として、Google の講座「Machine Learning Crash Course」の英語版は車の重さから燃費を予測するモデルを使う。2,370ポンドの車の燃費を1ガロンあたり23.1マイルと予測し、実際は24マイルだったとき、差を2乗した L2 損失は0.81になる。

仕組み

損失関数を使って学ぶ流れを、Google の講座と用語集をもとに書くと次のようになる。

  1. モデルが学習用の例(データ)ごとに予測を出す。
  2. 損失関数が予測とラベル(正解)を比べて損失を計算する。講座によると、損失は差の向きを見ずに距離だけを見るので、どの計算方法も符号を取り除く。複数の例をまとめて扱うときは、すべての例の損失を平均するよう勧めている。
  3. 損失が小さくなる向きに、モデルの重みを少し動かす。この手順が勾配降下法だ。
  4. 1に戻ってくり返す。用語集によると、学習の回数ごとの損失を描いた損失の曲線が下がっていれば、モデルは良くなっている。

どの損失関数を使うかは、モデルが何を予測するかで変わる。用語集は作るモデルの種類に合った損失関数を選ぶよう書いている。

数を予測する回帰では、二乗誤差がよく使われる。講座は線形回帰の主な損失として、差の絶対値を足す L1 損失、その平均の平均絶対誤差(MAE)、差の2乗を足す L2 損失(二乗誤差)、その平均の平均二乗誤差(MSE)、MSE の平方根(RMSE)の5つを挙げる。用語集によると、回帰モデルはふつう L2 損失を使う。2乗するので、差が大きいと損失はさらに大きくなり、差が1未満なら小さくなる。用語集の5件の例では L1 損失が8、L2 損失が16で、外れ値(ほかから大きく離れた値)の1件が16のうち9を占める。

クラスを予測する分類では、対数損失と交差エントロピーが使われる。講座によると、確率を予測するロジスティック回帰は、二乗誤差ではなく対数損失(Log Loss)を使う。出力がS字の曲線を描くので、二乗誤差では0や1に近い値の違いを保つのに多くのメモリが要るからだ。用語集は交差エントロピーを、対数損失を3つ以上のクラスに広げたもので、2つの確率分布の違いを数値にしたものだと説明している。

CS231n のノートによると、ソフトマックス関数でクラスごとのスコアを合計1の確率に直し、正解のクラスに付けた確率の対数にマイナスを付けた値を損失にする。ノートは交差エントロピーを使う目的を、予測した確率をすべて正解のクラスに集めることだと説明している。

LLM のような言語モデルの学習でも、次に来るトークンを当てる損失を使う。たとえば Hugging Face の Transformers のドキュメントは、GPT-2 のモデルが返す損失を次のトークンの予測のための言語モデルの損失と説明している。モデルは語彙のトークンごとにスコアを出し、ラベルには入力の文をそのまま渡せる。ずらす処理はモデルの中で行う。

言語モデルの評価でよく使うパープレキシティは、この損失と結びついている。同じドキュメントによると、パープレキシティは文のトークンごとの負の対数尤度(前のトークンを手がかりに、モデルがそのトークンに付けた確率の対数にマイナスを付けたもの)の平均を、指数にした値だ。データとモデルの予測の交差エントロピーを指数にした値とも同じになる。Google の用語集はスマートフォンのキーボードで単語の候補を出す例を挙げ、打とうとしている単語を候補に入れるのに要る、おおよその候補の数だと説明している。

損失関数には予測の外れぐあいのほかに、正則化の項を足すことがある。CS231n のノートは多クラス SVM の損失を例に、全体の損失を、例ごとの損失の平均(データの損失)と正則化の損失の2つで書く。よく使う L2 正則化は重みの2乗の合計を罰にする。この項はデータに関係なく、重みだけで決まる。正則化の強さと過学習の関係は過学習のページで説明している。

表で見る最新の状況

上の「損失関数の設計にかかわる論文」は、TRAIL が解説した論文から、損失の決め方を変えたか、損失を物差しに使った5本を古い順に並べたものだ。確認日は2026年11月6日。

2016年9月の SRGAN は画像を4倍に拡大する研究だ。画素の平均二乗誤差を減らす方法は、数値では元画像に近くても見た目がぼやけることがあるとして、敵対的な損失と、画素ではなく画像の特徴の近さに基づく内容損失を組み合わせた。Set14 では、観察者の評価(MOS)が SRGAN(特徴に基づく内容損失の版)3.72、画素の平均二乗誤差で学んだ SRResNet 2.98 で、PSNR は同じ順に26.02 dB と28.49 dB だった。

2017年8月の Focal Loss は、物体検出で、正解のクラスに高い確率を付けた例ほど損失を弱める係数を掛ける。同じ RetinaNet の構成で、クラスの比で調整した交差エントロピーの最高の AP(平均精度)は31.1、γ=2、α=0.25 の Focal Loss は34.0だった。

2020年1月の Scaling Laws は言語モデルの交差エントロピー損失が、モデルの大きさ、データの量、学習の計算量に対してべき乗の法則に沿うと報告した。傾向の一部は7桁を超える範囲に及ぶ。

2020年2月の SimCLR は同じ画像を2通りに変えた入力を近づけ、別の画像から来た入力を離す対照損失を使う。ImageNet の線形評価で top-1 正答率76.5%を報告した。

2023年5月の DPO は選ばれた応答と退けられた応答の組から、言語モデルを直接調整する目的関数を導いた。論文の要旨によると、RLHF の問題を単純な分類の損失だけで解き、報酬モデルを別に学ばない。

TRAIL の解説では、5本のうち4本が何を損失として測るかを変え、Scaling Laws は損失そのものを物差しに使っている。SRGAN の解説が書くように、元画像の画素を再現することと、自然な質感に見えることは同じ目標ではない。

二乗誤差と交差エントロピーの違い

二乗誤差(MSE) 交差エントロピー(対数損失)
使うモデル 数を予測する回帰 クラスを予測する分類。LLM の次のトークンの予測
比べるもの 予測した値とラベルの値の差 予測した確率と正解のクラス
性質 悪い予測に強く反応し、外れ値の影響を大きくする 正解のクラスの負の対数尤度を小さくする
PyTorch のクラス nn.MSELoss nn.CrossEntropyLoss
結びつく指標 RMSE(MSE の平方根) パープレキシティ

PyTorch(ニューラルネットワークを作るためのソフトウェア)の torch.nn には、このほか nn.L1Loss、nn.HuberLoss、nn.KLDivLoss などの損失関数が並ぶ。

仕事でどう関係するか

学習の経過の報告を読むとき

Google の用語集によると、学習用と検証用の損失を学習の回数に沿って描いた図を汎化曲線と呼ぶ。検証用の損失が最後に学習用の損失を大きく上回れば、過学習のしるしだ。報告に学習用の損失だけが載っているときは、検証用の損失も聞くと判断しやすい。

プロンプト
このモデルの学習について、次の2点を教えてください。
- 学習用と検証用の損失を、学習の回数に沿って並べた図
- 使った損失関数の名前と、正則化の有無

数を予測するモデルを頼むとき

Google の講座によると、MSE で学ばせたモデルは外れ値に引き寄せられ、MAE で学ばせたモデルはほかの多くの点の近くにとどまる。講座は外れ値をどう扱いたいかを考えて損失関数を選ぶよう書いている。MAE と RMSE は予測と同じ尺度で誤差を測るので、MSE より人が読み取りやすい傾向があるという。

クラスの数が偏ったデータで分類させるとき

PyTorch の nn.CrossEntropyLoss には、クラスごとの重みを渡す引数があり、ドキュメントは学習用のデータが偏っているときに特に役立つと書いている。上の Focal Loss も、数の多い簡単な背景の例に学習が引っ張られる問題を、損失の形を変えて扱った研究だ。

言語モデルどうしをパープレキシティで比べるとき

Hugging Face のドキュメントによると、トークンへの分け方はパープレキシティに直接響くので、違うモデルを比べるときは必ず考えに入れる必要がある。BERT のような、隠した語を当てるモデルでは、パープレキシティはうまく定義できない。

注意点と限界

損失の値は同じ分類器と同じデータで測ったときだけ意味を持つ。CS231n のノートは、1つの例で SVM の損失が1.58、ソフトマックスの損失が1.04になる図を示し、この2つの数は比べられないと書いている。

損失が低いことと、仕事に役立つことは別だ。TRAIL の Scaling Laws の解説は、論文の指標が主に次の語の予測の損失で、回答の正しさや安全性を直接測っていないと書いている。Google の用語集も、正則化を強めると学習用の損失はふつう上がるが、目標は学習用の損失を下げることではなく、実際の例でよく予測することだとしている。

Google の講座は、ロジスティック回帰では正則化がとても重要だと書いている。特徴が多いと、正則化なしでは損失が0に向かって下がり続けるからだ。

よくある質問

損失関数とコスト関数は同じものか

同じものを指して使われることがある。CS231n のノートは損失関数をコスト関数や目的関数と呼ぶこともあると書いている。Google の用語集は目的関数を、モデルが最適にしようとする式や指標とし、正解率のように最大にする場合もあるとしている。

回帰と分類で損失関数が違うのはなぜか

予測するものが違うからだ。数を予測する回帰では、予測とラベルの差を2乗した二乗誤差がよく使われる。Google の講座は、確率を予測するロジスティック回帰の出力の変わり方が一定でないことを、二乗誤差ではなく対数損失を使う理由に挙げている。

パープレキシティと交差エントロピーはどう関係するのか

パープレキシティは交差エントロピーを指数にした値だ。Hugging Face のドキュメントはトークンごとの負の対数尤度の平均を指数にしたものと定義している。Google の用語集も交差エントロピーとの関係を式で示している。

学習用の損失は低いほどよいのか

低ければよいとは限らない。Google の用語集は、学習の目標は学習用の損失を下げることではなく、実際の例でよく予測することだとしている。検証用の損失が学習用の損失を大きく上回れば、過学習のしるしだ。

関連する用語

出典

公開
執筆
TRAIL編集部(編集方針)