Yapay Sinir Ağları - Kayıp ve Doğruluk korelasyonu


11

Sinir Ağlarında Kayıp ve Doğruluk metriklerinin bir arada bulunmasıyla biraz kafam karıştı. Her ikisinin de ve karşılaştırmasının "kesinliğini" göstermesi gerekiyor , değil mi? Peki bu ikisinin eğitim dönemlerindeki gereksizliği değil mi? Dahası, neden ilişkilendirilmiyorlar?yy^

Yanıtlar:


9

Günlük kaybı, ayırt edilebilir bir işlev olduğu güzel bir özelliğe sahiptir. Doğruluk daha önemli olabilir ve kesinlikle daha yorumlanabilir, ancak kayıp işlevinin farklılaştırılmasını gerektiren geri yayılım algoritması nedeniyle ağın eğitiminde doğrudan kullanılamaz. Tercih ettiğiniz kayıp doğrudan optimize edilemediğinde (doğruluk gibi), gerçek metriğin proxy'sine benzer şekilde davranan bir kayıp işlevi kullanırsınız. İkili sınıflandırma durumunda, sonunda bir sigmoid ve yaklaşık doğruluk için bir günlük kaybı kullanırsınız. Bunlar yüksek derecede ilişkilidir.


6

Kayıp, doğruluktan daha geneldir. Sınıflandırmada, tüm etiketlerin doğru tahmin edildiği% 100 doğruluk oranına gidebilirsiniz. Peki ya regresyon ya da tahmin? % 0 ve% 100 tanımları yoktur

|yhbirt-y|


0

Evet, ikisi de y ve y_hat'ın kesinliğini ölçer ve evet genellikle ilişkilidir. Bazen kayıp işlevi doğruluk olmayabilir, ancak doğrudan optimize etmemenize rağmen doğruluğu ölçmekle ilgilenebilirsiniz. Google'ın TensorFlow MNIST örneği, çapraz entropi kaybını en aza indirir / optimize eder, ancak sonuçları bildirirken kullanıcıya doğruluk gösterir ve bu tamamen iyidir.

Bazen doğruluğu doğrudan optimize etmek istemezsiniz. Örneğin, ciddi sınıf dengesizliğiniz varsa, modeliniz her zaman en yaygın sınıfı seçerek doğruluğu en üst düzeye çıkarır, ancak bu yararlı bir model olmaz. Bu durumda entropi / log kaybı, optimize etmek için daha iyi bir kayıp fonksiyonu olacaktır.


7
Daha da önemlisi, doğruluk farklılaşabilir bir işlev değildir, bu nedenle içinden ilerleyemezsiniz.
Jan van der Vegt

@JanvanderVegt Evet, bu harika bir nokta
Ryan Zotti

Keras'ta derleme fonksiyonuna "özel" değerlendirme metrikleri (bu durumda özel olarak, Keras'ta AUC veya F1-Puanı gibi yerleşik bir uygulamanın olmadığını) ifade edebileceğimi öğrendim. Bu durumda, show_accuracyparametrenin True olarak ayarlandığı her yerde Doğruluk yerine bu "özel" metriklerin kullanılacağını / görüntüleneceğini varsayıyorum (montajda veya değerlendirmede olduğu gibi). Bu doğru mu?
Hendrik

1
@Hendrik evet yapabilirsiniz, sadece bir def your_own_metric(y_true, y_pred)işlev oluşturmak ve onu geçmekmodel.compile(..., metrics=[your_own_metric])
rilut
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.