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