Czy mogę użyć małego zestawu do sprawdzania poprawności?

15

Rozumiem powody dzielenia danych na zestaw testowy i zestaw walidacyjny. Rozumiem również, że rozmiar podziału będzie zależał od sytuacji, ale ogólnie będzie wynosił od 50/50 do 90/10.

Zbudowałem RNN, aby poprawić pisownię i zacząłem od zestawu danych ~ 5m zdań. Ogoliłem 500 000 zdań, a następnie trenowałem z pozostałymi ~ 4,5 mln zdań. Po zakończeniu szkolenia biorę zestaw walidacyjny i obliczam dokładność.

Interesujące jest to, że po zaledwie 4% mojego zestawu walidacyjnego mam dokładność 69,4% i odsetek ten nie zmienia się o więcej niż 0,1% w obu kierunkach. W końcu po prostu skróciłem sprawdzanie poprawności, ponieważ liczba utknęła na 69,5%.

Po co więc odcinać 10% na walidację, skoro prawdopodobnie mógłbym uciec z 1%? Czy to ma znaczenie?

Mark Cramer
źródło
4
Ogólna odpowiedź jest taka, że ​​próba większa niż powiedziałbym, że 10 000 będzie bardzo reprezentatywną podgrupą populacji. Zwiększenie próby, jeśli została poprawnie narysowana, może być kosztowne, podczas gdy szacunki, które widzisz, będą mniej więcej takie same. Poszukaj koncepcji przedziału ufności.
Alexey Burnakov

Odpowiedzi:

20

Większe zestawy walidacyjne dają dokładniejsze szacunki wydajności poza próbą. Ale jak zauważyłeś, w pewnym momencie oszacowanie może być tak dokładne, jak potrzebujesz, i możesz dokonać pewnych przybliżonych prognoz co do wielkości próby sprawdzania poprawności, którą musisz osiągnąć.

Dla prostej poprawnej / niepoprawnej dokładności klasyfikacji można obliczyć błąd standardowy oszacowania jako (odchylenie standardowe zmiennej Bernouilli), gdziepjest prawdopodobieństwem poprawnej klasyfikacji, anjest rozmiarem zbioru walidacyjnego. Oczywiście nie znaszp, ale możesz mieć pojęcie o jego zasięgu. Załóżmy na przykład, że oczekujesz dokładności między 60-80% i chcesz, aby w swoich szacunkach błąd standardowy był mniejszy niż 0,1%: p(1p)/npnp Jak duży powinien byćn(rozmiar zestawu walidacyjnego)? Dlap=0,6otrzymujemy: n> 0,6 - 0,6 2

p(1p)/n<0.001
np=0.6 Dlap=0,8otrzymujemy: n>0,8-0,82
n>0.60.620.0012=240,000
p=0.8 Więc to mówi nam, że można uciec z użyciem mniej niż 5% swoich 5 milionów próbek danych, do walidacji. Odsetek ten spada, jeśli spodziewasz się wyższej wydajności, a zwłaszcza jeśli jesteś zadowolony z niższego standardowego błędu oszacowania wydajności poza próbą (np. Przyp=0,7i dla se <1%, potrzebujesz tylko 2100 próbek walidacyjnych lub mniej niż jedną dwudziestą procent Twoich danych).
n>0,8-0,82)0,0012)=160,000
p=0,7

Obliczenia te pokazują również punkt wskazany przez Tima w jego odpowiedzi, że dokładność twoich szacunków zależy od absolutnego rozmiaru twojego zestawu walidacyjnego (tj. Od ), a nie od jego wielkości w stosunku do zestawu treningowego.n

(Mogę również dodać, że zakładam reprezentatywne próbkowanie tutaj. Jeśli twoje dane są bardzo niejednorodne, być może będziesz musiał użyć większych zestawów sprawdzania poprawności, aby upewnić się, że dane sprawdzania poprawności obejmują wszystkie te same warunki itp., Co dane dotyczące pociągu i testu. )

Ruben van Bergen
źródło
14
p(1p)p=1/2p(1p)=1/4p(1p)/n1/4n
11

Niezłą dyskusję na ten temat zapewnia Andrew Ng na swoim kursie Deep Learning na Coursera.org . Jak zauważa, standardowe podziały, takie jak 8: 2 lub 9: 1, są ważne, jeśli dane są małe lub średnio duże, ale wiele współczesnych problemów z uczeniem maszynowym wykorzystuje ogromne ilości danych (np. Miliony obserwacji, jak w twoim przypadku), i w takim scenariuszu możesz pozostawić 2%, 1%, a nawet mniej danych jako zestaw testowy, biorąc wszystkie pozostałe dane z zestawu treningowego (w rzeczywistości argumentuje za użyciem również zestawu deweloperskiego). Jak argumentuje, im więcej danych zasilasz swój algorytm, tym lepsza jest jego wydajność, a dotyczy to zwłaszcza głębokiego uczenia * (zauważa również, że nie musi tak być w przypadku algorytmów uczenia maszynowego niegłębnego uczenia się).

Jak zauważył już w komentarzu Alex Burn , tak naprawdę nie chodzi o rozmiar zestawu testowego, ale o jego reprezentatywność dla twojego problemu. Zwykle przy większych rozmiarach danych mamy nadzieję, że będą bardziej reprezentatywne, ale nie musi tak być. Jest to zawsze kompromis i musisz wziąć pod uwagę specyficzne problemy. Nie ma reguł mówiących, że zestaw testowy nie powinien być mniejszy niż X przypadków lub mniej niż Y% twoich danych.

* - Zastrzeżenie: Powtarzam tutaj argumenty Andrew Ng, nie uważałbym się za specjalistę od głębokiego uczenia się.

Tim
źródło
2
„tak naprawdę nie chodzi o rozmiar zestawu testowego, ale o jego reprezentatywność dla twojego problemu”. - prawdopodobnie malowniczym sposobem na określenie tego jest to, że nie ma sensu mieć dużego zestawu treningowego dla czegoś, co dotyczy psów i kotów, jeśli twój zestaw treningowy składa się prawie w całości z kotów.
JM nie jest statystykiem
Mówiąc dokładniej, miało to miejsce w wykładzie „Train / Dev / Test sets” w pierwszym tygodniu kursu „Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization” (który jest pkt. 2 całej specjalizacji Deep Learning)
icc97
2
Oto pełny cytat z wykładu: „Więc w tym przykładzie, w którym masz milion przykładów, jeśli potrzebujesz tylko 10 000 dla swojego dewelopera i 10 000 dla swojego testu, twój stosunek będzie bardziej podobny, że 10 000 to 1% z 1 miliona, więc „Mam 98% pociągu, 1% dev, 1% test. Widziałem również aplikacje, w których, jeśli masz nawet ponad milion przykładów, możesz skończyć z 99,5% pociągiem i 0,25% dev, 0,25% test . A może test 0,4%, test 0,1%. ”
icc97