ロジスティック分類器のソフトマックス対シグモイド関数?


63

ロジスティック分類器の関数(Softmax対Sigmoid)の選択を決定するものは何ですか?

4つの出力クラスがあるとします。上記の各関数は、各クラスが正しい出力である確率を与えます。それで、分類器のためにどれを取るべきですか?


16
ソフトマックス関数はシグモイドの一般化に他ならないため、「ソフトマックス対シグモイド」の意味が完全には明らかではありません。
dsaxton

2
シグモイドの場合です。シグモイドを使用すると、1つのクラスの確率はで、もう1つのクラスの確率は。exp(βTx)/(exp(βTx)+1)1/(exp(βTx)+1)
dsaxton

3
redditポスターは、私が間違っているか、少なくとも無関係であると思う区別をしています。クラスの1つに重み1があるかどうかは、スコアをシフトするだけで、確率には影響しません。
dsaxton


3
タイトルのすぐ下にある「softmax vs. sigmoid」の意味が完全には明確ではありません。」という質問の本文があります。さらに、Googleクエリをここに来て、尋ねられた内容に正確に答えるように指示するのは良いタイトルです。
マイケル

回答:


77

シグモイド関数は、一方、2クラスロジスティック回帰のために使用されるソフトマックス関数は多クラスロジスティック回帰(別名MAXENT、多項ロジスティック回帰、回帰ソフトマックス、最大エントロピー分類)のために使用されます。


2クラスのロジスティック回帰では、シグモイド関数を使用して、予測確率は次のようになります。

Pr(Yi=0)=eβXi1+eβ0XiPr(Yi=1)=1Pr(Yi=0)=11+eβXi

クラスのマルチクラスロジスティック回帰では、softmax関数を使用した予測確率は次のとおりです。K

Pr(Yi=k)=eβkXi 0cKeβcXi

以下で説明するように、softmax関数は、シグモイド関数のマルチクラスケースへの拡張であることがわかります。クラスのマルチクラスロジスティック回帰を見てみましょう。K=2

Pr(Yi=0)=eβ0Xi 0cKeβcXi=eβ0Xieβ0Xi+eβ1Xi=e(β0β1)Xie(β0β1)Xi+1=eβXi1+eβXiPr(Yi=1)=eβ1Xi 0cKeβcXi=eβ1Xieβ0Xi+eβ1Xi=1e(β0β1)Xi+1=11+eβXi

。シグモイド関数を使用して、2クラスのロジスティック回帰と同じ確率を取得することがわかります。ウィキペディアはそれについてもう少し拡張しています。β=(β0β1)


1
私はこれに素朴ですが、私はこれを多くの時間を見てβ=-(β0-β1)それに可能な説明は何ですか?私の知る限り、シグモイドではβはベクトルになります。そして、彼らは通常、特定の実行のためのものです。では、どうしてβ0とβ1が写真に登場するのでしょうか?
イシャンバット

1
@IshanBhatt このコメントが役に立つかもしれません。
トム・ヘイル

奇妙なことに、私はまだシグモイドを使用してマルチクラスに回帰することができます:)
datdinhquoc

15

実際には、一方を他方に変換できるという意味で同等です。

データが任意の次元のベクトルで表され、アフィン変換とそれに続くソフトマックスを使用してバイナリ分類器を構築したと仮定します。x

(z0z1)=(w0Tw1T)x+(b0b1),
P(Ci|x)=softmax(zi)=eziez0+ez1,i{0,1}.

ソフトマックスの代わりにシグモイドを使用する同等のバイナリ分類器に変換してみましょう。まず、シグモイドを出力する確率を決定する必要があります(クラスまたは)。この選択は絶対に任意なので、クラスを選択します。次に、分類子は次の形式になります。C0C1C0

z=wTx+b,
P(C0|x)=σ(z)=11+ez,
P(C1|x)=1σ(z).

確率が同じである場合、分類子は同等であるため、以下を課す必要があります。

σ(z)=softmax(z0)

置換、および面でそれらの式でといくつか簡単に行います代数的操作では、およびが次のように与えられた場合にのみ、上記の等式が成立することを検証できます。z0z1zw0,w1,w,b0,b1,bxwb

w=w0w1,
b=b0b1.

@null OK、あなたがそれを尋ねると、私の説明は理解できませんでした。特定の問題に対処しましょう。データをシグモイドに供給していると言ったら、それは1次元の数値でなければなりません。シグモイドに渡すと、が2つのクラスのいずれかにある確率、たとえば:を取得します。次に、確率であるある:。それでは、シグモイドをソフトマックスに置き換えましょう。(つづく)。xxC0P(C0|x)=σ(x)xC1P(C1|x)=1P(C0|x)=σ(x)
D ...

(継続)。2つのクラスを持つ分類問題にソフトマックスを適用するには、1次元データを2次元ベクトルに変換する必要があります。したがって、とを定義する必要があります。選択しましょう。以来満たさなければならない、我々はので、。これで、および。これを使用すると、であることをすぐに確認できます。w0w1w0=1w1w=w0w11=1w1w1=0z0=w0x=xz1=w1x=0σ(x)=softmax(z0)
D ...

さらに、(つまり)を満たすと組み合わせはまったく同じ結果になります。これは、softmaxに1つの冗長パラメーターがあることを示しています。これは愚かに見えるかもしれませんが、パラメータ正規化を可能にし、学習アルゴリズムと推論の数値的安定性を促進するため、実際興味深い特性です。しかし、これは単なる追加のコメントです。質問に答えることは重要ではありません:)w0w1w=w0w11=w1w0wi
D ...

どうもありがとう。わかった。最初のコメントでは、確率はおそらくなければなりません。私は今、変換の背後にあるアイデアが何であるかを理解しています。P(C1|x)1σ(x)
nullの

それを理解してくれてうれしいです;)はい、それはタイプミスです、明らかにべきです。それを指摘してくれてありがとう!P(C1|x)=1σ(x)
D ...

8

ニューラルネットワークでシグモイドとソフトマックスのどちらを使用するかを検索するときに、この質問に人々がしばしば誘導されることに気付きました。ニューラルネットワーク分類子を構築している人の1人である場合、シグモイドまたはソフトマックスをネットワークからの生の出力値に適用するかどうかを決定する方法は次のとおりです。

  • マルチラベル分類の問題がある場合=「正解」が複数ある場合=出力は相互に排他的ではないため、各生の出力でシグモイド関数を個別に使用します。シグモイドを使用すると、すべてのクラス、一部のクラス、またはいずれのクラスでも高い確率を得ることができます。例:胸部X線画像で疾患を分類します。画像には、肺炎、肺気腫、および/または癌が含まれている場合がありますが、これらの結果は含まれていません。
  • マルチクラス分類の問題がある場合=「正解」が1つしかない場合=出力は相互に排他的であるため、softmax関数を使用します。softmaxは、出力クラスの確率の合計が1に等しいことを強制します。したがって、特定のクラスの確率を上げるために、モデルはそれに応じて他のクラスの少なくとも1つの確率を下げる必要があります。例:手書き数字のMNISTデータセットから画像を分類します。数字の単一の画像には、真のアイデンティティが1つしかありません。同時に7と8にすることはできません。

参照:計算例など、ニューラルネットワーク設計でシグモイドとソフトマックスを使用するタイミングの詳細については、「分類:シグモイドとソフトマックス」を参照してください


-1

以前のすべての回答に追加-マルチクラス分類問題は、「one-vs-all」メソッドを使用して複数のバイナリ分類問題に還元できるという事実に言及したいと思います。クラス)およびすべてのシグモイドがその特定のクラスに存在するかどうかの確率であると解釈し、最大確率を取得します。

たとえば、MNISTの数字の例では、softmaxまたは10個のシグモイドを使用できます。実際、これはAndrew NgがCoursera MLコースで行っていることです。ここで、Andrew Ngがマルチクラス分類に10シグモイドをどのように使用しか(Matlabからpythonに私が適応)を確認できます。ここに、pythonでのsoftmax適応があります。

また、関数は(マルチクラス分類の目的のために)同等ですが、実装が少し異なります(特にそれらの導関数、およびyの表現方法に関して)。

単一のマルチクラス分類(つまりSoftmax)よりも複数のバイナリ分類(つまりSigmoids)を使用する大きな利点-ソフトマックスが大きすぎる場合(たとえば、辞書サイズが10K以上のワンホットワード埋め込みを使用している場合) )-それを訓練するのは非効率的です。代わりにできることは、トレーニングセットの一部を取り、それを使用してシグモイドの一部のみをトレーニングすることです。これは、ネガティブサンプリングの背後にある主要なアイデアです。


関数は、ソフトマックスネットワークが出力としてクラス全体に確率分布を生成するように制約されているため、同等ではありません。ベクトルは非負であり、合計は1ですシグモイド単位は負ではありませんが、任意の数に合計できます0と間; 有効な確率分布ではありません。この区別は、2つの機能の違いを特徴付けるために重要です。CC
モニカを

同等の定義は何ですか?私は次のとおりです。マルチクラス分類に問題なく使用できます。また、softmaxを使用するマルチクラス分類は、シグモイドを使用する1対すべてのバイナリ分類に変換できます。合計が1になる出力の分布に注意する必要があるのはなぜですか?
デビッドレファエリ

マルチラベル分類に関するあなたの議論は、シグモイドとソフトマックスが同等ではない理由を示しています。softmaxを使用する場合、1つのクラスの確率を上げると、他のすべてのクラスの合計確率が下がります(sum-to-1のため)。シグモイドを使用して、1つのクラスの確率を増やしても、他のクラスの合計確率は変わりません。この観察がシグモイドがマルチラベル分類にもっともらしい理由です。単一の例は、クラスに属することができます。sum-to-1は、softmaxがマルチラベル分類に適していない理由でもあります。0,1,2,,C
モニカを

私はあなたを失った。私が知っているすべての実用的な目的のために、複数のシグモイド= 1ソフトマックス。複数のシグモイドが実際にソフトマックスよりも有利なネガティブサンプリングの場合も追加しました。
デビッドレファエリ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.