損失関数とは?具体例での計算つきで分かりやすく解説!!

スポンサーリンク
損失関数とは具体例での計算つきで分かりやすく解説ディープラーニング
この記事を読んで分かること
  • 損失関数とは何か
  • よく使われる損失関数とは
  • 損失関数のpythonでの実装方法
  • 損失関数とコスト関数の違い

損失関数とは

損失関数とは、

機械学習モデルがどれくらい正しく予測できているか評価する指標

です。

 

「予測値」と「正解値」のズレを表現した指標とも言えます。

損失関数の概要

 

正解を完璧に予測できるようなモデルの場合は損失関数は0となり、予測の精度が悪いモデルほど高い値になるように指標を作成することが多いです。

ディープラーニング(ニューラルネットワーク)では学習を進める際に、損失関数を最小化させるようにハイパーパラメータの値を探索します。

 

損失関数は任意の関数を使うことができますが、一般的にどのような関数が使われるのか見ていきましょう。

 

よく使われる損失関数

機械学習では次の損失関数がよく使われます。

よく使われる損失関数
  • 2乗和誤差
  • 交差エントロピー(CE)

 

2乗和誤差

2乗和誤差では、予測値yと正解値tの差の2乗を合計して2で割ったものです。

数式で表すと次のように表されます。

$$E=\frac{1}{2}\sum _{k}\left( y_{k}-t_{k}\right) ^{2}$$

 

この損失関数は線形回帰問題でよく使われます。

次のようなデータを例に、2乗和誤差を計算してみます。

$$y=\left[1.1,  2.0,  2.8\right]$$

$$t=\left[ 1,  2,  3 \right]$$

定義式に代入すると、

$$E=\frac{1}{2}\left\{\left( 1.1-1\right)^{2}+\left( 2.0-2\right)^{2}+\left( 2.8-3\right)^{2}\right\}=0.025$$

となります。

 

pythonのコードで実装すると以下のようになります。

def sum_squared_error(y, t):
    return 0.5 * np.sum((y-t)**2)

y = [1.1, 2.0, 2.8]
t = [1, 2, 3]

sum_squared_error(np.array(y), np.array(t))

 

交差エントロピー

交差エントロピーでは、予測値yに正解値tの対数を掛けたものを合計して-1を掛けたものです。

数式で表すと次のように表されます。

$$E=-\sum _{k}t_{k}\log y_{k}$$

 

交差エントロピーについてこちらの記事で詳しく解説しています。

【情報理論】交差エントロピー(クロスエントロピー)とは?分かりやすく解説
この記事を読んで分かること 交差エントロピー(クロスエントロピー)とは何か 交差エントロピーの実装例(python) 交差エントロピー(クロスエントロピー)とは? 交差エントロピーとは、 2...

 

損失関数とコスト関数の違い

厳密な定義があるわけではないのですが、

コスト関数は、損失関数に正則化を追加したものという意味で使われます。

損失関数とコスト関数を同じ意味として使っている人もいます。

どういう意味で使っているかは、文脈から意味を判断するしかありません。

 

まとめ

損失関数とは、機械学習モデルがどれくらい正しく予測できているか評価する指標です。

機械学習では2乗和誤差交差エントロピーがよく使われます。

2乗和誤差は線形回帰問題で使われ、交差エントロピーは分類問題で使われます。

 

参考文献

コメント

タイトルとURLをコピーしました