Sieci neuronowe a wszystko inne


15

Nie znalazłem zadowalającej odpowiedzi na to w Google .

Oczywiście, jeśli dane, które mam, są rzędu milionów, to głębokie uczenie się jest drogą.

Przeczytałem, że kiedy nie mam dużych zbiorów danych, może lepiej jest zastosować inne metody uczenia maszynowego. Podany powód jest nadmierny. Uczenie maszynowe: tj. Patrzenie na dane, ekstrakcje funkcji, tworzenie nowych funkcji z tego, co jest gromadzone itp. Rzeczy, takie jak usuwanie silnie skorelowanych zmiennych itp. Cała maszyna ucząca się 9 metrów.

Zastanawiam się: dlaczego sieci neuronowe z jedną ukrytą warstwą nie są panaceum na problemy z uczeniem maszynowym? Są to uniwersalne estymatory, nadmiernym dopasowaniem można zarządzać za pomocą rezygnacji, regularyzacji l2, regularyzacji l1, normalizacji partii. Szybkość treningu nie stanowi problemu, jeśli mamy zaledwie 50 000 przykładów treningu. Są lepsze w czasie testu niż, powiedzmy, losowe lasy.

Dlaczego więc nie - wyczyścić dane, przypisać brakujące wartości, tak jak zwykle, wyśrodkować dane, ujednolicić dane, wrzucić je do zestawu sieci neuronowych z jedną ukrytą warstwą i zastosować regularyzację, aż nie zobaczysz nadmiernego dopasowania, a następnie trenuj do końca. Brak problemów z eksplozją gradientów lub znikaniem gradientów, ponieważ jest to tylko 2-warstwowa sieć. Jeśli potrzebne są głębokie warstwy, oznacza to, że należy nauczyć się cech hierarchicznych, a następnie inne algorytmy uczenia maszynowego również nie są dobre. Na przykład SVM jest siecią neuronową z tylko utratą zawiasów.

Doceniony zostanie przykład, w którym jakiś inny algorytm uczenia maszynowego byłby lepszy od starannie uregulowanej 2-warstwowej (może 3?) Sieci neuronowej. Możesz podać mi link do problemu, a ja wytrenowałbym najlepszą sieć neuronową, jaką mogę, i możemy zobaczyć, czy 2-warstwowe lub 3-warstwowe sieci neuronowe nie spełniają żadnego innego algorytmu uczenia maszynowego.


14
Sieci neuronowe SĄ algorytmem uczenia maszynowego ...
Matthew Drury

6
Istnieją pewne dziedziny, w których głębokie uczenie się ma zasadnicze znaczenie, takie jak rozpoznawanie obrazów, ale w większości innych obszarów są one zdominowane przez zwiększanie gradientu, co jasno wynika z wyników zawodów Kaggle.
Jake Westfall

1
@MatthewDrury - Rzeczywiście tak jest! przepraszam za kiepską terminologię. Mam jednak nadzieję, że wiadomość została przekazana. zmieniając jednak pytanie, aby być bardziej solidnym. Dziękujemy za zwrócenie uwagi
MiloMinderbinder

1
Jeśli chodzi o głębokość sieci, zdecydowanie sprawdź to: stats.stackexchange.com/questions/182734
jld

Odpowiedzi:


31

Każdy algorytm uczenia maszynowego ma inne nastawienie indukcyjne, więc nie zawsze właściwe jest stosowanie sieci neuronowych. Tendencji liniowej zawsze można się najlepiej nauczyć na podstawie prostej regresji liniowej, a nie zestawu sieci nieliniowych.

Jeśli spojrzysz na zwycięzców poprzednich konkursów Kaggle , z wyjątkiem jakichkolwiek wyzwań związanych z danymi obrazu / wideo, szybko przekonasz się, że sieci neuronowe nie są rozwiązaniem wszystkiego. Niektóre poprzednie rozwiązania tutaj.

stosuj regularyzację, aż nie zobaczysz nadmiernego dopasowania, a następnie trenuj ją do końca

Nie ma gwarancji, że można zastosować wystarczającą regularyzację, aby zapobiec nadmiernemu dopasowaniu bez całkowitego zniszczenia zdolności sieci do nauki czegokolwiek. W prawdziwym życiu wyeliminowanie luki w testowaniu pociągów jest rzadko wykonalne, dlatego też dokumenty nadal informują o wydajności pociągów i testów.

są uniwersalnymi estymatorami

Dotyczy to tylko limitu posiadania nieograniczonej liczby jednostek, co nie jest realistyczne.

możesz podać mi link do problemu, a ja wytrenowałbym najlepszą sieć neuronową, jaką mogę, i możemy zobaczyć, czy 2-warstwowe lub 3-warstwowe sieci neuronowe nie spełniają żadnego innego algorytmu uczenia maszynowego

Przykładowy problem, który, jak sądzę, sieci neuronowej nigdy nie byłby w stanie rozwiązać: Biorąc pod uwagę liczbę całkowitą, sklasyfikuj jako liczbę pierwszą lub drugą.

Wierzę, że można to doskonale rozwiązać za pomocą prostego algorytmu, który iteruje wszystkie prawidłowe programy w rosnącej długości i znajduje najkrótszy program, który poprawnie identyfikuje liczby pierwsze. Rzeczywiście, ten 13-znakowy ciąg wyrażeń regularnych może pasować do liczb pierwszych, które nie byłyby trudne do obliczeniowo wyszukiwania.


Czy regularyzacja może zastąpić model, który pasuje do modelu, który ma moc reprezentacyjną poważnie zahamowaną przez regularyzację? Czy nie zawsze znajdzie się takie słodkie miejsce?

Tak, jest słaby punkt, ale zwykle kończy się zbyt wiele. Zobacz ten rysunek:

http://gluon.mxnet.io/_images/regularization-overfitting.png

Jeśli odwrócisz oś poziomą i oznaczysz ją etykietą jako „ilość regularyzacji”, będzie ona dość dokładna - jeśli wykonasz regulację, aż w ogóle nie będzie przeregulowania, twój błąd będzie ogromny. „Sweet spot” pojawia się, gdy jest trochę przeregulowania, ale nie za dużo.

Jak to jest „prosty algorytm, który iteruje wszystkie prawidłowe programy w rosnącej długości i znajduje najkrótszy program, który poprawnie identyfikuje liczby pierwsze”. algorytm, który się uczy?

θH.(θ)θ


więc jeśli dostanę cię poprawnie, wysuwasz argument, że jeśli dane nie są znaczne, głęboka sieć nigdy nie osiągnie dokładności walidacji najlepszej płytkiej sieci, biorąc pod uwagę najlepsze hiperparametry dla obu?

Tak. Oto brzydka, ale miejmy nadzieję skuteczna postać, która zilustruje mój punkt widzenia. https://i.imgur.com/nM3aI2l.png

ale to nie ma sensu. głęboka sieć może po prostu nauczyć się mapowania 1-1 nad płytkim

Pytanie nie brzmi „czy to możliwe”, ale „czy to zrobi”, a jeśli trenujesz propagację wsteczną, odpowiedź prawdopodobnie nie jest.

Omówiliśmy fakt, że większe sieci zawsze będą działać lepiej niż mniejsze sieci

Bez dalszych kwalifikacji twierdzenie to jest po prostu błędne.


Dziękuję za Twoją odpowiedź! Czy regularyzacja może zastąpić model, który pasuje do modelu, który ma moc reprezentacyjną poważnie zahamowaną przez regularyzację? Czy nie zawsze znajdzie się takie słodkie miejsce?
MiloMinderbinder

Odnośnie twojego problemu z zabawkami. Jak to jest „prosty algorytm, który iteruje wszystkie prawidłowe programy w rosnącej długości i znajduje najkrótszy program, który poprawnie identyfikuje liczby pierwsze”. algorytm, który się uczy?
MiloMinderbinder

Zwróć uwagę na notatki z wykładu cs231n - „Dyskutowaliśmy o tym, że większe sieci zawsze będą działały lepiej niż mniejsze sieci, ale ich większa pojemność modelu musi zostać odpowiednio rozwiązana przy silniejszej regularyzacji (takiej jak większy spadek masy), w przeciwnym razie mogą się przeregulować. W kolejnych sekcjach zobaczymy więcej form regularyzacji (zwłaszcza rezygnacji). cs231n.github.io/neural-networks-1
MiloMinderbinder

@ user46478 odpowiedziałem na powyższe pytania, edytując odpowiedź
shimao

„Nie ma gwarancji, że można zastosować wystarczającą regularyzację, aby zapobiec nadmiernemu dopasowaniu bez całkowitego zniszczenia zdolności sieci do uczenia się czegokolwiek”. - Przepraszam, ale nadal nie rozumiem tego oświadczenia. Biorę dane szkoleniowe, {train, val} podzielone, tworzę największą sieć, na jaką pozwala moja maszyna, zwiększam prawdopodobieństwo rezygnacji, dopóki nie zobaczę zminimalizowanego błędu walidacji wśród błędów walidacji, które otrzymuję przy różnych prawdopodobieństwach rezygnacji. Czy ten proces może prowadzić do bezużyteczności z nadmiernie dopasowanego modelu bez przechodzenia przez dobry model?
MiloMinderbinder

11

Dodałbym, że nie ma czegoś takiego jak panaceum na uczenie maszynowe:

Według twierdzenia o braku darmowego lunchu :

Jeśli algorytm dobrze radzi sobie z pewną klasą problemów, to koniecznie płaci za to obniżoną wydajnością na zestawie wszystkich pozostałych problemów


Jest to bardzo przygnębiające (ale nie martw się, nie będę się kłócił z konsekwencjami). 1. Czytając to rozumiem, że chodzi o algorytmy o tym samym rozkładzie funkcji, które mogą się nauczyć (co oznaczałoby również tę samą domenę). Tak więc sieci neuronowe można liczyć jedynie na uniwersalne estymatory. 2. Nie mówi to o tym, jak szybko przeszukiwana jest przestrzeń funkcji. Czy możemy powiedzieć, że sieć neuronowa z 2 ukrytymi warstwami jest koniecznie równoważna lub lepsza od sieci neuronowej z jedną ukrytą warstwą na każdy problem? myślę, że założenie ciągłości ma tutaj wiele do czynienia
MiloMinderbinder

z odpowiednim dostrajaniem hiperparametrów dwie ukryte warstwowe sieci neuronowe przeskakują przez funkcje, które mają podobne współdomeny szybciej niż pojedyncza ukryta warstwowa sieć neuronowa. twoje wkłady?
MiloMinderbinder

1
„Czy możemy powiedzieć, że sieć neuronowa z 2 ukrytymi warstwami jest koniecznie równoważna lub lepsza od sieci neuronowej z jedną ukrytą warstwą na każdy problem”. Nie, niestety nie. Jako przeciwny przykład wyobraźmy sobie regresję logistyczną (nn z zerowymi ukrytymi warstwami) w porównaniu do 1-warstwowej sieci neuronowej z liczbą ukrytych jednostek równą liczbie punktów danych dla w pełni oddzielnego zestawu danych. Nie ma informacji na temat granicy decyzji, której lr nie jest w stanie uchwycić, a wysoka złożoność nn prawdopodobnie się przewyższy
3684792

3
Zgadzam się z oświadczeniem tutaj, ale chciałem dodać standardowe zastrzeżenie do NFL, również wzięte ze strony wikipedii: „zauważ, że NFL ma zastosowanie tylko wtedy, gdy funkcja docelowa jest wybrana z jednolitego rozkładu wszystkich możliwych funkcji”.
mkt - Przywróć Monikę

1
@ user46478 Zgadzam się z zasadnością twierdzenia NFL w odpowiedzi na twoje pytanie „dlaczego sieci neuronowe z jedną ukrytą warstwą nie są panaceum na problemy z uczeniem maszynowym?”
mkt - Przywróć Monikę
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.