Dlaczego istnieje asymetria między etapem szkolenia a etapem oceny?


27

Powszechnie wiadomo, zwłaszcza w przetwarzaniu języka naturalnego, że uczenie maszynowe powinno przebiegać w dwóch etapach: w szkoleniu i w ewaluacji oraz powinny wykorzystywać różne dane. Dlaczego to? Intuicyjnie proces ten pomaga uniknąć przeładowania danych, ale nie widzę (teoretycznego) powodu, dla którego tak jest.

W związku z tym widziałem, jak rzucano pewnymi liczbami określającymi, ile zestawu danych należy wykorzystać do treningu, a ile do oceny, jak odpowiednio 2/3 i 1/3. Czy jest jakaś teoretyczna podstawa do wyboru konkretnego rozkładu?

Odpowiedzi:


15

To zabawne, że najbardziej uprzywilejowana odpowiedź tak naprawdę nie odpowiada na pytanie :) więc pomyślałem, że fajnie byłoby poprzeć to nieco większą teorią - głównie zaczerpniętą z „Data Mining: Practical Machine Learning Tools and Techniques” i Toma Mitchella „Uczenie maszynowe” .


Wprowadzenie.

Mamy więc klasyfikator i ograniczony zestaw danych, a pewna ilość danych musi przejść do zestawu szkoleniowego, a reszta jest używana do testowania (w razie potrzeby trzeci podzbiór wykorzystywany do sprawdzania poprawności).

Przed nami stoi dylemat: aby znaleźć dobrego klasyfikatora, „podzbiór szkoleniowy” powinien być tak duży, jak to możliwe, ale aby uzyskać dobry szacunek błędu, „podzbiór testowy” powinien być tak duży, jak to możliwe - ale oba podzbiory są pobierane z ten sam basen.

Oczywiste jest, że zestaw treningowy powinien być większy niż zestaw testowy - to znaczy, że podział nie powinien wynosić 1: 1 (głównym celem jest trening , a nie testowanie ) - ale nie jest jasne, gdzie powinien być podział.

Procedura wstrzymania.

Procedura dzielenia „nadzbioru” na podzbiory nazywa się metodą wstrzymania . Zauważ, że łatwo możesz mieć pecha i przykłady niektórych klas mogą brakować (lub być nadreprezentowane) w jednym z podzbiorów, które można rozwiązać za pomocą

  • losowe próbkowanie, które gwarantuje, że każda klasa jest odpowiednio reprezentowana we wszystkich podzbiorach danych - procedura nazywa się wstrzymaniem stratyfikowanym
  • losowe pobieranie próbek z powtarzającym się procesem testowania, testowania i sprawdzania poprawności, który jest nazywany powtarzalnym wstrzymaniem stratyfikacji

W pojedynczej (niepowtarzanej) procedurze wstrzymywania możesz rozważyć zamianę ról danych testowych i treningowych oraz uśrednienie dwóch wyników, ale jest to możliwe tylko przy podziale 1: 1 między zestawy treningowe i testowe, co jest nie do przyjęcia (patrz Wprowadzenie ). Daje to jednak pewien pomysł i zamiast tego stosuje się ulepszoną metodę (zwaną sprawdzaniem krzyżowym ) - patrz poniżej!

Walidacja krzyżowa.

W walidacji krzyżowej decydujesz o stałej liczbie fałd (partycji danych). Jeśli użyjemy trzykrotnie, dane zostaną podzielone na trzy równe partycje i

  • używamy 2/3 do szkolenia i 1/3 do testowania
  • i powtórz tę procedurę trzy razy, aby ostatecznie każda instancja została użyta dokładnie raz do testowania.

Nazywa się to potrójną walidacją krzyżową , a jeśli przyjęta jest również stratyfikacja (co często jest prawdą), nazywa się to potrójną walidacją krzyżową .

Ale oto oto standardowy sposób nie polega na podziale 2/3: 1/3. Cytując „Data Mining: Practical Machine Learning Tools and Techniques” ,

Standardowym sposobem [...] jest stosowanie 10-krotnej walidacji krzyżowej. Dane są losowo dzielone na 10 części, w których klasa jest reprezentowana w przybliżeniu w takich samych proporcjach jak w pełnym zbiorze danych. Każda część odbywa się kolejno, a pozostałe dziewięć dziesiątych trenuje program nauczania; następnie jego poziom błędu jest obliczany na podstawie zestawu blokad. W ten sposób procedura uczenia się jest wykonywana 10 razy na różnych zestawach treningowych (z których każdy ma wiele wspólnego). Na koniec 10 oszacowań błędów uśrednia się, aby uzyskać ogólny szacunek błędu.

Dlaczego 10 Ponieważ „..Extensive testy na wielu zbiorów danych, z różnych technik uczenia się, wykazały, że 10 jest o odpowiednią liczbę zagięć, aby uzyskać najlepsze oszacowanie błędu, i nie jest też pewne teoretyczne dowody, że poparcie tego ..” I haven nie znalazłem, które obszerne testy i dowody teoretyczne mają na myśli, ale ten wydaje się być dobrym początkiem do kopania więcej - jeśli chcesz.

Po prostu mówią

Chociaż argumenty te w żadnym wypadku nie są rozstrzygające, a debata w kręgach uczenia maszynowego i eksploracji danych na temat najlepszego schematu oceny wciąż trwa, 10-krotna walidacja krzyżowa stała się w praktyce standardową metodą. [...] Co więcej, nie ma nic magicznego w dokładnej liczbie 10: 5-krotna lub 20-krotna walidacja krzyżowa prawdopodobnie będzie prawie tak dobra.

Bootstrap i - wreszcie! - odpowiedź na pierwotne pytanie.

Ale jeszcze nie dotarliśmy do odpowiedzi, dlaczego często 2/3: 1/3 jest często zalecane. Uważam, że jest dziedziczony po metodzie bootstrap .

Opiera się na próbkowaniu z wymianą. Wcześniej umieszczaliśmy próbkę z „wielkiego zestawu” dokładnie w jednym z podzbiorów. Bootstraping jest inny i próbka może łatwo pojawić się zarówno w zestawie szkoleniowym, jak i testowym.

Spójrzmy na jeden konkretny scenariusz, w którym bierzemy zestaw danych D1 z n instancji i próbkujemy go n razy z zamianą, aby uzyskać inny zestaw danych D2 z n instancji.

Teraz patrz wąsko.

Ponieważ niektóre elementy w D2 zostaną (prawie na pewno) powtórzone, w oryginalnym zestawie danych muszą znajdować się pewne instancje, które nie zostały wybrane: użyjemy ich jako instancji testowych.

Jaka jest szansa, że ​​konkretna instancja nie została wybrana dla D2 ? Prawdopodobieństwo odebrania przy każdym ujęciu wynosi 1 / n, więc jest odwrotnie (1 - 1 / n) .

Kiedy mnożymy te prawdopodobieństwa razem, to jest to (1 - 1 / n) ^ n, co oznacza e ^ -1, czyli około 0,3. Oznacza to, że nasz zestaw testowy będzie wynosił około 1/3, a zestaw treningowy będzie wynosił około 2/3.

Wydaje mi się, że to jest powód, dla którego zaleca się stosowanie podziału 1/3: 2/3: ten stosunek pochodzi z metody szacowania ładowania.

Podsumowując.

Chcę zakończyć cytatem z książki eksploracji danych (której nie mogę udowodnić, ale zakładam, że jest poprawny), w której zazwyczaj zalecają 10-krotną walidację krzyżową:

Procedura ładowania początkowego może być najlepszym sposobem oszacowania błędu dla bardzo małych zestawów danych. Jednak, podobnie jak bezobsługowa walidacja krzyżowa, ma ona wady, które można zilustrować, rozważając specjalną, sztuczną sytuację [...] całkowicie losowy zbiór danych z dwiema klasami. Rzeczywisty poziom błędu wynosi 50% dla dowolnej reguły przewidywania, ale schemat, który zapamiętał zestaw treningowy, dałby doskonały wynik w zakresie ponownej podstawienia wynoszący 100%, tak że instancje etrain = 0, a bootstrap 0,632 zmieszałby to z wagą 0,368 do dać ogólny poziom błędu tylko 31,6% (0,632 ¥ 50% + 0,368 ¥ 0%), co jest myląco optymistyczne.


13

Rozważ skończony zestaw m rekordów. Jeśli użyjesz wszystkich rekordów jako zestawu treningowego, możesz idealnie dopasować wszystkie punkty za pomocą następującego wielomianu:

y = a0 + a1 * X + a2 * X ^ 2 + ... + an * X ^ m

Teraz, jeśli masz jakiś nowy rekord, nieużywany w zestawie treningowym, a wartości wektora wejściowego X różnią się od dowolnego wektora X używanego w zestawie treningowym, co możesz powiedzieć o dokładności przewidywania y?

Sugeruję, aby przejść do przykładu, w którym masz 1 lub 2-wymiarowy wektor wejściowy X (w celu wizualizacji nadmiaru wielomianu) i sprawdzić, jak duży jest błąd prognozowania dla pewnej pary (X, y), które wartości X są tylko niewiele różni się od wartości z zestawu treningowego.

Nie wiem, czy to wyjaśnienie jest wystarczająco teoretyczne, ale mam nadzieję, że to pomaga. Próbowałem wyjaśnić problem dotyczący modelu regresji, ponieważ uważam go za bardziej intuicyjnie zrozumiały niż inne (SVM, sieci neuronowe ...).

Podczas budowania modelu należy podzielić dane na co najmniej zestaw szkoleniowy i zestaw testowy (niektóre dzielą dane na zestaw szkoleniowy, ewaluacyjny i krzyżowy). Zwykle 70% danych jest wykorzystywanych do zestawu treningowego, a 30% do oceny, a następnie, gdy budujesz model, musisz sprawdzić błąd szkolenia i błąd testu. Jeśli oba błędy są duże, oznacza to, że Twój model jest zbyt prosty (model ma duże odchylenie). Z drugiej strony, jeśli błąd treningu jest bardzo mały, ale istnieje duża różnica między błędem treningu a błędem testu, oznacza to, że model jest zbyt złożony (model ma dużą wariancję).

Najlepszym sposobem na wybór właściwego kompromisu jest wykreślenie błędów szkoleniowych i testowych dla modeli o różnej złożoności, a następnie wybranie takiego, w którym błąd testowy jest minimalny (patrz rysunek poniżej). wprowadź opis zdjęcia tutaj


5
To naprawdę świetna odpowiedź na pytanie, jak - nie tyle po co. Ale może to tylko niewłaściwe pytanie - naprawdę zależy nam na tym, co działa empirycznie, a nie na teorii.
Tamzin Blake,

@Thom: Tak naprawdę twoje pytanie jest drugim akapitem, a nie końcem pierwszego („nie rozumiem dlaczego”), ponieważ to, co działa empirycznie, polega na tym, że stajesz się nadmiernie dopasowany: Twój model doskonale radzi sobie z drobnymi dziwactwami w twoim dane treningowe, których nie ma w ogólnym przypadku.
wygrał

1
@winwaed Pytania brzmią: „Dlaczego tam jest…?”, „Dlaczego to jest?” i „Czy istnieje…?”, wszystkie wyraźnie oznaczone znakami zapytania. Znam to zjawisko, uważam je za intuicyjne i znam przykłady empiryczne, ale nie wiem, dlaczego tak jest, i wydaje się, że teoria informacji powinna udzielić mi odpowiedzi. Powyższy komentarz był tylko refleksją, że być może pytania „dlaczego” nie są szczególnie istotne, gdy empirycznie zweryfikujesz prawidłowości, które możesz wykorzystać.
Tamzin Blake,

7

To jest problem uogólnienia - to znaczy, jak dobrze nasza hipoteza poprawnie sklasyfikuje przyszłe przykłady, które nie są częścią zestawu treningowego. Zobacz ten fantastyczny przykład, co się stało, gdyby Twój model pasował tylko do posiadanych danych, a nie do nowego: prawo Titiusa-Bode'a


Dobry przykład - jest bardzo podobny do hipotez naukowych. Nadal mówimy o modelach, niezależnie od tego, czy są one statystycznymi modelami ML, czy modelami wszechświata.
wygrał

1

Jak dotąd @andreiser udzielił doskonałej odpowiedzi na drugą część pytania OP dotyczącą podziału danych szkoleniowych / testowych, a @niko wyjaśnił, jak uniknąć nadmiernego dopasowania, ale nikt nie doszedł do sedna pytania: dlaczego warto używać różnych danych do szkolenia i oceny pomaga nam uniknąć nadmiernego dopasowania.


Nasze dane są podzielone na:

  1. Instancje szkoleniowe
  2. Instancje sprawdzania poprawności
  3. Instancje testowe (ewaluacyjne)

M

M1,...,Mn

Ważne jest, aby zrozumieć, jakie są różne role wystąpień sprawdzania poprawności i testowania.

  1. Instancje treningowe - stosowane w celu dopasowania modeli.
  2. Instancje sprawdzania poprawności - używane do wyboru modelu
  3. Instancje testowe (ewaluacyjne) - używane do pomiaru dokładności modelu na nowych danych

Więcej informacji można znaleźć na stronie 222 elementów uczenia statystycznego: eksploracja danych, wnioskowanie i przewidywanie .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.