co to jest Overfitting w uczeniu maszynowym i jak tego uniknąć?

budowanie modelu uczenia maszynowego nie polega tylko na podawaniu danych, istnieje wiele niedociągnięć, które wpływają na dokładność każdego modelu. Nadmiar w uczeniu maszynowym jest jednym z takich niedoborów w uczeniu maszynowym, który utrudnia dokładność, jak również wydajność modelu. W tym artykule omówiono następujące tematy:

  • czym jest Przepełnianie w uczeniu maszynowym?
  • przykłady Overfitting
  • sygnał vs szum
  • co to jest Underfitting?
  • Jak wykryć przerost?
  • Jak uniknąć przepełnienia w uczeniu maszynowym
  • czym jest dobroć dopasowania?
  • kompromis między błędem a wariancją

czym jest przepasanie w uczeniu maszynowym?

mówi się, że model statystyczny jest przepełniony, gdy przekazujemy mu o wiele więcej danych niż jest to konieczne. Aby było to możliwe, wyobraź sobie, że próbujesz dopasować się do ponadgabarytowych ubrań.

overfitting w uczeniu maszynowym - edureka

gdy model pasuje do większej ilości danych niż faktycznie potrzebuje, zaczyna wyłapywać hałaśliwe Dane i niedokładne wartości w danych. W rezultacie zmniejsza się wydajność i dokładność modelu. Przyjrzyjmy się kilku przykładom przepełniania, aby zrozumieć, jak to się dzieje.

przykłady przepełnienia

przykład 1

jeśli weźmiemy przykład prostej regresji liniowej, szkolenie danych polega na ustaleniu minimalnego kosztu między najlepiej dopasowaną linią a punktami danych. Przechodzi przez wiele iteracji, aby znaleźć optymalne najlepsze dopasowanie, minimalizując koszty. Tu pojawia się overfitting.

regresja liniowa - overfitting w uczeniu maszynowym - edureka

linia widoczna na powyższym obrazku może dać bardzo skuteczny wynik dla nowego punktu danych. W przypadku overfittingu, kiedy uruchamiamy algorytm szkolenia na zbiorze danych, pozwalamy na redukcję kosztów z każdą liczbą iteracji.

zbyt długie uruchamianie tego algorytmu oznacza obniżenie kosztów, ale będzie również pasować do hałaśliwych danych z zestawu danych. Wynik byłby podobny do poniższego wykresu.

overfitting w uczeniu maszynowym - edureka

To może wyglądać wydajnie, ale tak naprawdę nie jest. Głównym celem algorytmu, takiego jak regresja liniowa, jest znalezienie dominującego trendu i odpowiednie dopasowanie punktów danych. Ale w tym przypadku linia pasuje do wszystkich punktów danych, co nie ma znaczenia dla skuteczności modelu w przewidywaniu optymalnych wyników dla nowych punktów danych wejściowych.

rozważmy teraz bardziej opisowy przykład za pomocą wyrażenia problemu.

przykład 2

Oświadczenie o problemie: Rozważmy, że chcemy przewidzieć, czy piłkarz trafi do klubu piłkarskiego poziomu 1 na podstawie jego / jej obecnych wyników w lidze poziomu 2.

teraz wyobraź sobie, trenujemy i dopasowujemy model z 10 000 takich zawodników z wynikami. Kiedy próbujemy przewidzieć wynik na oryginalnym zbiorze danych, powiedzmy, że mamy 99% dokładności. Ale dokładność innego zestawu danych wynosi około 50 procent. Oznacza to, że model nie uogólnia się dobrze na podstawie naszych danych treningowych i danych niewidocznych.

tak wygląda overfitting. Jest to bardzo powszechny problem w uczeniu maszynowym, a nawet nauce o danych. Teraz pozwól nam zrozumieć sygnał i szum.

sygnał kontra szum

w modelowaniu predykcyjnym sygnał odnosi się do prawdziwego wzorca bazowego, który pomaga modelowi poznać dane. Z drugiej strony szum jest nieistotny i losowe DANE w zbiorze danych. Aby zrozumieć pojęcie szumu i sygnału, weźmy przykład z prawdziwego życia.

Załóżmy, że chcemy modelować wiek a umiejętność czytania i pisania wśród dorosłych. Jeśli zbadamy bardzo dużą część populacji, znajdziemy wyraźny związek. To jest sygnał, podczas gdy szum zakłóca sygnał. Jeśli zrobimy to samo na miejscowej ludności, związek stanie się błotnisty. Będzie to miało wpływ na odstające i przypadkowość, na przykład, jeden dorosły poszedł do szkoły wcześnie lub niektórzy dorośli nie mogli sobie pozwolić na edukację, itp.

mówiąc o szumie i sygnale w kontekście uczenia maszynowego, dobry algorytm uczenia maszynowego automatycznie oddzieli sygnały od szumu. Jeśli algorytm jest zbyt złożony lub nieefektywny, może również nauczyć się szumu. Stąd przecenianie modelu. Pozwól nam również zrozumieć niedofitowość w uczeniu maszynowym.

co to jest Underfitting?

aby uniknąć przepełnienia, możemy przerwać szkolenie na wcześniejszym etapie. Ale może to również prowadzić do tego, że model nie jest w stanie nauczyć się na tyle danych treningowych, że może mieć trudności z uchwyceniem dominującego trendu. Jest to znane jako underfitting. Wynik jest taki sam jak przepełnienie, nieskuteczność w przewidywaniu wyników.

underfitting - overfitting w uczeniu maszynowym - edureka

teraz, gdy zrozumieliśmy, czym tak naprawdę jest underfitting i overfitting w uczeniu maszynowym, spróbujmy zrozumieć, w jaki sposób możemy wykryć overfitting w uczeniu maszynowym.

jak wykryć przerost?

głównym wyzwaniem w przypadku overfittingu jest oszacowanie dokładności działania naszego modelu za pomocą nowych danych. Nie bylibyśmy w stanie oszacować dokładności, dopóki nie przetestujemy jej.

aby rozwiązać ten problem, możemy podzielić początkowy zestaw danych na osobne zestawy danych treningowych i testowych. Dzięki tej technice możemy właściwie określić, jak dobrze nasz model będzie działał z nowymi danymi.

zrozummy to na przykładzie, wyobraźmy sobie, że otrzymujemy 90+ procent dokładności na zestawie treningowym i 50 procent dokładności na zestawie testowym. Wtedy automatycznie będzie to czerwona flaga dla modelu.

innym sposobem na wykrycie przepełnienia jest rozpoczęcie od uproszczonego modelu, który będzie służył jako punkt odniesienia.

dzięki takiemu podejściu, jeśli spróbujesz bardziej złożonych algorytmów, będziesz w stanie zrozumieć, czy dodatkowa złożoność jest w ogóle opłacalna dla modelu, czy nie. Jest również znany jako test maszynki Occama, w zasadzie wybiera uproszczony model w przypadku porównywalnej wydajności w przypadku dwóch modeli. Chociaż wykrywanie przepełnienia jest dobrą praktyką, ale istnieje kilka technik, aby zapobiec przepełnieniu, jak również. Przyjrzyjmy się, w jaki sposób możemy zapobiec nadmiernemu wyposażeniu w uczeniu maszynowym.

jak uniknąć przepełnienia w uczeniu maszynowym?

istnieje kilka technik, aby uniknąć przepełnienia w uczeniu maszynowym w sumie wymienione poniżej.

  1. cross-Validation

  2. trening z większą ilością danych

  3. usuwanie cech

  4. wczesne zatrzymanie

  5. Regularyzacja

  6. zespół

1. Cross-Validation

jedną z najpotężniejszych funkcji pozwalających uniknąć / zapobiec przepełnieniu jest cross-validation. Ideą tego jest wykorzystanie wstępnych danych treningowych do generowania mini-testów pociągów, a następnie wykorzystanie tych podziałów do dostrojenia modelu.

w standardowej walidacji K-fold dane są dzielone na K-podzbiory znane również jako fałdy. Następnie algorytm jest szkolony iteracyjnie na fałdach k-1, podczas gdy pozostałe fałdy są używane jako zestaw testowy, znany również jako fałd holdout.

cross-validation - overfitting w uczeniu maszynowym - edureka cross-validation pomaga nam dostroić hiperparametry tylko za pomocą oryginalnego zestawu treningowego. Zasadniczo utrzymuje zestaw testowy osobno jako prawdziwy niewidoczny zestaw danych do wyboru ostatecznego modelu. W związku z tym, unikanie overfitting całkowicie.

2. Trening z większą ilością danych

ta technika może nie działać za każdym razem, jak również omówiliśmy w powyższym przykładzie, gdzie trening ze znaczną liczbą populacji pomaga modelowi. Zasadniczo pomaga modelowi lepiej zidentyfikować sygnał.

ale w niektórych przypadkach zwiększone dane mogą również oznaczać podawanie większego szumu do modelu. Kiedy trenujemy model z większą ilością danych, musimy upewnić się, że dane są czyste i wolne od przypadkowości i niespójności.

3. Usuwanie funkcji

chociaż niektóre algorytmy mają automatyczny wybór funkcji. Dla znacznej liczby osób, które nie mają wbudowanego wyboru funkcji, możemy ręcznie usunąć kilka nieistotnych funkcji z funkcji wejściowych, aby poprawić uogólnienie.

jednym ze sposobów jest wyciągnięcie wniosku, w jaki sposób funkcja pasuje do modelu. Jest to bardzo podobne do debugowania kodu linia po linii.

w przypadku, gdy funkcja nie jest w stanie wyjaśnić istotności w modelu, możemy po prostu zidentyfikować te cechy. Możemy nawet użyć kilku heurystyk wyboru funkcji dla dobrego punktu wyjścia.

4. Wczesne zatrzymanie

Kiedy model jest trenowany, możesz zmierzyć, jak dobrze model działa na podstawie każdej iteracji. Możemy to zrobić do momentu, w którym iteracje poprawią wydajność modelu. Następnie model przecenia dane treningowe, ponieważ uogólnienie słabnie po każdej iteracji.

early stopping - overfitting w uczeniu maszynowym - edureka

tak więc zasadniczo wczesne zatrzymanie oznacza zatrzymanie procesu szkolenia, zanim model przejdzie przez punkt, w którym model zaczyna przepełniać dane treningowe. Technika ta jest najczęściej stosowana w uczeniu głębokim.

5. Regularyzacja

zasadniczo oznacza sztucznie wymuszanie prostszego modelu poprzez zastosowanie szerszego zakresu technik. To całkowicie zależy od rodzaju ucznia, którego używamy. Na przykład, możemy przycinać drzewo decyzyjne, używać przerwania w sieci neuronowej lub dodać parametr kary do funkcji kosztowej w regresji.

dość często regularyzacja jest również hiperparametrem. Oznacza to, że można go również dostroić poprzez weryfikację krzyżową.

6. Ensembling

technika ta zasadniczo łączy Przewidywania z różnych modeli uczenia maszynowego. Poniżej wymieniono dwie z najczęstszych metod ensemblingu:

  • próby zapakowania w celu zmniejszenia szansy przecenia modeli

  • próby zwiększenia elastyczności prognostycznej prostszych modeli

chociaż obie są metodami ensemble, podejście całkowicie zaczyna się z przeciwnych kierunków. Bagging wykorzystuje złożone modele bazowe i stara się wygładzić ich prognozy, podczas gdy boosting używa prostych modeli bazowych i próbuje zwiększyć swoją zagregowaną złożoność.

co to jest dobre dopasowanie?

w modelowaniu statystycznym dobroć dopasowania odnosi się do tego, jak bardzo wyniki lub przewidywane wartości odpowiadają obserwowanym lub rzeczywistym wartościom. Model, który nauczył szum zamiast sygnału jest przepełniony, ponieważ będzie pasował do zestawu danych treningowych, ale będzie miał gorszą wydajność z nowym zestawem danych.

kompromis między odchyleniem a wariancją

zarówno wariancja, jak i odchylenie są formami błędów predykcyjnych w uczeniu maszynowym. Kompromis między wysoką wariancją A wysokim odchyleniem jest bardzo ważną koncepcją w statystyce i uczeniu maszynowym. Jest to jedna koncepcja, która wpływa na wszystkie nadzorowane algorytmy uczenia maszynowego.

kompromis między wariancją a odchyleniem ma bardzo znaczący wpływ na określenie złożoności, niedoskonałości i nadmiernego dopasowania dla dowolnego modelu uczenia maszynowego.

Bias

to nic innego jak różnica między przewidywanymi wartościami a rzeczywistymi lub rzeczywistymi wartościami w modelu. Nie zawsze jest łatwo modelowi uczyć się na dość złożonych sygnałach.

wyobraźmy sobie dopasowanie regresji liniowej do modelu z nieliniowymi danymi. Bez względu na to, jak efektywnie model uczy się obserwacji, nie będzie efektywnie modelował krzywych. Jest znany jako underfitting.

wariancja

odnosi się do wrażliwości modelu na określone zestawy danych treningowych. Algorytm wysokiej wariancji wytworzy dziwaczny model, który drastycznie różni się od zestawu treningowego.

wyobraź sobie algorytm, który pasuje do nieskrępowanego i superelastycznego modelu, będzie również uczyć się z szumu w zestawie treningowym powodującego przepełnienie.

Bias-wariancja

algorytm uczenia maszynowego nie może być postrzegany jako jednorazowa metoda szkolenia modelu, zamiast tego jest procesem powtarzalnym.

algorytmy Low variance-High bias są mniej złożone, o prostej i sztywnej strukturze.

  • będą trenować modele, które są spójne, ale średnio niedokładne.

  • obejmują one algorytmy liniowe lub parametryczne, takie jak regresja, naiwność Bayesa itp.

algorytmy High variance-low bias są bardziej złożone, o elastycznej strukturze.

  • będą trenować modele, które są niespójne, ale średnio dokładne.

  • obejmują one algorytmy nieliniowe lub nieparametryczne, takie jak drzewa decyzyjne, najbliższy sąsiad itp.

to prowadzi nas do końca tego artykułu, gdzie nauczyliśmy się przepełniania uczenia maszynowego i różnych technik, aby tego uniknąć. Mam nadzieję, że wszystko, co zostało Ci udostępnione w tym samouczku, jest jasne.

Jeśli uważasz, że ten artykuł na temat „Overfitting w uczeniu maszynowym” jest odpowiedni, sprawdź szkolenie certyfikacyjne Edureka Machine Learning, zaufaną firmę edukacyjną online z siecią ponad 250 000 zadowolonych uczniów na całym świecie.

jesteśmy tutaj, aby pomóc ci na każdym kroku w Twojej podróży i opracować program nauczania, który jest przeznaczony dla studentów i profesjonalistów, którzy chcą zostać inżynierem uczenia maszynowego. Kurs został zaprojektowany, aby dać ci przewagę w programowaniu w Pythonie i przeszkolić Cię zarówno w podstawowych, jak i zaawansowanych koncepcjach Pythona wraz z różnymi algorytmami uczenia maszynowego, takimi jak SVM, drzewo decyzyjne itp.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.