İkili bir sınıflandırma problemini çözerken, caffe'de iki olası yol olduğunu düşünüyorum.
Birincisi, bir çıkış birimi ile "SigmoidCrossEntropyLossLayer"
kullanıyor.
Diğer iki çıkış birimi ile "SoftmaxWithLossLayer"
kullanıyor. Sorum şu, bu iki yaklaşım arasındaki fark nedir?
Hangisini kullanmalıyım?
Çok teşekkür ederim! Eğer matematik biraz oynarsanızCaffe'de ikili sınıflandırma hakkında
3
A
cevap
1
, sen tek çıkışlı tahminlere "SigmoindWithCrossEntropy"
sonra, sınıf 0 için sınıfa 1 ve -0.5*x_i
için 0.5*x_i
için "SoftmaxWithLoss"
katman tutarları "Sigmoid"
tabakasının tahmin sınıf olasılık "yinelenen" olabilir x_i
. Bu yüzden, bu iki yöntemin, ikili çıktıları öngörmek için eşdeğer olarak görülebileceği söylenebilir inanıyorum.
Belki de bu kişi son katmanda daha az parametreye sahip olduğundan SigmoindWithCrossEntropy'yi kullanmalıdır? –
@whjxnyzh Bu ilginç bir husustur. Şahsen ben SoftmaxWithLoss'un lehindeyim. Eski alışkanlıkları sanırım ... – Shai
Teşekkür @Shai. Evet, SoftmaxWithLoss kafein için uygundur, AccuracyLayer kullanarak doğruluk elde edebiliriz. Ancak, AccuracyLayer'ı SigmoidWithCrossEntropy kaybıyla birlikte kullanamıyoruz çünkü bu sadece bir çıkışa sahip… Matematiksel olarak, bu iki kayıp işlevi aynıdır, aslında SoftmaxWithLoss ikili sınıflandırma yapılarak overparameterized. Http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/ “Lojistik Regresyon İlişkisi ” bölümüne bakın. –