ニューラルネットワークを理解する #5 「学習の指標である損失関数」

 今回は損失関数についてです。

ニューラルネットワークの理解に必要な4つの要素の内の3つ目です。

  1. パーセプトロン(人口ニューロン) ✅
  2. 活性化関数 
  3. 損失関数 ← こいつ
  4. 勾配降下法

 

損失関数とは何か

前回の最後に損失関数は学習の際の指標になるという話をしました。
具体的にはモデルの性能の悪さを表す指標です。
なので学習の目的はこの損失関数の値をなるだけ小さくすることになります。

代表的な損失関数を見ていこう!

2乗和誤差

正解と予測の差を2乗したものの総和。
特徴としては
  • 必ず正の値になる(2乗してるからね)
  • 差が大きいほど結果も大きくなる(これも2乗してるからね)



実際に計算してみましょう。
  • 正解ラベル=[0, 0, 1]
  • 予測=[0.1, 0.3, 0.6]
E=((0-0.1)^2 + (0-0.3)^2 + (1-0.6)^2) * 0.5 = 0.13


交差エントロピー誤差

正解ラベルに予測の自然対数をかけたものの総和。
この後に解説する勾配法と相性が良いので良く使用される。
気になる方はコチラを見てみてください。

参考:https://medium.com/@kawashimaken2015/%E4%B8%80%E7%95%AA%E5%88%86%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%A9%E3%83%AB%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%AE%E8%A7%A3%E8%AA%AC-d748ddeada34

これも実際に計算してみましょう。
  • 正解ラベル=[0, 0, 1]
  • 予測=[0.1, 0.3, 0.6]
L=-((0*log0.1)+(0*log0.3)+(1*log0.6))=0.51

損失関数の値をどうやって改善していけばいい?

損失関数については理解できたかと思います。(まあ予測と正解の差を計算するだけだし)
ではこの値をどうやって改善していけばよいでしょう。
人の手でやろうとすれば、きりがないことが分かりますよね。(一つの重みをいじって計算してを繰り返すなんて…)
そこで出てくるのが勾配降下法というものです。(続く...)

コメント