Neden sadece üç bölüm? (eğitim, doğrulama, test)


61

Modelleri geniş bir veri kümesine sığdırmaya çalışırken, ortak tavsiye, verileri üç bölüme ayırmaktır: eğitim, doğrulama ve test veri kümesi.

Bunun nedeni, modellerin genellikle üç "seviye" parametresine sahip olmalarıdır: ilk "parametre", model sınıfıdır (örneğin, SVM, sinir ağı, rasgele orman), ikinci parametre grubu, "düzenlileştirme" parametreleri veya "hiperparametreler" dir ( örneğin, kement ceza katsayısı, çekirdek seçimi, sinir ağı yapısı) ve üçüncü küme genellikle "parametreler" olarak kabul edilenlerdir (örneğin, eş değişkenler için katsayılar).

Bir model sınıfı ve bir dizi hiperparametre seçeneği göz önüne alındığında, biri eğitim setindeki hatayı minimize eden parametreleri seçerek parametreleri seçer. Bir model verildiğinde, doğrulama setindeki hatayı minimize ederek hiperparametreleri ayarlar. Biri, test setindeki performansa göre model sınıfını seçer.

Ama neden daha fazla bölüm değil? Çoğu zaman, hiperparametreleri iki gruba ayırabilir ve birinci sığdırmak için bir "doğrulama 1" ve ikinciyi sığdırmak için "doğrulama 2" kullanabilirsiniz. Hatta bir kişi, eğitim verilerinin / doğrulama verilerinin boyutunun ayarlanacak bir hiperparametre olarak bile ele alınabilir.

Bu, bazı uygulamalarda zaten yaygın bir uygulama mıdır? Verilerin en iyi şekilde bölümlenmesi ile ilgili teorik bir çalışma var mı?

Yanıtlar:


79

İlk olarak, üç bölümün ne yaptığı konusunda yanıldığını düşünüyorum. Test verilerine dayanarak herhangi bir seçim yapamazsınız. Algoritmalarınız parametrelerini egzersiz verilerine göre ayarlar. Daha sonra algoritmalarınızı (ve onların eğitilmiş parametrelerini) karşılaştırmak ve bir kazanan üzerinde karar vermek için doğrulama verilerinde çalıştırın. Daha sonra kazananı test verilerinde kullanarak gerçek dünyada ne kadar iyi olacağına dair bir tahminde bulunabilirsiniz.

Eğitim verilerinizi doğrulamıyorsunuz çünkü bu modelinize uygun. Doğrulama adımının kazancının puanında durmazsınız çünkü doğrulama adımında kazananı kazanacak şeyleri yinelemeli bir şekilde ayarladınız ve bu nedenle size özel bir sınav yapmak için bağımsız bir teste ihtiyacınız var. Mevcut alanın dışında ne kadar iyi olacağınıza dair bir fikir.

İkincisi, burada sınırlayıcı bir faktör ne kadar veriye sahip olduğunu düşünüyorum. Çoğu zaman, verileri sabit bölümlere ayırmak bile istemeyiz, dolayısıyla CV.


2
Sahip olduğum kavramsal mesele, eğer yeterince model karşılaştırıyorsanız, doğrulama verilerini kullanarak "kazanana karar verirken" etkin olarak onay verisine uyuyor olmanızdır. Bu nedenle, doğrulama verilerinin bölümlenmesinde hala bir nokta olabilir.
charles.y.zheng

Eğitim validasyon katmanının ve validasyon test katmanının bir anlamda farklı amaçlara hizmet ettiğini ve sonunda bir kazanan ilan edecekseniz ortak bir doğrulama setindeki modelleri karşılaştırmanız gerektiğini düşünüyorum. Bu yüzden ek katmanların işe yarayacağından emin değilim. (Bilgilerim gerçekten bilecek kadar derin olmasa da.) Öneriniz için aklıma gelen en yakın şey Netflix yarışmasının nasıl yürüdüğüdür. Ekiplerin test seti gradyanını tırmanmasını engellemek için kısmi test setleri kullandıklarına inanıyorum, ancak farklı olduğunu düşünüyorum.
Wayne,

2
@ user10882, yorumunuz doğru değil, Firebugs da değil. Hem (1) model parametreleri (ağırlıklar, eşikler) hem de "2" olarak adlandırılan "hiper" parametreler (gizli katman sayısı, karar ağacı sayısı), çok farklı yorum ve hislere sahip olabilir, ancak hepsi farklı olanları birbirinden ayıran parametrelerdir. modeller . Hepsini optimize etmek için eğitim verilerini kullanın, fazla uymamak için doğrulama verilerini kullanın ve sonuçlarınızın kararlı olduğundan emin olmak için çapraz doğrulama kullanın. Test verileri yalnızca modelinizin beklenen performansını belirlemeye yarar, onu kabul etmek / reddetmek için kullanmayın.
Ytsen de Boer,

1
n

1
@YtsendeBoer: Yeterince adil - onaylamaya dayalı erken durdurma gibi sth kullanıyorsanız, sınırların en azından optimizasyon prosedürü açısından bulanıklaştığını kabul ediyorum. Aklıma göre bu bir "hiperparametre" kavramını normal olanla tamamen birleştirmiyor. Farklı muamele gördükleri hâlâ birçok durum var ve ayrıca bir model tanımlanmasındaki rolleri açısından onları farklı düşünüyorum. Her neyse, umarım bu tartışma, bu kavramlar arasındaki (ince) farklılıkları ve benzerlikleri göstermek için başkalarına faydalı olmuştur =).
Ruben van Bergen

0

Bu ilginç bir soru ve @Wayne'den gelen cevaba yardımcı olduğunu gördüm.

Anladığım kadarıyla, veri setini farklı bölümlere ayırmak, yazarın amacına ve gerçek dünya uygulamasında modelin gerekliliğine bağlıdır.

Normalde iki veri setimiz vardır: eğitim ve test. Eğitim modeli modellerin parametrelerini bulmak veya modellere uymak için kullanılır. Test, modelin görünmeyen bir verideki (veya gerçek dünya verilerindeki) performansını değerlendirmek için kullanılır.

Eğitimde sadece bir adım yaparsak, bir eğitim ve test (veya onaylama) süreci olduğu açıktır.

Bununla birlikte, bu şekilde yapmak, model bir veri setiyle bir kez eğitildiğinde aşırı uydurma sorununu ortaya çıkarabilir. Bu, gerçek dünya probleminde modelin dengesizliğine yol açabilir. Bu sorunu çözmenin bir yolu, eğitim veri setindeki modeli çapraz doğrulamaktır (CV). Bu, eğitim veri kümesini farklı katlara bölüyoruz, diğer katlarla eğitilmiş modeli test etmek için bir kat tutarız. Kazanan şimdi tüm CV sürecinde asgari zarar (kendi amaç fonksiyonumuza dayanarak) verendir. Bu şekilde, eğitim sürecine aşırı uyum şansını en aza indirdiğimizden ve doğru kazananı seçtiğimizden emin olabiliriz. Test seti, görünmeyen verilerdeki kazananı değerlendirmek için tekrar kullanılır.

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.