1. ホーム
  2. math

[解決済み] 標準的な正規化ではなく、なぜソフトマックスを使用するのですか?

2022-04-23 20:45:19

質問

ニューラルネットワークの出力層では、ソフトマックス関数を用いて確率分布を近似するのが一般的である。

これは指数の関係で計算が高くなります。単純にすべての出力が正になるようにZ変換を行い、すべての出力をすべての出力の合計で割るだけで正規化してはどうでしょうか?

どのように解くのですか?

標準的な正規化と比較して、ソフトマックスの素晴らしい特性が1つあります。

ニューラルネットの低い刺激(ぼやけた画像を想像してください)にはむしろ均一な分布で反応し、高い刺激(すなわち大きな数、鮮明な画像を想像してください)には0と1に近い確率で反応します。

標準的な正規化では、割合が同じであれば気にしない。

ソフトマックスの入力が10倍になるとどうなるか見てみましょう。つまり、あなたのニューラルネットは鮮明な画像を得て、多くの神経細胞が活性化されました

>>> softmax([1,2])              # blurry image of a ferret
[0.26894142,      0.73105858])  #     it is a cat perhaps !?
>>> softmax([10,20])            # crisp image of a cat
[0.0000453978687, 0.999954602]) #     it is definitely a CAT !

そして、標準的な正規化との比較

>>> std_norm([1,2])                      # blurry image of a ferret
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?
>>> std_norm([10,20])                    # crisp image of a cat
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?