損失関数(クロスエントロピー、平均二乗誤差など)

機械学習、とくにニューラルネットワークにおいて「損失関数(Loss Function)」は、モデルの予測と実際の正解(教師データ)との誤差を定量的に測るための関数です。
損失関数は、モデルの学習において最小化すべき指標であり、誤差が小さいほど性能が良いとされます。

代表的な損失関数として以下の2つが広く使われています:


1. 平均二乗誤差(Mean Squared Error, MSE)

用途

主に回帰問題(連続値を予測する問題)で使用されます。

定義

予測値 $\hat{y}$ と正解値 $y$ の差を2乗して平均を取ったものです。

MSE=1ni=1n(yiy^i)2\mathrm{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i – \hat{y}_i)^2

  • $n$ はデータの数

  • $y_i$ は正解値

  • $\hat{y}_i$ はモデルの出力

特徴

  • 誤差の2乗を使うため、大きな誤差に対してより厳しくペナルティを与える

  • 微分が簡単で、勾配降下法と相性がよい。

  • ノイズのある連続データに対しては非常に一般的。


2. クロスエントロピー誤差(Cross Entropy Loss)

用途

主に分類問題(クラスラベルを予測する問題)で使用されます。特にロジスティック回帰ソフトマックス関数と組み合わせた多クラス分類で使用されます。

定義(2クラス分類の場合)

CE=(ylog(y^)+(1y)log(1y^))\mathrm{CE} = – \left( y \log(\hat{y}) + (1 – y) \log(1 – \hat{y}) \right)

定義(多クラス分類の場合)

CE=i=1Cyilog(y^i)\mathrm{CE} = – \sum_{i=1}^{C} y_i \log(\hat{y}_i)

  • $C$ はクラス数

  • $y_i$ はone-hotエンコードされた正解ラベル(1つだけ1で、他は0)

  • $\hat{y}_i$ はソフトマックス関数などを通じた予測確率

特徴

  • 確率的な出力に適しており、予測確率と真の分布の距離を測る指標

  • 予測が真のラベルから外れるほど損失が大きくなる。

  • 数学的にはエントロピー(情報理論)に基づいている


比較と使い分け

損失関数 主な用途 特徴
平均二乗誤差(MSE) 回帰問題 誤差の大きさに敏感、実数予測に向く
クロスエントロピー 分類問題 確率的出力との相性が良く、正しいクラスから遠ざかると損失が急増する

補足:損失関数とコスト関数の違い

  • **損失関数(loss function)**は1つのデータ点に対する誤差を定義。

  • **コスト関数(cost function)**は全体のデータ(全サンプル)の損失を平均してモデル全体の性能を表す。

生成日:2025/06/01