この記事では,Softmax関数とSigmoid関数の関係性についてお伝えしていきます。2クラス分類ではSigmoid,多クラス分類ではSoftmaxを利用するのが通常ではありますが,これらの関数にはどのような関係があるのでしょうか。
実はSigmoid関数ってSoftmax関数が○○のときに相当する概念なんだよ!
と堂々とお話し(自慢)できることを目標に執筆していきます。分かりやすさを重視しているため,正確性に欠ける表現もありますが大目にみてください。
結論
まずは結論からです。
Sigmoid関数は,Softmax関数においてクラス数が
は!?
となると思います。今から説明していきます。
Sigmoid関数
Sigmoid関数の定義は以下の通りです。

【Sigmoid関数】
Softmax関数
Softmax関数の定義は以下の通りです。

【Softmax関数】
両者の等価性
結論でもお伝えした通り,Sigmoid関数はSoftmax関数の特別な場合に相当します。逆に言えば,Sigmoidを拡張した関数がSoftmaxということにもなります。実際に数式を追って確認していきましょう。
天下り的ですが,クラス数を
ここでは,1つめのクラスを
分かりますでしょうか。シグモイドの出力とソフトマックスの出力がしっかりと対応しています。つまり,Sigomidの出力は二値変数のラベルでしたので,Softmaxにおけるクラスを
噛み砕いた説明
ある変数
これは,
この現象が先ほどの数式でも起こっています。Softmax関数において,クラス数を2とし,
さて,先ほどの数式の結果に戻ってみましょう。整理すると,以下のようなことが分かっています。
となると言っているのです。見事,Softmax関数の振る舞いが,Sigmoid関数の振る舞いと一致していることが分かりました。