これまで見てきた活性化関数は、主に「隠れ層」で使われる発火装置でした。
では、最後の出力層ではどうでしょうか。
たとえば、
・猫
・犬
・うさぎ
のどれかに分類したいとき。
ネットワークは最終的に、それぞれのクラスに対して「スコア」を出します。
でも、そのままでは
・2.3
・-1.2
・0.7
のような数字が並ぶだけで、「どれくらいの確率なのか」がわかりません。
そこで登場するのが、ソフトマックス関数です。
ソフトマックス関数は、複数のスコアを、合計1になる確率に変換する装置です。
つまり、
・猫:0.75
・犬:0.20
・うさぎ:0.05
のように、「どれが、どれくらい可能性が高いか」を確率として表現してくれます。
これにより、一番高いものを選ぶという判断ができるようになります。
ここで少し思い出してほしいのが、ロジスティック回帰分析。
ロジスティック回帰でも、シグモイド関数を使って、0〜1の確率を出していました。
ロジスティック回帰は、「はい/いいえ」の2択問題。だからシグモイド関数で十分でした。
でもクラスが3つ以上になると、シグモイドだけでは足りません。
そこで使われるのが、ソフトマックス関数。
ロジスティック回帰が「2クラス分類の確率出力」だとすれば、
ソフトマックスは「多クラス分類の確率出力」。
実は、多クラス版ロジスティック回帰とも言えます。
ここは、試験でもつながりを問われやすいポイントです。
ソフトマックスは、すべてのクラスに少しずつ確率を割り振ります。
完全に0か1ではありません。
だから「ソフト」。
世界は白黒だけではなく、グラデーションがあります。
ソフトマックスは、そのあいまいさを残したまま判断する装置です。
next ▶ 勾配消失問題と活性化関数の進化