ディープラーニングを使用して顔/非顔のバイナリ検出をトレーニングします。どの損失を使用する必要がありますか、それはSigmoidCrossEntropyLossまたはHinge-lossであると思います。
それは正しいですが、ソフトマックスを2つのクラスだけで使用する必要があるのでしょうか?
ディープラーニングを使用して顔/非顔のバイナリ検出をトレーニングします。どの損失を使用する必要がありますか、それはSigmoidCrossEntropyLossまたはHinge-lossであると思います。
それは正しいですが、ソフトマックスを2つのクラスだけで使用する必要があるのでしょうか?
回答:
ヒンジ損失とクロスエントロピーは、一般的に同様の結果が見られます。さまざまな損失関数を比較する別の投稿があります。分類でさまざまな損失関数を選択すると、0-1損失を近似することの影響は何ですか。
それは正しいですが、ソフトマックスを2つのクラスだけで使用する必要があるのでしょうか?
Softmaxは損失ではなく正規化関数であり、クロスエントロピー損失とともに使用されることが多く、これは本質的にに相当しSigmoidCrossEntropyLoss
ます。出力層のクロスエントロピーまたは対数尤度も参照してください
一般に、サンプルが一連のクラスの中で1つのクラスにしか所属できないという問題がある場合、最後のレイヤーをソフトマックスレイヤーに設定します。出力を確率として解釈できます。ソフトマックス層を使用する場合、クロスエントロピーの対数項がソフトマックス関数に存在するプラトーを相殺するため、クロスエントロピーは一般的に非常にうまく機能します。したがって、学習プロセスを高速化しますから シグモイド関数で)。
あなたの場合、バイナリ分類タスクがあるので、出力層は標準シグモイドになります(出力はテストサンプルが顔である確率を表します)。使用する損失は、バイナリ相互エントロピーになります。この設定を使用すると、ディープニューラルネットの最後の層でロジスティック回帰が発生することを想像できます。
ここにいくつかのリンクがあります。彼らが助けてくれることを願っています。
https://en.wikipedia.org/wiki/Cross_entropy#Cross-entropy_error_function_and_logistic_regression
http://neuralnetworksanddeeplearning.com/chap3.html
https://www.quora.com/How-do-you-decide-which-loss-機械学習に使用する機能
あなたは間違いなく2つのクラス「Face」と「Not Face」だけでsoftmaxを使用し、ソフトマックス出力を信頼スコアとして解釈することができます。
2クラスのソフトマックス損失とバイナリヒンジ損失の両方を試してください。ディープコンバージョンネットの上にソフトマックス分類器の代わりにSVM を使用した線形サポートベクターマシンを使用したディープラーニングの最近の論文があり、そこにはいくつかの有望な結果があります。
sigmoid
(最後のレイヤーのアクティベーションとして)上の有用性を実際に見ることができません。おかげで