損失関数Loss Function

答えが正解からどれだけ外れたかを表す一つの数値

ポイント
  • 損失関数は、モデルが出した答えが正解からどれだけ外れているかを一つの数値にまとめる規則です。
  • 学習とは、この数値を減らす作業です。どこをどれだけ直すかは、すべてこの数値から決まります。
  • どんなズレにどれだけ大きな罰点を与えるかが結果を決めます。罰点の付け方を変えると、まったく違うモデルになります。
  • 答えが数値か名札かによって、使う規則が変わります。ズレの測り方そのものが違うからです。
  • **損失が低いからといって、良い結果とは限りません。**測りたいものと実際に測れるものの間には、いつも隙間があります。
目次

1たとえで理解する

パン屋が新しいオーブンを入れると、最初から思うようには焼けません。そこで見本のパンの横に今日焼いたパンを並べ、採点表を付けます。表面の焼き色が見本よりどれだけ濃いか、中がどれだけ生焼けか、膨らみがどれだけ足りないかを項目ごとに罰点で書き込み、最後に全部足します。そうして出た一つの数字が、今日の焼き上がりの成績です。12点なら、昨日の18点より良くなったことになります。次の一枚は、この数字を減らす方向に調整します。ここで本当に大事なのは、採点表をどう作るかです。焦げにばかり大きな罰点を付けておくと、生焼けのパンが続々と出てきます。損失関数は、この採点表です。

2くわしく

ズレを一つの数値にまとめる

モデルが答えを一つ出すと、正解と見比べます。このとき出てくる差は、いくつもの形を取り得ます。値が高く出たのか低く出たのか、どの項目でズレたのかはさまざまです。損失関数は、こうしたズレをすべて決まった規則でまとめ、一つの数値にします。

数値が一つでなければならない理由があります。二枚を見比べてどちらが良いか決めるには、比べられる値が一つしかない必要があるからです。焼き色はこちらが良く、中身はあちらが良い状態では、次に何を変えるべきか決められません。

データ一つひとつの罰点を、まとまり全体で平均して使うのも同じ理由です。今日焼いた一枚一枚ではなく全体の成績が一つ出て初めて、次の一枚を決められます。

罰点の付け方が結果を決める

同じパンでも、採点表が違えば点数が変わります。ズレの大きさをそのまま足す表もあれば、ズレの大きさを掛けて足す表もあります。掛けて足すと、少しのズレはほとんど数えられず、大きなズレだけが目立ちます。真っ黒に焦げたパン一つが、他の九つを覆い隠してしまうのです。

だから表を選ぶことは好みではなく方針です。大きなズレを何としても防ぎたい場面なら、掛けて足す表が向いています。たまに出る風変わりなデータに振り回されたくないなら、そのまま足す表のほうが良いでしょう。

パン屋で言えば、お客さんが一番嫌がるものによって表が変わります。焦げに強く怒る街なら焦げに罰点を集め、するとオーブンは少し生焼け寄りに傾きます。

測ることと減らすことは別の作業

損失関数の仕事は測るところで終わります。12点だと教えてくれるだけで、温度をどちらへ回すべきかまでは言いません。どの方向へどれだけ動かすかを決めるのは、次の段階の役目です。

そのため採点表には一つ条件が付きます。少し変えたら点数も少し変わる必要があるのです。温度を1度上げたら点数がぷつりと切り替わるようでは、どちらへ回すべきか分かりません。損失関数をなめらかな規則で組む理由がここにあります。正解の個数を数える方式は人が見るには分かりやすくても、少し変えても個数が変わらないため学習には使えません。

何を当てるかで表が変わる

答えが数値なら、差をそのまま測ります。膨らみが何ミリ足りなかったかという具合です。回帰で使う表がこちらです。

答えが名札なら、方式が変わります。当たったか外れたかではなく、どれだけ確信していたかを見ます。正解の枠にどれだけ重みを置いたかを測り、確信を持って外したときに一番大きな罰点を与えます。あやふやに外すより、自信満々で外すほうが痛い扱いになるわけです。こうして初めて、モデルは当てることだけでなく確信の度合いまで整えるようになります。

損失が低いことと結果が良いことは別

採点表は人が作った代役です。本当に望んでいるのはお客さんがおいしいと言うパンなのに、測れるのは焼き色と膨らみだけです。だから点数は良いのに味はいまひとつ、ということが起こります。

モデルも同じです。損失が目に見えて下がったのに、実際に使うと変な場合がよくあります。練習データの罰点だけを減らそうとして初めて見るデータで崩れたり、採点表に入っていない性質をまるごと無視したりします。だから学習に使う損失と、人が見る評価指標を別に用意して、両方を見ます。

3もう少し正確に

損失関数は、モデルの出力と目標値を受け取って一つの実数を返す関数です。学習は、この値をパラメータについて最小化する問題に置き換わり、値を減らす方向は勾配から出てきます。そのため損失関数は、たいてい滑らかに変化する形で組まれます。

たとえがずれる点もあります。パン屋の採点表は人が目で見て付けますが、損失はデータ一件ごとに自動で計算され、数十万件がまとめて平均されます。またパンは焼き上がってから採点しますが、学習では途中の値についてもどちら向きに動かすべきかが同時に計算されます。さらに実際の学習では、採点表に別の項目を付け足して値が大きくなりすぎないよう抑えることもあります。この付け足しは正解とのズレとは関係ありませんが、結果を大きく左右します。だから学習に使う損失は、正解との距離にいくつかの方針が重なった値として捉えるほうが正確です。

4やってみる

5よくある誤解

  • 損失は間違えた個数を数えるものだと思われがちですが、実際にはどれだけズレたかを測ります。同じ数だけ間違えても、ズレの大きさによって値は変わります。

  • 損失が低ければ良いモデルだと考えられがちですが、実際には練習データだけで下がっている場合が多く、初めて見るデータで別に測る必要があります。

  • 損失関数には決まった一つの形があると思われがちですが、実際には何を重視するかによって人が選ぶ設計項目です。

7ひとこと要約

つまり損失関数は答えが正解からどれだけ外れたかを一つの数値にまとめる採点表で、この表をどう作るかがモデルの得意なことを決めます。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02