対象読者
今回は損失関数についてやっていきます。対象者はAI構築を目標としている方です。そのため理論の深堀はしません。なぜなら、深いところまで理解しようとすると、いつまでも実践に進めないからです。
そのためここでは、実践に必要最低限の知識のみを解説し、パパっと座学を終わらせてすぐに実践をやれる環境を提供しています。
座学をおえたら、下の記事から実践も試してみてください。
カテゴリカルクロスエントロピー
カテゴリカルクロスエントロピーのポイント
- 多クラス交差エントロピー損失のこと
- 名前通り、多クラス分類問題に使用される
- 機械学習における損失関数の一つ
- 分類問題でモデルの出力と実際のクラスの間の距離を測るために使用
- 出力される確率分布と実際のクラスの間の差異を測る
- 予測が正しいクラスに近いほど→損失が低くなる
- 機械学習などのモデルの学習において、分類問題で使う
- ソフトマックス関数と組み合わせて使われる
- 損失が低いほど→モデルの予測が正確
- 微分可能な関数であり、勾配降下法などの最適化アルゴリズムで使用できます。
- クラスの数が多い場合には、計算コストが増加する
おまけ:カテゴリカルクロスエントロピーの数式
$$\text{Categorical Cross-Entropy Loss} = -\sum_{i} y_i \log(p_i)$$
式の解釈:yiは実際のクラス i のラベル(正解ラベル)であり、piはモデルがクラス i に割り当てた確率です。
二項交差エントロピー損失(Binary Cross-Entropy Loss)
バリナリクロスエントロピーのポイント
- 2つのクラスの分類問題に適した損失関数
- バイナリクロスエントロピーの呼び名で知られる
- 2値分類に適する
- モデルが出力した確率分布と実際のクラスの間の距離を測ります。
- 損失が低いほど→モデルの予測が正確
- モデルの出力が0から1の確率であることを前提としています。
- 微分可能な関数であり、勾配降下法などの最適化アルゴリズムで使用できます
- サンプル数が少ない場合やクラス間の分布が不均衡な場合、過学習のリスクがあります。
おまけ:バイナリクロスエントロピーの数式
$$\text{Binary Cross-Entropy Loss} = -\frac{1}{N} \sum_{i=1}^{N} [y_i \log(p_i) + (1 – y_i) \log(1 – p_i)]$$
式の解釈:ここで、N はサンプルの数、yi は実際のクラスラベル(0または1)、pi はモデルがクラス1に属する確率を表します。
平均二乗誤差(Mean Squared Error, MSE)
平均二乗誤差(Mean Squared Error, MSE)のポイント
- 平均二乗誤差(Mean Squared Error, MSE)は、損失関数の一つ
- 平均二乗誤差は、モデルの予測値と実際の値との差の二乗の平均を計算する
- 回帰問題に使用
- 損失が低いほど→モデルの予測が正確
- 外れ値に敏感で大きな損失を与える傾向がある
外れ値:ハズレ値は異常値とも呼ばれ、データのパターンや傾向から大きく外れている値を持つデータポイントのこと - 外れ値の影響を軽減するためには→ロバスト性が必要
ロバスト:外れ値やノイズの影響を受けにくいこと - 微分可能な関数であり、勾配降下法などの最適化アルゴリズムで使用できます。
- 分類問題とは異なり、クラスの不均衡などの課題に対処する機能がない
おまけ:平均二乗誤差の数式
$$\text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_i – \hat{y}_i)^2$$
式の解釈:ここで、N はサンプルの数、yi は実際の値、y^i はモデルの予測値を表します。
まとめ(それぞれの使い分け)
- カテゴリカルクロスエントロピー:
- 多クラス分類問題に使用されます。
- 出力が複数のクラスの確率分布で表される場合に適しています。
- クラスの数が2つ以上の場合に適用されます。
- 二項交差エントロピー損失:
- 2クラス分類問題に使用されます。
- 出力が2つのクラスの確率で表される場合に適しています。
- クラスの数が2つの場合に適用されます。
- 平均二乗誤差:
- 回帰問題に使用されます。
- 出力が連続値であり、目標値との差を考慮する必要がある場合に適しています。
- 出力が確率分布ではなく、実数値である場合に適用されます。
おわりに
今回は、機械学習・ニューラルネットワークを構築する際に覚えておくべき損失関数を紹介しました。大体この3つが使われます。
では、座学はここまでにして実践をどんどん積んでいきましょう!
p.s.もし、やるべきことが決まっていない方はこちら↓をご自由に使ってみてください