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?
źródło
Odpowiedzi:
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(1−p)/n−−−−−−−−−√ p n p
Jak duży powinien byćn(rozmiar zestawu walidacyjnego)? Dlap=0,6otrzymujemy:
n> 0,6 - 0,6 2
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. )
źródło
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ę.
źródło
Asymptotic Statistical Theory of Overtraining and Cross-Validation
[1] https://www.ncbi.nlm.nih.gov/pubmed/18255701
źródło