Przede wszystkim: wiem, że do wyszkolenia sieci neuronowej nie jest wymagana ogólna liczba próbek. Zależy to od zbyt wielu czynników, takich jak złożoność zadania, szum danych i tak dalej. Im więcej próbek treningowych mam, tym lepsza będzie moja sieć.
Zastanawiałem się jednak: czy teoretycznie jest możliwe trenowanie sieci neuronowej z mniejszą liczbą próbek treningowych niż wag, jeśli założę, że moje zadanie jest „wystarczająco proste”? Czy ktoś zna przykład, w którym to zadziałało? A może ta sieć prawie na pewno będzie słaba?
Jeśli rozważę na przykład regresję wielomianową, nie mogę dopasować wielomianu stopnia 4 (tj. Z 5 dowolnymi parametrami) tylko do 4 punktów danych. Czy istnieje podobna zasada dla sieci neuronowych, biorąc pod uwagę moją liczbę wag jako liczbę wolnych parametrów?
Odpowiedzi:
Ludzie robią to cały czas w dużych sieciach. Na przykład słynna sieć AlexNet ma około 60 milionów parametrów, podczas gdy ImageNet ILSVRC, na którym została pierwotnie przeszkolona, ma tylko 1,2 miliona obrazów.
Powodem, dla którego nie dopasowujesz 5-parametrowego wielomianu do 4 punktów danych, jest to, że zawsze może znaleźć funkcję, która dokładnie pasuje do twoich punktów danych, ale robi nonsensowne rzeczy gdzie indziej. Cóż, jak zauważono ostatnio , AlexNet i podobne sieci mogą dopasować dowolne losowe etykiety zastosowane do ImageNet i po prostu zapamiętać je wszystkie, prawdopodobnie dlatego, że mają o wiele więcej parametrów niż punkty treningowe. Ale coś o priorytetach sieci w połączeniu z procesem optymalizacji stochastycznego spadku gradientu oznacza, że w praktyce modele te mogą nadal uogólniać się na nowe punkty danych, jeśli nadasz im prawdziwe etykiety. Nadal nie rozumiemy, dlaczego tak się dzieje.
źródło
Nieokreślone systemy są niedookreślone tylko wtedy, gdy nie zostaną nałożone żadne inne ograniczenia niż dane. Trzymając się twojego przykładu, dopasowanie 4-stopniowego wielomianu do 4 punktów danych oznacza, że masz jeden stopień swobody nie ograniczony przez dane, co pozostawia ci linię (w przestrzeni współczynników) równie dobrych rozwiązań. Można jednak użyć różnych technik regularyzacji, aby problem można było rozwiązać. Na przykład, nakładając karę na normę L2 (tj. Sumę kwadratów) współczynników, gwarantujesz, że zawsze istnieje jedno unikalne rozwiązanie o najwyższej sprawności.
Istnieją również techniki regularyzacji dla sieci neuronowych, więc krótka odpowiedź na twoje pytanie brzmi „tak, możesz”. Szczególnie interesująca jest technika zwana „rezygnacją”, w której przy każdej aktualizacji wag losowo „upuszczasz” określony podzbiór węzłów z sieci. Oznacza to, że dla tej konkretnej iteracji algorytmu uczenia się udajesz, że te węzły nie istnieją. Bez rezygnacji sieć może nauczyć się bardzo złożonych reprezentacji danych wejściowych, które zależą od tego, czy wszystkie węzły współpracują ze sobą. Takie reprezentacje prawdopodobnie „zapamiętują” dane szkoleniowe, zamiast znajdować ogólne wzorce. Porzucenie zapewnia, że sieć nie może użyć wszystkich węzłów jednocześnie, aby dopasować dane szkolenia; musi być w stanie dobrze reprezentować dane, nawet gdy brakuje niektórych węzłów,
Zauważ również, że podczas korzystania z opuszczania, stopnie swobody w dowolnym punkcie podczas treningu mogą być faktycznie mniejsze niż liczba próbek treningowych, mimo że w sumie uczysz się więcej ciężarów niż próbek treningowych.
źródło