Küçük bir Doğrulama seti kullanabilir miyim?


15

Verileri bir Test kümesine ve Doğrulama kümesine bölmenin arkasındaki nedeni anlıyorum. Ayrımın büyüklüğünün duruma bağlı olacağını, ancak genellikle 50/50 ila 90/10 arasında değişeceğini de anlıyorum.

Yazımı düzeltmek ve ~ 5m cümlelerden oluşan bir veri kümesiyle başlamak için bir RNN oluşturdum. 500k cümle tıraş ettim ve kalan ~ 4.5m cümle ile antrenman yapıyorum. Eğitim tamamlandığında doğrulama setimi alıp doğruluğunu hesaplıyorum.

İlginç olan, doğrulama setimin sadece% 4'ünden sonra% 69.4'lük bir doğruluğa sahip olmam ve bu yüzdenin her iki yönde% 0.1'den fazla değişmemesidir. Sonunda doğrulamayı kısa kestim çünkü sayı% 69.5'e yapışmış durumda.

Öyleyse neden% 1 ile kurtulabileceğimde neden Doğrulama için% 10 dilimleyin? Önemli mi?


4
Genel bir cevap, 10.000'den büyük bir örneklem büyüklüğünün nüfusun çok temsili bir alt kümesi olacağını söyleyebilirim. Doğru şekilde çizilmişse numunenin artırılması maliyetli olabilir, ancak gördüğünüz tahmin yaklaşık olarak aynı olacaktır. Bir güven aralığı kavramı arayın.
Alexey Burnakov

Yanıtlar:


20

Daha büyük doğrulama setleri örnek dışı performans için daha doğru tahminler verir. Ancak fark ettiğiniz gibi, bir noktada bu tahmin, olması gerektiği kadar doğru olabilir ve o noktaya ulaşmak için gereken doğrulama örneği boyutu hakkında kabaca tahminler yapabilirsiniz.

Basit doğru / yanlış sınıflandırma doğruluğu için, tahminin standart hatasını (Bernouilli değişkeninin standart sapması) olarak hesaplayabilirsiniz; burada doğru bir sınıflandırma olasılığıdır ve , doğrulama kümesinin boyutudur. Elbette bilmiyorsunuz , ancak aralığı hakkında bir fikriniz olabilir. : Ör Diyelim ki 60-80% arasında bir doğruluk bekliyoruz diyor ve tahminleriniz standart hatayı daha küçük% 0.1 olmasını istediğiniz izin ne kadar büyük olmalıdır (boyutunu doğrulama seti)? İçin elde ederiz: için pnpp(1p)/npnpnp=0.6n> 0.6 - 0.6 2

p(1p)/n<0.001
np=0.6p=0.8n>0.8-0.82
n>0.60.620.0012=240,000
p=0.8şunu elde ederiz: Bu, bize doğrulama için 5 milyon veri örneğinizin% 5'inden daha azını kullanmaktan kurtulabileceğinizi söyler. Daha yüksek performans beklerseniz veya özellikle örnek dışı performans tahmininizde daha düşük bir standart hatadan memnunsanız (örn. ve se <% 1 için yalnızca 2100 doğrulama örneğine ihtiyacınız vardır) veya verilerinizin yüzde yirmisinden daha azını).p=0.7
n>0.80.820.0012=160,000
p=0.7

Bu hesaplamalar, Tim'in cevabında belirttiği noktayı da gösterir; tahminlerinizin doğruluğunun , eğitim setine göre boyutundan ziyade , doğrulama setinizin mutlak boyutuna (yani ) bağlı olduğunu gösterir.n

(Ayrıca burada temsili örnekleme olduğunu varsaydığımı da ekleyebilirim. Verileriniz çok heterojen ise, doğrulama verilerinin tren ve test verilerinizle aynı koşulları vb. İçerdiğinden emin olmak için daha büyük doğrulama setleri kullanmanız gerekebilir. )


14
Not, maksimuma ulaşır , bu durumda . Böylece en kötü durum tahmini için her zaman . Özellikle, 250.000 validasyon numunesi, gerçek sınıflandırma doğruluğunun ne olduğuna bakılmaksızın, <% 0,1 maksimum standart hata hedefinizi karşılamak için her zaman yeterli olmalıdır (ve 2.500 numune <% 1 için yeterli olacaktır). p(1p)p=1/2p(1p)=1/4p(1p)/n1/4n
Ilmari Karonen

11

Bu sorunun güzel tartışması Andrew Ng tarafından Coursera.org'daki Deep Learning kursunda verilmektedir . Belirttiği gibi, 8: 2 veya 9: 1 gibi standart bölünmeler, verileriniz küçükten orta dereceye kadar büyükse geçerlidir, ancak günümüzdeki makine öğrenimi sorunlarının çoğu büyük miktarlarda veri kullanır (örneğin, durumunuzda olduğu gibi milyonlarca gözlem), ve böyle bir senaryoda, egzersiz setiniz için kalan tüm verileri alarak bir test seti olarak% 2,% 1 veya daha az veri bırakabilirsiniz (aslında bir geliştirme seti kullanmayı da iddia eder). Tartıştığı gibi, algoritmanızı ne kadar çok veri beslerseniz, performansı için o kadar iyidir ve bu özellikle derin öğrenme için geçerlidir * (ayrıca bunun derin olmayan öğrenme makinesi öğrenme algoritmaları için geçerli olmaması gerektiğini de belirtmektedir).

Alex Burn'un yorumunda daha önce fark edildiği gibi, bu gerçekten test setinizin büyüklüğü ile ilgili değil, probleminiz için temsil edilebilirliğiyle ilgilidir. Genellikle daha büyük boyuttaki verilerle daha temsili olmasını umuyoruz, ancak durum böyle olmak zorunda değildir. Bu her zaman bir ödünleşmedir ve soruna özel değerlendirmeler yapmanız gerekir. Test kümesinin X durumundan daha az veya verilerinizin% Y'sinden daha az olmaması gerektiğini bildiren hiçbir kural yoktur.

* - Feragatname: Andrew Ng'in buradaki argümanlarını tekrarlıyorum, kendimi derin öğrenme uzmanı olarak görmezdim.


2
"Bu gerçekten test setinizin büyüklüğü ile ilgili değil, probleminiz için temsil edilebilirliğiyle ilgili." - muhtemelen pitoresk bir şekilde koyma, eğitim setiniz neredeyse tamamen kedilerden oluşuyorsa, köpekler ve kedilerle ilgilenen bir şey için büyük bir eğitim setine sahip olmanın hiçbir faydası olmamasıdır.
JM bir istatistikçi değil

Daha spesifik olarak bu, 'Derin Sinir Ağlarının Geliştirilmesi: Hiperparametre ayarlama, Düzenleme ve Optimizasyon' kursunun (tüm derin öğrenme uzmanlığının 2. bölümü olan) 1. haftadaki 'Tren / Geliştirme / Test setleri' dersinde yapıldı .
icc97

2
Derste anlatılan tam alıntı şu şekildedir: "Yani bir milyon örneğinizin olduğu bu örnekte, geliştiriciniz için sadece 10.000'e ve testiniz için 10.000'e ihtiyacınız varsa, oranınız bu 10.000'in 1 milyonun% 1'i% 1 olacaktır. % 98 tren,% 1 dev,% 1 test ve bir milyondan fazla örneğiniz varsa,% 99,5 tren ve% 0,25 dev,% 0,25 test ile sonuçlanabileceğiniz uygulamalar da gördüm. Ya da belki% 0,4 dev,% 0,1 testi. "
icc97

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.