Ile danych jest wystarczających do wyszkolenia mojego modelu uczenia maszynowego?

11

Od dłuższego czasu pracuję nad uczeniem maszynowym i bioinformatyką, a dziś rozmawiałem z kolegą na temat głównych ogólnych kwestii eksploracji danych.

Mój kolega (który jest ekspertem w dziedzinie uczenia maszynowego) powiedział, że jego zdaniem najważniejszym praktycznym aspektem uczenia maszynowego jest, jak zrozumieć, czy zebrałeś wystarczającą ilość danych, aby wyszkolić swój model uczenia maszynowego .

To stwierdzenie mnie zaskoczyło, ponieważ nigdy nie przywiązywałem tak dużej wagi do tego aspektu ...

Potem szukałem więcej informacji w Internecie i znalazłem ten post na FastML.com zgłaszając jako ogólną zasadę, że potrzebujesz około 10 razy więcej instancji danych niż jest dostępnych funkcji .

Dwa pytania:

1 - Czy ten problem jest szczególnie istotny w uczeniu maszynowym?

2 - Czy reguła 10 razy działa? Czy istnieją inne odpowiednie źródła dla tego tematu?

DavideChicco.it
źródło
1. Tak 2. Jest to dobry poziom podstawowy, ale można go obejść dzięki regularyzacji w celu zmniejszenia efektywnych stopni swobody . Działa to szczególnie dobrze przy głębokim uczeniu się. 3. Możesz zdiagnozować sytuację na swoim problemie, wykreślając krzywą uczenia się wielkości próby względem błędu lub wyniku.
Emre
@ Emre Thanks! Czy możesz mi również zasugerować jakieś artykuły lub materiały do ​​przeczytania?
DavideChicco.it
Zazwyczaj będzie to omówione w podręczniku obok weryfikacji krzyżowej i innych technik weryfikacji modelu.
Emre
Reguła 10 razy jest świetna, jeśli możesz ją osiągnąć, ale w niektórych sytuacjach biznesowych jest ona po prostu niepraktyczna. Istnieje wiele sytuacji, w których liczba funkcji jest znacznie większa niż instancji danych (p >> n). Istnieją techniki uczenia maszynowego zaprojektowane specjalnie w takich sytuacjach.
Danych
Jeśli potrzebujesz szczegółowego wyjaśnienia, które pomoże ci zrozumieć wykres krzywej uczenia się, sprawdź to: scikit-yb.org/en/latest/api/model_selection/learning_curve.html
shrikanth singh

Odpowiedzi:

6

Reguła dziesięciokrotności wydaje mi się ogólną zasadą, ale prawdą jest, że wydajność algorytmu uczenia maszynowego może się zmniejszyć, jeśli nie dostarczysz jej wystarczającej ilości danych treningowych.

Praktycznym i opartym na danych sposobem ustalenia, czy masz wystarczającą ilość danych treningowych, jest wykreślenie krzywej uczenia się, takiej jak w poniższym przykładzie:

Krzywa uczenia się

Krzywa uczenia się przedstawia ewolucję błędów treningu i błędów testowych wraz ze wzrostem wielkości zestawu treningowego.

  • Błąd szkolenia zwiększa się wraz ze wzrostem rozmiaru zestawu danych, ponieważ coraz trudniej jest dopasować model uwzględniający rosnącą złożoność / zmienność zestawu treningowego.
  • Błąd testu zmniejsza się wraz ze wzrostem rozmiaru zestawu danych, ponieważ model jest w stanie lepiej uogólniać na podstawie większej ilości informacji.

Jak widać po prawej stronie wykresu, dwie linie wykresu mają tendencję do sięgania i asymptoty. Dlatego ostatecznie osiągniesz punkt, w którym zwiększenie rozmiaru zestawu danych nie będzie miało wpływu na wytrenowany model.

Odległość między błędem testu a asymptotami błędu treningu jest odzwierciedleniem nadmiernego dopasowania modelu. Ale co ważniejsze, ta fabuła mówi, czy potrzebujesz więcej danych. Zasadniczo, jeśli reprezentujesz błąd testu i szkolenia dla zwiększenia większych podzbiorów danych treningu, a linie wydają się nie osiągać asymptoty, powinieneś nadal gromadzić więcej danych.

Pablo Suau
źródło
W funkcji learning_curve powinienem zdać X_train, y_train: Only train subsetlubX, y: the entire dataset
Rookie_123
Ta krzywa jest tworzona w wyniku zastosowania krzyżowej weryfikacji w miarę zwiększania liczby próbek. Dlatego potrzebujesz całego zestawu danych.
Pablo Suau,
4
  1. Tak, problem jest z pewnością istotny, ponieważ twoja zdolność dopasowania modelu zależy od ilości posiadanych danych, ale co ważniejsze, zależy od jakości predyktorów.
  2. Reguła 10-krotna może być praktyczną regułą (i jest wiele innych), ale tak naprawdę zależy ona od przewidywalnej użyteczności twoich funkcji. Np. Zestaw danych tęczówki jest dość mały, ale łatwy do rozwiązania, ponieważ cechy zapewniają dobrą separację celów. I odwrotnie, możesz mieć 10 milionów przykładów i nie pasować, jeśli cechy są słabe.
HEITZ
źródło
Dzięki! Czy możesz mi również zasugerować jakieś artykuły lub materiały do ​​przeczytania?
DavideChicco.it