標準の正規化ではなく、なぜソフトマックスを使用するのですか?


159

ニューラルネットワークの出力層では、softmax関数を使用して確率分布を概算するのが一般的です。

ここに画像の説明を入力してください

これは、指数のために計算にコストがかかります。すべての出力が正になるようにZ変換を実行し、すべての出力をすべての出力の合計で除算するだけで正規化しませんか?


8
この関数は、指数のために計算コストがかかりませんが、すべてのqjを計算する必要があるためです。べき乗は、必要な計算の総量に比べて安価です。
Seppo Enarvi 2016

どのようなZ変換について話しているのですか?用語の信号処理の意味はここに適合せず、入力が平均を下回っている場合、値をZスコアで置き換えると負の出力が生成されます。
David Cian

回答:


166

標準の正規化と比較して、Softmaxには1つの優れた属性があります。

それは、ニューラルネットの低い刺激(ぼやけた画像と考える)にかなり均一な分布で反応し、0と1に近い確率で高い刺激(つまり、多数、鮮明な画像と考える)に反応します。

標準の正規化は、比率が同じである限り問題ありません。

soft maxの入力が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 !?

16
この回答は影響を最もよく示しています理論的根拠に焦点を当てるのではなく、べき乗を使用をます。(素晴らしいです)。それはトップアンサーの始めに含まれるべきです。べき乗法が値をどのように、そしてどの程度まで広げるかを見た後、一番上の答えは、なぜそれが必要なのかを説明するのに役立ちます。
Ian Danforth 2017

@IanDanforth私はあなたに同意します。開始する必要があります。
Hitesh

11
なぜこの回答が最も投票されたのかわかりません。[1,2]がぼやけた画像に対応し、[10,20]がより鮮明な画像に対応するのはなぜですか?これは単にスケーリングの問題であり、どちらの場合も基本的に同じです。どちらかと言えば、これは標準の正規化をサポートしているように見えるはずです。
user118967

値がすでに[0、1]であることが保証されている場合、単純に合計で除算するのではなく、softmaxを使用する利点はまだありますか?
Martin Thoma

58

私は何ヶ月もこの質問をしてきました。ソフトマックスを出力関数として巧妙に推測し、ソフトマックスへの入力を対数確率として解釈したようです。あなたが言ったように、なぜすべての出力をそれらの合計で割ることによって単に正規化しないのですか?その答えは、セクション6.2.2のGoodfellow、Bengio、Courville(2016)によるDeep Learningブックにあります。

最後の非表示レイヤーがアクティベーションとしてzを与えるとしましょう。次に、softmaxは次のように定義されます。

非常に短い説明

関数softmaxのexpは、クロスエントロピー損失のログをほぼキャンセルし、損失がz_iでほぼ線形になるようにします。これにより、モデルが間違っている場合、ほぼ一定の勾配が得られ、モデル自体をすばやく修正できます。したがって、誤った飽和softmaxによって勾配が消失することはありません。

簡単な説明

ニューラルネットワークをトレーニングする最も一般的な方法は、最尤法です。パラメータシータは、(サイズmの)トレーニングデータの可能性を最大化する方法で推定します。トレーニングデータセット全体の尤度は各サンプルの尤度の積であるため、データセットの対数尤度、したがってkでインデックス付けされた各サンプルの対数尤度の合計を最大化する方が簡単です。

ここで、zが既に与えられているここでのソフトマックスのみに焦点を当てるので、

iはk番目のサンプルの正しいクラスです。これで、サンプルの対数尤度を計算するために、softmaxの対数をとると、次のようになることがわかります。

、zの大きな差の場合、おおよそ

まず、線形成分z_iがここに表示されます。次に、2つの場合についてmax(z)の動作を調べることができます。

  1. モデルが正しい場合、max(z)はz_iになります。したがって、対数尤度はゼロ(つまり、1の尤度)を示し、z_iとzの他のエントリとの差が大きくなります。
  2. モデルが正しくない場合、max(z)は他のz_j> z_iになります。したがって、z_iを追加しても-z_jは完全にはキャンセルされず、対数尤度はおおよそ(z_i-z_j)になります。これは、対数尤度を増やすために何をすべきかをモデルに明確に伝えます。z_iを増やし、z_jを減らします。

全体的な対数尤度は、モデルが正しくないサンプルによって支配されることがわかります。また、モデルが本当に正しくなくても、ソフトマックスは飽和しますが、損失関数は飽和しません。これはz_jでほぼ線形です。つまり、ほぼ一定の勾配を持っています。これにより、モデルは自分自身をすばやく修正できます。これは、たとえば、平均二乗誤差の場合とは異なることに注意してください。

長い説明

それでもsoftmaxが任意の選択のように思える場合は、ロジスティック回帰でシグモイドを使用することの正当性を確認できます。

なぜ他のものではなくシグモイド関数なのか?

ソフトマックスは、同様に正当化されるマルチクラス問題のシグモイドの一般化です。


こんにちは、この説明と、どのようにして概算できたのですか?「zの大きな違いの場合、おおよその概算」
ロンドンの男

45

ここでの説明が非常に良いことがわかりました。CS231n:視覚認識のためのたたみ込みニューラルネットワーク。

表面上、softmaxアルゴリズムは単純な非線形(指数関数でデータを拡散しています)正規化のようです。しかし、それだけではありません。

具体的には、いくつかの異なるビューがあります(上記と同じリンク):

  1. 情報理論-情報理論の観点から、softmax関数は、予測と真理の間のクロスエントロピーを最小化しようとするものと見なすことができます。

  2. 確率論的ビュー-この観点から、実際には対数確率を調べているため、累乗を実行すると、生の確率が得られます。この場合、softmax方程式はMLE(Maximum Likelihood Estimate)を見つけます。

要約すると、softmax方程式は任意である可能性があるように見えますが、そうではありません。これは実際には、予測と真理の間のクロスエントロピー/負の可能性を最小化するために分類を正規化するかなり原則的な方法です。


2
以前のコメントに追加するために、softmax関数の導関数は、
softmax

11
クロスエントロピー損失を使用する理由はわかりますが、それはソフトマックスとどのように関連していますか?「softmax関数は、予測と真理の間のクロスエントロピーを最小化しようとするものと見なすことができます」とあなたは言った。私は標準/線形正規化を使用するとしますが、それでもクロスエントロピー損失を使用します。次に、クロスエントロピーを最小限に抑えることも試みます。では、数値の利点を除いて、ソフトマックスはどのようにクロスエントロピーにリンクされているのでしょうか?
キリアン・バツナー2017年

18
確率論的見方については、ログ確率を見る動機は何ですか?推論は「xを対数確率として解釈するため、ソフトマックスでe ^ xを使用する」のように思われます。言うことができるのと同じ理由で、xをlog-log-log-probabilitiesとして解釈するため(もちろんここでは誇張しています)、softmaxでe ^ e ^ e ^ xを使用します。softmaxの数値的なメリットはありますが、それを使用する理論的な動機は何ですか?
キリアン・バツナー2017年

5
@KilianBatznerニューロンの出力が対数確率である場合、多くのニューロンの出力の合計はそれらの確率の乗算です。これは、確率の合計よりも一般的に便利です。
alltom '27 / 07/27

1
@KilianBatzner機能が(クラスごとのクラスター上の)異なるガウスクラスターからのものである場合、完全な分類子(ロジスティック回帰)を導出できます。追加の条件がいくつかありますが、基本的に、ガウシアンクラスターを分離することを前提として、softmaxとロジットを正当化/導出できます。
最大

16

q_iの値は対数尤度を表します。確率値を回復するには、それらを累乗する必要があります。

統計アルゴリズムが対数尤度損失関数を使用することが多い理由の1つは、それらが数値的に安定していることです。確率の積は、非常に小さな浮動小数点数で表される場合があります。対数尤度損失関数を使用すると、確率の積が合計になります。

別の理由は、多変量ガウス分布から抽出されると想定される確率変数の推定量を導出するときに、対数尤度が自然に発生することです。たとえば、最尤(ML)推定量と最小二乗法への接続方法を参照してください。

補足として、この質問はCS理論または計算科学スタック交換に適しています。


12
q_iは対数尤度を暗黙的に表しません。明示的に想定しているのは、ソフトマックスを使用する場合のみです。
トム・

6

私たちはマルチクラス分類問題を見ています。つまり、予測された変数yは、kカテゴリの1つを取ることができますk > 2。確率論では、これは通常、多項分布によってモデル化されます。多項分布は、指数ファミリー分布のメンバーです。P(k=?|x)指数ファミリー分布の特性を使用して確率を再構築できます。これは、ソフトマックスの式と一致します。

問題が多項式以外の別の分布によってモデル化できると考える場合、softmaxとは異なる結論に達する可能性があります。

詳細と正式な導出については、CS229講義ノート(9.3 Softmax Regression)を参照してください。

さらに、softmaxに対して通常実行される便利なトリックは次のとおりです。softmax(x)= softmax(x + c)、softmaxは入力の一定のオフセットに対して不変です。

画像の説明を入力してください


「x」と「x + c」に同じ値を返すため、アクティベーション関数としてどのように機能しますか?
Suresh Pokharel

1
厳密にsoftmaxは、活性化機能ではありません。アクティベーション関数は、要素ごとの演算です。要素ごとに非線形演算を実行して別のテンソルを生成するテンソルを与えます。しかしsoftmax、これはベクトル演算であり、正規化されたベクトルを生成します。各要素間に内部依存関係があります。
GabrielChu

5

exp(x)は常に正でゼロより大きいため、負の数とゼロによる除算を処理することが理由の1つであると私は考えています。

たとえばa = [-2, -1, 1, 2]、合計が0になる場合、softmaxを使用してゼロによる除算を回避できます。


3
通常は、最小値を減算してから、最大値/合計で除算します。あなたの場合、それは[0, 1, 3, 4]それから分割するでしょう。
ubershmekel

1
最小スコアを持つクラスは常に0の確率が割り当てられることになるという問題に@ubershmekelこの実行
アレッサンドロ・パワー

4

出力のアクティブ化が次のように与えられるように、softmax関数を変更するとします。 ここに画像の説明を入力してください

どこc正の定数です。なお、c=1標準ソフトマックス関数に対応。しかし、別の値を使用するとc、別の関数が得られますが、定性的にはソフトマックスに似ています。特に、通常のソフトマックスと同様に、出力アクティベーションが確率分布を形成することを示します。c大きくなることを許可すると仮定しc→∞ます。出力アクティベーションの制限値は何a^L_jですか?この問題を解決した後、c=1関数を最大関数の「ソフト化」バージョンと考える理由が明らかになります。これが「softmax」という用語の起源です。このソースから詳細を確認できます(式83)。


私にとって、最大関数の「ソフト化」バージョンのアイデアは、softmaxの使用を正当化する最も簡単な方法です。
tashuhka

3

Piotr Czaplaの回答に追加すると、入力値が大きいほど、同じ比率で他の入力と比較して最大入力の確率が高くなります。

ここに画像の説明を入力してください


2

他の多くの可能な正規化関数があるので、softmax関数の選択はどういうわけか任意です。したがって、なぜlog-softmax損失が他の損失の選択肢よりも優れているのかは不明です。

Spherical Loss Familyに属するSoftmaxの代替案の調査https://arxiv.org/abs/1511.05042から

著者らは、テイラー展開expやいわゆる球形ソフトマックスなど、他のいくつかの機能を調査し、通常よりもパフォーマンスが優れていることを発見しましたsoftmax

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.