Problem, który często pojawiałem się w kontekście sieci neuronowych, w szczególności sieci neuronowych, polega na tym, że są „głodne danych” - to znaczy, że nie działają one dobrze, chyba że mamy duży zestaw danych z którymi trenować sieć.
Rozumiem, że wynika to z faktu, że sieci sieciowe, zwłaszcza sieci głębokie, mają dużą liczbę stopni swobody. Tak więc jako model, sieć wirtualna ma bardzo dużą liczbę parametrów, a jeśli liczba parametrów modelu jest duża w stosunku do liczby punktów danych treningowych, występuje zwiększona tendencja do nadmiernego dopasowania.
Ale dlaczego ten problem nie został rozwiązany przez regularyzację? O ile mi wiadomo, sieci NNet mogą wykorzystywać regularyzację L1 i L2, a także mają własne metody regulowania, takie jak porzucanie, które mogą zmniejszyć liczbę parametrów w sieci.
Czy możemy wybrać nasze metody regularyzacji, aby wymuszały oszczędność i ograniczały rozmiar sieci?
Aby wyjaśnić moje myślenie: powiedzmy, że do modelowania naszych danych używamy dużej sieci Deep NNet, ale zestaw danych jest niewielki i można go modelować za pomocą modelu liniowego. Dlaczego więc wagi sieci nie zbiegają się w taki sposób, że jeden neuron symuluje regresję liniową, a wszystkie pozostałe zbiegają się w zera? Dlaczego regularyzacja nie pomaga w tym?
źródło
Odpowiedzi:
Prostym sposobem na wyjaśnienie tego jest to, że regularyzacja pomaga nie dopasować się do szumu, nie robi wiele w zakresie określania kształtu sygnału. Jeśli myślisz o głębokim uczeniu się jako o wielkim chwalebnym aproksymatorze funkcji, zdajesz sobie sprawę, że potrzeba dużej ilości danych, aby zdefiniować kształt złożonego sygnału.
Gdyby nie było hałasu, zwiększenie złożoności NN spowodowałoby lepsze przybliżenie. Rozmiar NN nie byłby karą, większy byłby lepszy w każdym przypadku. Rozważ przybliżenie Taylora, więcej funkcji jest zawsze lepszych dla funkcji niepolomomicznej (ignorując problemy z dokładnością liczbową).
Rozkłada się w obecności hałasu, ponieważ zaczynasz dopasowywać się do hałasu. Tak więc przychodzi regularyzacja, która może pomóc: może zmniejszyć dopasowanie do hałasu, co pozwala nam budować większe NN w celu dopasowania do problemów nieliniowych.
Poniższa dyskusja nie jest niezbędna do mojej odpowiedzi, ale dodałem częściowo, aby odpowiedzieć na niektóre komentarze i zmotywować główny fragment powyższej odpowiedzi. Zasadniczo reszta mojej odpowiedzi jest jak francuskie pożary, które pochodzą z burgerowym posiłkiem, możesz to pominąć.
(Ir) dotyczy Przypadek: regresja wielomianowa
Następnie dopasujemy wielomiany o stopniowo wyższym porządku do małego, bardzo głośnego zestawu danych z 7 obserwacjami:
Możemy obserwować to, co wiele osób znało na temat wielomianów: są one niestabilne i zaczynają gwałtownie oscylować wraz ze wzrostem kolejności wielomianów.
Problemem nie są jednak same wielomiany. Problemem jest hałas. Kiedy dopasowujemy wielomiany do zaszumionych danych, część dopasowania dotyczy szumu, a nie sygnału. Oto te same dokładne wielomiany pasujące do tego samego zestawu danych, ale z całkowicie usuniętym szumem. Pasowania są świetne!
Zauważ też, że wielomiany wyższego rzędu nie pasują tak dobrze jak kolejność 6, ponieważ nie ma wystarczającej liczby obserwacji, aby je zdefiniować. Spójrzmy więc na to, co stanie się ze 100 obserwacjami. Na poniższym wykresie widać, jak większy zestaw danych pozwolił nam dopasować wielomiany wyższego rzędu, osiągając w ten sposób lepsze dopasowanie!
Świetnie, ale problem polega na tym, że zwykle mamy do czynienia z hałaśliwymi danymi. Zobacz, co się stanie, jeśli dopasujesz to samo do 100 obserwacji bardzo hałaśliwych danych, patrz tabela poniżej. Wracamy do punktu wyjścia: wielomiany wyższego rzędu wytwarzają okropne drgania oscylacyjne. Tak więc zwiększenie zestawu danych nie pomogło tak bardzo w zwiększeniu złożoności modelu, aby lepiej wyjaśnić dane. Dzieje się tak, ponieważ złożony model lepiej pasuje nie tylko do kształtu sygnału, ale także do kształtu szumu.
Na koniec spróbujmy trochę kiepskiej regulacji tego problemu. Poniższy wykres pokazuje regularyzację (z różnymi karami) zastosowaną do zamówienia 9 regresji wielomianowej. Porównaj to z powyższym dopasowaniem wielomianu rzędu (mocy) 9: przy odpowiednim poziomie regularyzacji możliwe jest dopasowanie wielomianów wyższego rzędu do zaszumionych danych.
Na wszelki wypadek nie było jasne: nie sugeruję używania w ten sposób regresji wielomianowej. Wielomiany nadają się do lokalnych dopasowań, więc wielomian częściowy może być dobrym wyborem. Dopasowywanie do nich całej domeny jest często złym pomysłem, ponieważ są wrażliwe na hałas, tak jak powinno to wynikać z powyższych wykresów. To, czy szum jest liczbowy czy z jakiegoś innego źródła, nie jest tak ważne w tym kontekście. hałas jest hałasem, a wielomiany zareagują na to z pasją.
źródło
W tej chwili nie jest do końca zrozumiałe, kiedy i dlaczego niektóre metody regularyzacji odnoszą sukcesy i porażki. W rzeczywistości nie jest w ogóle zrozumiałe, dlaczego głębokie uczenie się działa przede wszystkim.
Biorąc pod uwagę fakt, że wystarczająco głęboka sieć neuronowa może doskonale zapamiętać większość dobrze wychowanych danych treningowych, istnieje znacznie więcej niewłaściwych rozwiązań niż w przypadku konkretnej głębokiej sieci. Mówiąc ogólnie, regularyzacja jest próbą ograniczenia ekspresji modeli dla tych „złych” rozwiązań - gdzie „zło” jest zdefiniowane przez heurystykę, które naszym zdaniem są ważne dla konkretnej dziedziny . Ale często trudno jest zdefiniować heurystykę w taki sposób, aby nie stracić z nią „właściwej” ekspresji. Świetnym tego przykładem są kary L2.
Bardzo niewiele metod, które można by uznać za formę regularyzacji, ma ogólne zastosowanie do wszystkich obszarów zastosowania ML. Problemy z wizją, NLP i prognozami strukturalnymi mają swoją własną książkę kucharską na temat technik regularyzacji, które okazały się skuteczne eksperymentalnie w tych konkretnych domenach. Ale nawet w tych domenach techniki te są skuteczne tylko w określonych okolicznościach. Na przykład wydaje się, że normalizacja partii w głębokich sieciach rezydualnych powoduje, że porzucanie jest zbędne, mimo że wykazano, że obie niezależnie poprawiają uogólnienie.
W odrębnej nucie myślę, że termin regularyzacja jest tak szeroki, że utrudnia zrozumienie czegokolwiek na ten temat. Biorąc pod uwagę fakt, że zwoje ograniczają przestrzeń parametrów wykładniczo w odniesieniu do pikseli, można rozważyć splotową sieć neuronową jako formę regularyzacji w waniliowej sieci neuronowej.
źródło
Jedną klasą twierdzeń, które pokazują, dlaczego ten problem jest fundamentalny, są twierdzenia o braku darmowego lunchu . Dla każdego problemu z ograniczonymi próbkami, w którym pomaga pewna regularyzacja, istnieje inny problem, w którym ta sama regularyzacja pogorszy sytuację. Jak zauważa Austin, ogólnie uważamy, że regularyzacja L1 / L2 jest pomocna w przypadku wielu problemów w świecie rzeczywistym, ale jest to jedynie obserwacja, a ze względu na twierdzenia NFL nie ma ogólnych gwarancji.
źródło
Powiedziałbym, że na wysokim poziomie indukcyjne napięcie DNN (głębokie sieci neuronowe) jest silne, ale nieco zbyt luźne lub niewystarczająco wyrażone. Rozumiem przez to, że DNN przechwytują wiele statystyk powierzchni na temat tego, co się dzieje, ale nie docierają do głębszej struktury przyczynowej / kompozycyjnej wysokiego poziomu. (Można postrzegać zwoje jako specyfikację indukcyjnego nastawienia biedaka).
Ponadto uważa się, że społeczność ucząca się maszynowo uważa, że najlepszym sposobem na uogólnienie (robienie dobrych wniosków / prognoz z małymi danymi) jest znalezienie najkrótszego programu, który dał początek danym. Ale indukcja / synteza programu jest trudna i nie mamy dobrego sposobu, aby zrobić to skutecznie. Zamiast tego polegamy na ścisłym przybliżeniu, jakim jest wyszukiwanie obwodów, i wiemy, jak to zrobić za pomocą propagacji wstecznej. Tutaj Ilya Sutskever przedstawia przegląd tego pomysłu.
Aby zilustrować różnicę w mocy uogólniającej modeli reprezentowanych jako rzeczywiste programy w porównaniu z modelami do głębokiego uczenia się, pokażę ten w tym artykule: Symulacja jako silnik zrozumienia sceny fizycznej .
Chodzi mi o to, że dopasowanie w C jest naprawdę dobre, ponieważ model zawiera właściwe uprzedzenia na temat tego, jak ludzie dokonują fizycznych osądów. Wynika to w dużej mierze z tego, że modeluje on rzeczywistą fizykę (pamiętaj, że to prawdziwy silnik fizyki) i może poradzić sobie z niepewnością.
Teraz oczywiste pytanie brzmi: czy możesz to zrobić dzięki głębokiej nauce? Oto, co Lerer i in. Zrobili w tej pracy: Uczenie się fizycznej intuicji wież blokowych przez przykład
Ich model:
Ich model jest całkiem dobry w wykonywanym zadaniu (przewidywanie liczby spadających bloków, a nawet ich kierunku opadania)
Ale ma dwie główne wady:
Laboratorium Tenenbauma przeprowadziło badanie porównawcze dotyczące tych dwóch podejść: Porównawcza ocena przybliżonej symulacji probabilistycznej i głębokich sieci neuronowych jako relacji ze zrozumienia ludzkiej sceny fizycznej .
Cytując sekcję dyskusji:
Wracając do rzeczy, którą chcę zrobić: chociaż sieci neuronowe są potężnymi modelami, wydaje się, że brakuje im zdolności do reprezentowania struktury przyczynowej, kompozycyjnej i złożonej. I nadrabiają to wymagając dużej ilości danych treningowych.
I wracając do pytania: zaryzykowałbym stwierdzenie, że szerokie obciążenie indukcyjne i fakt, że sieci neuronowe nie modelują przyczynowości / kompozycyjności, powodują, że potrzebują one tak wielu danych treningowych. Regularyzacja nie jest świetnym rozwiązaniem ze względu na sposób ich generalizacji. Lepszym rozwiązaniem byłaby zmiana ich uprzedzeń, jak obecnie Hinton wypróbowuje z kapsułkami do modelowania geometrii całej / części lub sieciami interakcji do modelowania relacji.
źródło
Przede wszystkim istnieje wiele metod regularyzacji zarówno w użyciu, jak i w aktywnych badaniach dogłębnej nauki. Więc twoje założenie nie jest do końca pewne.
Jeśli chodzi o stosowane metody, zanik masy jest bezpośrednim zastosowaniem kary L2 na odważnikach poprzez opadanie gradientu. Weź gradient kwadratowej normy swoich ciężarów i dodaj do nich mały krok w tym kierunku przy każdej iteracji. Rezygnacja jest również uważana za formę regularyzacji, która nakłada rodzaj uśrednionej struktury. Wydaje się to sugerować coś w rodzaju kary L2 za zespół sieci o wspólnych parametrach.
Prawdopodobnie możesz podnieść poziom tych lub innych technik, aby zająć się małymi próbkami. Należy jednak pamiętać, że regularyzacja oznacza narzucenie wcześniejszej wiedzy. Kara L2 na odważnikach implikuje na przykład Gaussa przed ważeniem. Zwiększenie ilości regularyzacji zasadniczo oznacza, że twoja wcześniejsza wiedza jest coraz bardziej pewna i wpływa na twój wynik w stosunku do tej wcześniejszej. Możesz to zrobić, a to będzie mniej pasować, ale stronnicza moc może być do kitu. Oczywiście rozwiązaniem jest lepsza wcześniejsza wiedza. W przypadku rozpoznawania obrazów oznaczałoby to znacznie bardziej uporządkowane priory w zakresie statystyki twojego problemu. Problem z tym kierunkiem polega na tym, że narzucasz wiele specjalistycznej wiedzy w dziedzinie, a unikanie konieczności narzucania ludzkiej wiedzy było jednym z powodów, dla których wykorzystałeś głębokie uczenie się.
źródło
Sieci neuronowe można trenować w ten sposób. Jeśli zastosowana zostanie odpowiednia regularyzacja L1, wówczas znaczną część ciężarów można wyzerować, co spowoduje, że sieci neuronowe będą zachowywać się jak konkatenacja 1 lub mniej neuronów regresji liniowej i wielu innych neuronów zerowych. Tak więc - regularyzacje L1 / L2 lub podobne mogą być wykorzystane do ograniczenia wielkości lub mocy reprezentacyjnej sieci neuronowej.
W rzeczywistości rozmiar samego modelu jest rodzajem regularyzacji - jeśli zrobisz duży model, oznacza to, że wstrzykujesz wcześniejszą wiedzę na temat problemu, to znaczy, że problemy są bardzo złożone, więc wymaga modelu o dużej mocy reprezentacyjnej. Jeśli uczynisz model małym, oznacza to, że wstrzykujesz wiedzę, że problem jest prosty, więc model nie potrzebuje dużej pojemności.
A to oznacza, że regularyzacja L2 nie sprawi, że sieci będą „rzadkie”, jak opisano, ponieważ regularyzacja L2 wstrzykuje wcześniejszą wiedzę, że wkład każdego neuronu (masy) powinien być niewielki, ale niezerowy. Tak więc sieć używałaby każdego z neuronów, a nie tylko małego zestawu neuronów.
źródło
Kluczową kwestią jest to, że regularyzacja nie zawsze jest pomocna. Raczej regularyzacja w kierunku tego, co prawdopodobnie powinno być prawdą, jest bardzo pomocna, ale regularyzacja w złym kierunku jest wyraźnie zła.
Ale teraz załóżmy, że nasze dane to obrazy kotów karmionych w głębokie sieci neuronowe. Jeśli „spiczaste uszy” są w rzeczywistości bardzo pomocne w identyfikacji kotów, być może chcielibyśmy zmniejszyć karę, aby nadać tej zdolności przewidywania. Ale nie mamy pojęcia, gdzie w sieci będzie to reprezentowane! Wciąż możemy wprowadzić kary, aby jakaś niewielka część systemu nie zdominowała całej sieci, ale poza tym trudno jest wprowadzić regularyzację w znaczący sposób.
Podsumowując, niezwykle trudno jest wprowadzić wcześniejsze informacje do systemu, którego nie rozumiemy.
źródło