KATUBLO
2018年12月08日

【DeepLearning】2乗和誤差と交差エントロピーの数式が表す意味を体感してみた。

何をするのか?

DeepLearningの学習で用いられる、損失関数の数式が表す意味を解説する。

 

損失関数とはなに?

ニューラルネットのパラメーターを決定する際に用いられる指標。損失関数の値が大きければ、ニューラルネットの性能が悪いということが言える。つまりこの損失関数の値を小さくすることでニューラルネットの性能をあげることができる。また損失関数の種類は数多く存在する。

 

 

 

2乗和誤差

$$
E = \frac { 1 } { 2 } \sum _ { k } \left( y _ { k } – t _ { k } \right) ^ { 2 }
$$

 

[math]y_k[/math]:ニューラルネットの出力

[math]t_k[/math]:教習データ(正解のデータ)

 

 

代表的な誤差関数のうちの1つである。

実際にサンプルのニューラルネットの出力と教習データを用いて、pythonで二乗和誤差の出力を見てみよう。

 

 

教習データの正解は「3」に対してのニューラルネットの出力が0.6である為、ニューラルネットの性能はそこまで悪くないと言え、二乗和誤差の出力も小さい値になっていることがわかる。

 

つぎは教習データの正解は「3」に対してのニューラルネットの出力が0.3であった場合の二乗和誤差の出力をみてみる。

 

 

二乗和誤差の出力は先ほどと比べて大きくなっている。つまり、ニューラルネットの性能が悪いといえ、実際精度が悪いニューラルネットの出力である為、一致している。

 

交差エントロピー誤差

$$
E = – \sum _ { k  }  t _ { k } \log y _ { k }
$$

 

[math]y_k[/math]:ニューラルネットの出力

[math]t_k[/math]:教習データ(正解のデータ)

 

先ほどと同様な検証を行う

 

 

 

二乗和誤差と同様、ニューラルネットの性能が低下すると交差エントロピー誤差関数の出力が大きくなっていることがわかる。また二乗和誤差と比べると、各出力値が大きい。

 

 

 

最後まで読んで頂き
ありがとうございました。
SNS等でのシェアが頂ければ幸いです。

プロフィール

@KATUO

現在都内私立大学に通う大学3年生。大学では電気電子工学を専攻。大学2年の夏頃に、プログラマーの長期インターン募集の広告が目に止まり、独学でプログラミングの学習をスタート。この時期からプログラミングにどハマりし、現在までに「AIスタートアップ」「Webマーケティング会社」でエンジニアとしての業務に没頭してきた。

過去の投稿