背景
ニューラルネットワークでの分類問題にクロスエントロピー、シグモイド関数、ソフトマックス関数がよく使われている。
そして、計算式があふれ、目を背け、結果だけみて、修正できない。
こんな私ですが、ニューラルネットワークでの分類問題にクロスエントロピー、シグモイド関数、ソフトマックス関数が使われがちかを数式無しで説明してみます。
ソフトマックス関数は確率分布表現にベスト
ソフトマックス関数の数式は気にせず、その特徴は以下の2つ
- ある数値群(ベクトル)を
ソフトマックス関数に通すと、各要素の和がぴったり1 - ある数値群(ベクトル)を
ソフトマックス関数に通すと、全要素が0から1の間にある
つまり、最後の出力の直前の活性化関数にソフトマックス関数を使えば、分類問題の答えとしてカテゴリAが50%、Bが20%・・・みたいな感じで理想的な結果を出力できるのです。
クロスエントロピーとシグモイド関数の相性抜群
ニューラルネットワークでの分類問題において、目的関数は正直なんだっていいのです。
でもなぜ平均二乗誤差でなく、クロスエントロピー誤差なのか?
当然、目的関数は微分しないといけません。
驚くべきは、クロスエントロピーの微分とシグモイド関数の微分を掛け算するとすごくきれいな数式になるのです。
結論
これらの話を結論付けると、
-
ニューラルネットワーク最後の活性化関数はソフトマックス関数 -
途中の活性化関数はシグモイド関数 -
目的関数はクロスエントロピー誤差
とするのが、計算コストや求める答えにとって理想的ということがわかります。