Doğrulama kaybında veya doğrulukta erken durdurma?


10

Şu anda bir sinir ağı eğitimi alıyorum ve Erken Durdurma kriterlerimi uygulamak için hangisinin kullanılacağına karar veremiyorum: doğrulama kaybı veya doğrulama setinde hesaplanan doğruluk / f1score / auc / gibi bir metrik.

Araştırmamda her iki görüşü de savunan makaleler buldum. Keras validasyon kaybını temerrüde düşürüyor gibi görünse de karşıt yaklaşım için ikna edici cevaplarla karşılaştım (örneğin burada ).

Herkes tercihen doğrulama kaybının ne zaman kullanılacağı ve belirli bir metriğin ne zaman kullanılacağı konusunda talimatlara sahiptir?

Yanıtlar:


6

TLDR; Doğruluktan ziyade kaybı izleyin

Kendi sorumu cevaplayacağım, çünkü alınan cevapların noktayı kaçırdığını ve bir gün aynı sorunun olabileceğini düşünüyorum.

İlk olarak, sinir ağlarını eğitirken erken durmanın mükemmel bir şekilde normal olduğunu açıklığa kavuşturalım (Goodfellow ve arkadaşlarının Derin Öğrenme kitabındaki ilgili bölümlere, çoğu DL makalesine ve keras'ın EarlyStopping geri araması belgelerine bakın).

Şimdi, izlenecek miktar ile ilgili: doğruluk kaybını tercih edin. Neden? Kayıp, modelin bir tahmin hakkında ne kadar kesin olduğunu ölçmektedir (temel olarak sağ sınıfta 1'e ve diğer sınıflarda 0'a yakın bir değere sahip). Doğruluk sadece doğru tahminlerin sayısını açıklar. Benzer şekilde, olasılıklar yerine sert tahminler kullanan tüm metrikler aynı soruna sahiptir.

Açıkçası, hangi metrikleri seçerseniz seçin, bir eğitim setinde değil, bir doğrulama setinde hesaplanmalıdır (aksi takdirde, ilk etapta EarlyStopping kullanma noktasını tamamen kaçırıyorsunuz)


Değerler 0 ile 1 arasındaysa, cross_entropykayıp MSEveya değerinden daha çok tercih edilir bir adaydır MAE. Bu makalenin Özeti bölümünü ve istatistiklerle ilgili bu yayını inceleyin .
Esmailian

@Esmailian bir tercih meselesi değildir; sınıflandırma problemleri için MSE ve MAE uygun değildir.
desertnaut

5

Bence bu öznel ve probleme özgüdür. Aklınızdaki en önemli faktörü sürüş metriği olarak kullanmalısınız, çünkü bu, modeli nasıl daha iyi odaklanacağınıza dair kararlarınızı verebilir.

Hesaplanabilecek çoğu metrik, birçok şekilde ilişkilendirilebilir / benzer olacaktır: örneğin, kaybınız için MSE kullanıyorsanız, MAPE'yi (ortalama ortalama yüzde hatası) veya basit kaydedersenizL1 kaybını , size karşılaştırılabilir kayıp eğrileri verecektir.

Örneğin, raporunuzda / patronunuza vs. bir F1 puanı bildirirseniz (ve gerçekten önem verdikleri şey olduğunu varsayarak), bu metriği kullanmak en mantıklı olabilir. Örneğin F1 puanı, hassasiyeti ve hatırlamayı dikkate alır ; yani, daha hassas iki metrik arasındaki ilişkiyi açıklar .

Bu şeyleri bir araya getirmek, normal kayıp dışındaki puanları hesaplamak genel bakış ve son metriğinizin eğitim tekrarları boyunca nasıl optimize edildiğini görmek için iyi olabilir. Bu ilişki belki de sorun hakkında daha derin bir fikir verebilir,

Bununla birlikte, birçok seçeneği denemek en iyisidir, ancak doğrulama kaybını optimize etmek eğitimin daha uzun süre çalışmasına izin verebilir ve bu da sonunda daha iyi bir F1 puanı üretebilir . Hassasiyet ve geri çağırma, neredeyse statik bir F1 puanı üreten bazı yerel minimaların etrafında sallanabilir - böylece eğitimi durdurabilirsiniz. Saf kayıp için optimizasyon yapıyorsanız, daha uzun süre antrenman yapmanıza izin verecek kadar kayıpta dalgalanma kaydetmiş olabilirsiniz.


Doğrulama kaybını kullanmak neden bir metrik kullanmaktan daha uzun eğitime izin verir? Ayrıca, iki seçenek arasındaki farkı ayrıntılandırabilir misiniz? Kaybetmektense metrik kullanmanın kötü bir fikir olacağı bir durum görüyor musunuz?
qmeeus

@ id-2205 - lütfen düzenlenen cevabımı görün.
n1k31t4

ilginç nokta! Şu anda erken durdurma için doğruluk kullanıyorum, ancak doğrulama kaybını kullanmaya çalışacağım. Yine de eğitim sürecinde herhangi bir değişiklik beklemiyorum! Cevabınız için teşekkürler
qmeeus

1

Şu anda bir sinir ağı eğitimi alıyorum ve Erken Durdurma kriterlerimi uygulamak için hangisinin kullanılacağına karar veremiyorum: doğrulama kaybı veya doğrulama setinde hesaplanan doğruluk / f1score / auc / gibi bir metrik.

Derin bir ağ kuruyorsanız, erken durdurmamanızı şiddetle tavsiye ederim. Derin öğrenmede, çok geleneksel değildir. Bunun yerine, iyi genelleme için bırakma gibi diğer teknikleri kullanabilirsiniz. Eğer bu konuda ısrar ediyorsanız, kriterin seçilmesi görevinize bağlıdır. Dengesiz verileriniz varsa F1puan kullanmanız ve çapraz doğrulama verilerinizde değerlendirmeniz gerekir. Dengeli verileriniz varsa, çapraz doğrulama verilerinizde doğruluk kullanmaya çalışın. Diğer teknikler büyük ölçüde görevinize bağlıdır.

Verilerinize çok iyi uyan bir model bulmanızı ve bundan sonra okulu bırakmanızı şiddetle tavsiye ederim. Bu, insanların derin modeller için kullandığı en geleneksel şeydir.


2
Ben de bırakma kullanıyorum. Ancak, erken durmanın kullanılmaması için bir neden bulamıyorum ...
qmeeus

Erken durma hem öğrenme hem de genelleme problemlerini çözmeye çalışır. Öte yandan okuldan ayrılma sadece genelleme sorununun üstesinden gelmeye çalışır.
Medya

1
Soruma cevap vermiyorsun ... Bırakmanın faydalı olduğunu ve aşırı donmaya karşı korunmak için kullanılması gerektiğini inkar etmiyorum, bu konuda daha fazla anlaşamadım. Sorum şu: neden erken durdurmanın YSA ile kullanılmaması gerektiğini söylüyorsunuz? (cümlenin ilk cümleyi: Eğer derin bir ağ eğitimi
alıyorsanız,

Son yorumumu okudun mu? Sorunuza tam olarak cevap veriyor. Bu pr gelen ünlü bir alıntı. Ng derin öğrenme sınıfında ikinci derstir. İkinci durum, birden fazla görevi aynı anda çözmek için uğraşmamaktan dolayı daha kolay bir iştir.
Medya

3
Ve onu bulmak ve doğru hiperparametreler setini bulmak için, yukarıda açıkladığım nedenlerden dolayı erken durma ile bir tür yönlendirilmiş ızgara araması kullanıyorum. Nokta alınsa da, son modeli seçtiğimde ve onu eğiteceğim, erken durmayacağım. Bu ilginç tartışma ve tavsiye için teşekkür ederim
qmeeus
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.