2016-12-31 22 views
1

オブジェクト検出とセマンティックセグメンテーションに関する深い学習の実装では、出力層がシグモイドかソフトマックスのどちらかを使っているのを見ました。どちらを使うべきかはっきりしていませんか?それは私の両人がこれらの仕事をサポートできるようです。この選択のためのガイドラインはありますか?出力層のソフトマックスとシグモイド関数

答えて

3

softmax()は、あなたが1 sigmoidがあなたは出力が0から1までの範囲になりたいときに使用されるまでの合計の確率分布を、したいときに役立ちますが、あなたの場合は1

に合計する必要はありませんあなたは2つの選択肢を分類して選択したいと思っています。私はsoftmax()を使用することをお勧めします。クロスエントロピー損失関数を適用できる確率分布が得られるでしょう。

+0

こんにちは、私はかなり一般的に私の質問と思います。私はいくつかの論文や深い学習の実装を読むと、著者はシグモイドかソフトマックスのどちらかを使用していることがわかりました。私はこの種の選択の根底にある論理に関連する説明を見ません。たとえば、セマティックセグメンテーションの問題に取り組んでいる場合、各ピクセルはクラス1またはクラス2として予測される必要があります(このセマンティックセグメンテーションは2クラスのラベルであるとします)。それで、ソフトマックスとシグモイドの両方を使うことができると思います。しかし、どちらが優れているか、どちらがより多くの好みを与えられるべきか。 – user288609

+0

更新された回答を参照 – martianwars

1

オブジェクト検出は、イメージのスライディングウィンドウで使用されるオブジェクト分類です。分類では、あるクラス空間で正しい出力を見つけることが重要です。例えば。あなたは10種類のオブジェクトを検出し、どのオブジェクトがそこにある可能性が最も高いのかを知りたいとします。次に、ソフトマックスは、全体の層が1になるという自信のために良いです。

セマンティックセグメンテーションは、イメージを何らかの方法で分割します。私はセマンティック医療セグメンテーションを行っており、出力はバイナリイメージです。これは、出力クラスごとにシグモイド値が0〜1であるため、このピクセルがこの特定のクラスに属するかどうかを予測する出力としてシグモイドを持つことができることを意味します。

+0

http://stackoverflow.com/help/someone-answers –

2

一般に、n個のクラスがある場合、Softmaxが使用されます(Softmax Classifier)。 Sigmoidまたはsoftmaxの両方は、バイナリ(n = 2)分類に使用できます。

シグモイド: S(X)= 1 /(1+(E ^( - x))を)

ソフトマックス:

  σ(x)j = e /**Σ**{k=1 to K} e^zk for(j=1.....K) 

ソフトマックスは、マルチクラスS字のようなものですが、あなたの場合ソフトマックスの機能を見ると、すべてのソフトマックスユニットの合計は1であるはずです。シグモイドではそれは本当に必要ではありません。

深く掘り下げることで、マルチクラス分類にシグモイドを使用することもできます。 softmaxを使うと、基本的に各クラスの確率(結合分布と多項式尤度)が得られ、その合計は1になります。あなたがマルチクラスの分類にシグモイドを使用する場合、それは限界分布とベルヌーイ尤度のようになります。p(y0/x)、p(y1/x)など

関連する問題