【そんしつかんすう】
損失関数 とは?
最終更新:
💡 予測の誤りを、決めた計算方法で数値にする
機械学習で、予測などの結果をどのように評価するかを数式で表す関数。教師あり学習では予測と正解を比較する。関数の選び方で同じ誤差でも損失の値は変わり、学習時に小さくすることと未知のデータで良く働くことは区別する。
📌 このページのポイント
- 同じ予測と正解でも、関数が違えば値は変わる
- MSEは要素ごとの誤差の二乗を平均する
- 交差エントロピーは分類で使う損失の一例
- 訓練時の損失と、未知のデータでの評価を区別する
損失って、予測と正解の差そのもの?
計算方法によるよ。予測7.2、正解10なら差の絶対値は2.8。この1件の二乗誤差は2.8の二乗で7.84になる。同じ予測でも、絶対誤差を使うか二乗誤差を使うかで点数が変わるんだ。
MSEや交差エントロピーは何を計算する?
訓練の損失が0なら完璧?
学習に使ったデータでの値だけでは、未知のデータに対応できるかは分からないよ。0になったことだけで過学習とも断定できない。設定やモデルを選ぶ検証用データと、最後の評価に使うテスト用データを区別し、テスト結果を見ながら繰り返し調整しないようにしよう。
クラスによって間違いの扱いを変えられる?
標準の関数にも調整の仕組みがあるよ。例えばPyTorchのCrossEntropyLossは、クラスごとの係数を指定できる。必要なら独自の式も作れるけれど、まず何を大きく罰したいかを明確にしよう。クラスごとの係数だけで、全ての間違いの組み合わせの費用を自由に表せるわけではないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「損失関数」って出てきたら「予測の誤りを、決めた計算方法で数値にする」と思えばだいたいOK!
📖 おまけ:英語の意味
「Loss Function」 = 損失を計算する関数
💬 lossは損失。コスト関数や目的関数と同じ意味で使う資料もあるけれど、データ全体での集計や追加の項まで含める場合もある。式が何を計算しているか確認しよう。