Kerasにおける**損失関数(Loss Function)**は、モデルの予測結果と正解ラベルとの誤差を定量化する関数であり、モデルの学習において極めて重要な役割を果たします。損失関数は model.compile() 時に指定され、モデルがどのように誤差を評価し、それをもとに重みを更新するかを決定します。
以下に、Kerasでよく使われる代表的な損失関数を詳しく説明します。
1. categorical_crossentropy(カテゴリカル交差エントロピー)
categorical_crossentropy(カテゴリカル交差エントロピー)
使用場面:
-
多クラス分類(ラベルがワンホットエンコーディングされている場合)
数式:
損失 は以下のように定義されます:
-
: クラス数
-
: 正解ラベル(ワンホットベクトル)
-
: ソフトマックス出力(予測確率)
特徴:
-
出力層には
Softmax活性化関数を使うのが一般的 -
ログの性質により、大きな誤差に対してより大きなペナルティを与える
2. sparse_categorical_crossentropy(スパースカテゴリカル交差エントロピー)
sparse_categorical_crossentropy(スパースカテゴリカル交差エントロピー)
使用場面:
-
多クラス分類(ラベルが整数形式である場合)
特徴:
-
categorical_crossentropyと同様の理論に基づくが、ラベル形式が異なる -
ラベルがワンホットではなく、
[2],[0],[1]のような整数インデックスで表現されている
3. mean_squared_error(平均二乗誤差, mse)
mean_squared_error(平均二乗誤差, mse)
使用場面:
-
回帰問題
数式:
-
: 正解値
-
: 予測値
-
: サンプル数
特徴:
-
誤差の2乗を取ることで、大きな誤差に強いペナルティを与える
-
出力が連続値である問題(価格予測、気温予測など)に適している
4. mean_absolute_error(平均絶対誤差, mae)
mean_absolute_error(平均絶対誤差, mae)
使用場面:
-
回帰問題
数式:
特徴:
-
平均二乗誤差に比べて外れ値に対して寛容
-
モデルの予測が外れ値を含む場合や、ロバストな指標が必要な場合に利用
5. binary_crossentropy(バイナリ交差エントロピー)
binary_crossentropy(バイナリ交差エントロピー)
使用場面:
-
2クラス分類(出力が1つのユニットでシグモイド関数を使う)
数式:
特徴:
-
出力層に
Sigmoid活性化関数を使用 -
クラスが「0」または「1」の2値分類に最適
補足: Kerasにおける損失関数の指定方法
まとめ表
| 損失関数名 | 主な用途 | 出力層の活性化関数 | ラベル形式 |
|---|---|---|---|
categorical_crossentropy |
多クラス分類 | Softmax | ワンホット |
sparse_categorical_crossentropy |
多クラス分類 | Softmax | 整数 |
binary_crossentropy |
2クラス分類 | Sigmoid | 0 or 1 |
mean_squared_error |
回帰 | なし(または線形) | 実数値 |
mean_absolute_error |
回帰 | なし(または線形) | 実数値 |
必要に応じて、ユーザー定義の損失関数もloss引数に関数として渡すことで使用可能です。
生成日:2025/05/22