Yanıtlar:
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.
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.
show_accuracy
parametrenin 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?
def your_own_metric(y_true, y_pred)
işlev oluşturmak ve onu geçmekmodel.compile(..., metrics=[your_own_metric])