ロジスティック分類器の関数(Softmax対Sigmoid)の選択を決定するものは何ですか?
4つの出力クラスがあるとします。上記の各関数は、各クラスが正しい出力である確率を与えます。それで、分類器のためにどれを取るべきですか?
ロジスティック分類器の関数(Softmax対Sigmoid)の選択を決定するものは何ですか?
4つの出力クラスがあるとします。上記の各関数は、各クラスが正しい出力である確率を与えます。それで、分類器のためにどれを取るべきですか?
回答:
シグモイド関数は、一方、2クラスロジスティック回帰のために使用されるソフトマックス関数は多クラスロジスティック回帰(別名MAXENT、多項ロジスティック回帰、回帰ソフトマックス、最大エントロピー分類)のために使用されます。
2クラスのロジスティック回帰では、シグモイド関数を使用して、予測確率は次のようになります。
クラスのマルチクラスロジスティック回帰では、softmax関数を使用した予測確率は次のとおりです。
以下で説明するように、softmax関数は、シグモイド関数のマルチクラスケースへの拡張であることがわかります。クラスのマルチクラスロジスティック回帰を見てみましょう。
。シグモイド関数を使用して、2クラスのロジスティック回帰と同じ確率を取得することがわかります。ウィキペディアはそれについてもう少し拡張しています。
実際には、一方を他方に変換できるという意味で同等です。
データが任意の次元のベクトルで表され、アフィン変換とそれに続くソフトマックスを使用してバイナリ分類器を構築したと仮定します。
ソフトマックスの代わりにシグモイドを使用する同等のバイナリ分類器に変換してみましょう。まず、シグモイドを出力する確率を決定する必要があります(クラスまたは)。この選択は絶対に任意なので、クラスを選択します。次に、分類子は次の形式になります。
確率が同じである場合、分類子は同等であるため、以下を課す必要があります。
置換、および面でそれらの式でといくつか簡単に行います代数的操作では、およびが次のように与えられた場合にのみ、上記の等式が成立することを検証できます。
ニューラルネットワークでシグモイドとソフトマックスのどちらを使用するかを検索するときに、この質問に人々がしばしば誘導されることに気付きました。ニューラルネットワーク分類子を構築している人の1人である場合、シグモイドまたはソフトマックスをネットワークからの生の出力値に適用するかどうかを決定する方法は次のとおりです。
参照:計算例など、ニューラルネットワーク設計でシグモイドとソフトマックスを使用するタイミングの詳細については、「分類:シグモイドとソフトマックス」を参照してください。
以前のすべての回答に追加-マルチクラス分類問題は、「one-vs-all」メソッドを使用して複数のバイナリ分類問題に還元できるという事実に言及したいと思います。クラス)およびすべてのシグモイドがその特定のクラスに存在するかどうかの確率であると解釈し、最大確率を取得します。
たとえば、MNISTの数字の例では、softmaxまたは10個のシグモイドを使用できます。実際、これはAndrew NgがCoursera MLコースで行っていることです。ここで、Andrew Ngがマルチクラス分類に10シグモイドをどのように使用したか(Matlabからpythonに私が適応)を確認できます。ここに、pythonでのsoftmax適応があります。
また、関数は(マルチクラス分類の目的のために)同等ですが、実装が少し異なります(特にそれらの導関数、およびyの表現方法に関して)。
単一のマルチクラス分類(つまりSoftmax)よりも複数のバイナリ分類(つまりSigmoids)を使用する大きな利点-ソフトマックスが大きすぎる場合(たとえば、辞書サイズが10K以上のワンホットワード埋め込みを使用している場合) )-それを訓練するのは非効率的です。代わりにできることは、トレーニングセットの一部を取り、それを使用してシグモイドの一部のみをトレーニングすることです。これは、ネガティブサンプリングの背後にある主要なアイデアです。