[ディープラーニング]損失関数の使い分け

AI

どうもー、ちょげです。

ディープラーニングでは、精度の指標として損失関数というのを使っています。

主な損失関数には、「交差エントロピー誤差」や「二乗和誤差」の2つがあります。

この2つはどのように使い分けらているのでしょうか。

スポンサーリンク

出力層の活性化関数で決まる

どちらの損失関数を用いるのかは出力層の活性化関数で決まります。

出力層の活性化関数は、ディープラーニングで取り組む問題が分類問題の場合は「ソフトマックス関数」、回帰問題の場合は「恒等関数」を使います。

分類問題と回帰問題

分類問題とは、どのグループに属するかを分類する問題です。
例としては、画像が男性なのか女性なのか分類するようなものです

回帰問題は、具体的な数値を予測する問題です。
例としては、株価のようなものです。

そして、「ソフトマックス関数」を使うなら「交差エントロピー誤差」を使います。

というのも、「交差エントロピー誤差」は、「ソフトマックス関数」を用いたニューラルネットワークで逆伝播した際に、(出力値ー正解値)が出力されるように設計されているからです。

(出力値ー正解値)というのは、パッと見てわかる通り誤差です。

「交差エントロピー誤差」を「ソフトマックス関数」が活性化関数の時に使えば、単純な誤差を表わす式が出るようになっているのです。

出力層に「恒等関数」を用いる場合は、「二乗和誤差」を使います。

理由は、「交差エントロピー誤差」と同じです。

スポンサーリンク

まとめ

損失関数の使い分け方について解説しました。

  • 出力層の活性化関数によって使い分ける
  • 「ソフトマックス関数」には「交差エントロピー誤差」
  • 「恒等関数」には「二乗和誤差」
  • 損失関数は逆伝播の出力が単純な「誤差」の式になるように設計されている

読んでいただきありがとうございました。

少しでも参考になれば嬉しいです。

スポンサーリンク

参考にした本

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装
ディープラーニングの本格的な入門書。外部のライブラリに頼らずに、Python 3によってゼロからディープラーニングを作ることで、ディープラーニングの原理を楽しく学びます。 ディープラーニングやニューラルネットワークの基礎だけでなく、誤差逆伝播法や畳み込みニューラルネットワークなども実装レベルで理解できます。 ハイパーパ...

コメント

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