Zacznijmy od trywialnej: Głęboka sieć neuronowa jest po prostu siecią przekazującą z wieloma ukrytymi warstwami.
To mniej więcej wszystko, co można powiedzieć o definicji. Sieci neuronowe mogą być cykliczne lub sprzężone zwrotnie; te z wyprzedzeniem nie mają żadnych pętli na wykresie i można je układać w warstwach. Jeśli istnieje „wiele” warstw, to mówimy, że sieć jest głęboka .
Jak wiele warstw ma sieć mieć w celu zakwalifikowania się jako głęboko? Nie ma jednoznacznej odpowiedzi na to pytanie (to trochę tak, jakby zapytać, ile ziaren tworzy stos ), ale zwykle posiadanie dwóch lub więcej ukrytych warstw liczy się jako głębokie. Natomiast sieć z tylko jedną ukrytą warstwą jest tradycyjnie nazywana „płytką”. Podejrzewam, że nastąpi tu inflacja, a za dziesięć lat ludzie mogą pomyśleć, że wszystko z mniej niż, powiedzmy, dziesięcioma warstwami jest płytkie i nadaje się tylko do ćwiczeń w przedszkolu. Nieformalnie „głęboka” sugeruje, że sieć jest trudna w obsłudze.
Oto dostosowana stąd ilustracja :
Ale prawdziwym pytaniem, które zadajesz, jest oczywiście: dlaczego posiadanie wielu warstw byłoby korzystne?
Myślę, że dość zadziwiającą odpowiedzią jest to, że nikt tak naprawdę nie wie. Istnieje kilka typowych wyjaśnień, które pokrótce omówię poniżej, ale żadne z nich nie zostało w przekonujący sposób udowodnione, że jest prawdziwe i nie można nawet być pewnym, że posiadanie wielu warstw jest naprawdę korzystne.
Mówię, że jest to zdumiewające, ponieważ głębokie uczenie się jest bardzo popularne, co roku bije wszelkie rekordy (od rozpoznawania obrazów, przez grę Go, po automatyczne tłumaczenie itp.), Jest wykorzystywane przez przemysł itp. Itd. I nadal nie jesteśmy całkiem pewni, dlaczego to działa tak dobrze.
Swoją dyskusji na temat głębokiego Uczenie książki Goodfellow, Bengio i Courville który wyszedł w 2017 roku i jest powszechnie uważany za książka o głębokiej nauki. (Jest dostępny bezpłatnie online.) Odpowiednia sekcja to 6.4.1 Uniwersalne właściwości i głębokość aproksymacji .
Ty to napisałeś
10 lat temu w klasie dowiedziałem się, że posiadanie kilku warstw lub jednej warstwy (nie licząc warstw wejściowych i wyjściowych) było równoważne pod względem funkcji, które sieć neuronowa może reprezentować [...]
Musisz odwoływać się do tak zwanego uniwersalnego twierdzenia aproksymacyjnego , udowodnionego przez Cybenko w 1989 r. I uogólnionego przez różnych ludzi w latach 90. Mówi w zasadzie, że płytka sieć neuronowa (z 1 ukrytą warstwą) może aproksymować dowolną funkcję, czyli w zasadzie może się wszystkiego nauczyć . Dotyczy to różnych nieliniowych funkcji aktywacyjnych, w tym rektyfikowanych jednostek liniowych, z których korzysta obecnie większość sieci neuronowych (w tym podręczniku Leshno i in. 1993 ).
Jeśli tak, to dlaczego wszyscy używają sieci głębokich?
Naiwna odpowiedź brzmi: ponieważ działają lepiej. Oto rysunek z książki Deep Learning, który pokazuje, że pomaga mieć więcej warstw w jednym konkretnym zadaniu, ale to samo zjawisko często obserwuje się w różnych zadaniach i domenach:
Wiemy, że płytka sieć może działać równie dobrze, jak te głębsze. Ale tak nie jest; i zwykle nie. Pytanie brzmi --- dlaczego? Możliwe odpowiedzi:
- Może płytka sieć potrzebowałaby więcej neuronów niż głęboka?
- Może płytka sieć jest trudniejsza do wyszkolenia przy użyciu naszych obecnych algorytmów (np. Ma bardziej nieprzyjemne lokalne minima lub szybkość konwergencji jest wolniejsza, czy cokolwiek innego)?
- Może płytka architektura nie pasuje do problemów, które zwykle próbujemy rozwiązać (np. Rozpoznawanie obiektów jest kwintesencją „głębokiego”, hierarchicznego procesu)?
- Coś innego?
Książka Deep Learning opowiada się za punktorem nr 1 i nr 3. Po pierwsze, argumentuje, że liczba jednostek w płytkiej sieci rośnie wykładniczo wraz ze złożonością zadań. Aby płytka sieć była użyteczna, może być bardzo duża; być może znacznie większy niż głęboka sieć. Opiera się to na wielu dokumentach wykazujących, że płytkie sieci w niektórych przypadkach potrzebują wykładniczo wielu neuronów; ale to, czy np. klasyfikacja MNIST czy gra Go to takie przypadki, nie jest do końca jasne. Po drugie, książka mówi:
Wybór modelu głębokiego koduje bardzo ogólne przekonanie, że funkcja, której chcemy się nauczyć, powinna obejmować zestaw kilku prostszych funkcji. Z interpretacyjnego punktu widzenia można to interpretować jako powiedzenie, że naszym zdaniem problem uczenia się polega na odkryciu zestawu podstawowych czynników zmienności, które z kolei można opisać w kategoriach innych, prostszych podstawowych czynników zmienności.
Myślę, że obecny „konsensus” jest taki, że jest to kombinacja punktów 1 i 3: w rzeczywistych zadaniach głęboka architektura jest często korzystna, a płytka architektura byłaby nieefektywna i wymagałaby znacznie większej liczby neuronów dla tej samej wydajności.
Ale nie jest to udowodnione. Rozważ np. Zagoruyko i Komodakis, 2016, Wide Residual Networks . Pozostałe sieci z ponad 150 warstwami pojawiły się w 2015 roku i wygrały różne konkursy rozpoznawania obrazów. Był to duży sukces i wyglądał jak przekonujący argument na rzecz głębi; oto jedna postać z prezentacji pierwszego autora na resztkowym papierze sieciowym (zauważ, że czas mylnie idzie tutaj w lewo):
Ale powyższy dokument pokazuje, że „szeroka” sieć resztkowa z „tylko” 16 warstwami może przewyższać „głęboką” sieć z ponad 150 warstwami. Jeśli to prawda, wówczas cały punkt powyższej figury załamuje się.
A może Ba i Caruana, 2014: Czy sieci głębokie naprawdę muszą być głębokie? :
W tym artykule przedstawiamy empiryczne dowody, że płytkie sieci są w stanie nauczyć się tej samej funkcji co sieci głębokie, a w niektórych przypadkach mają tę samą liczbę parametrów co sieci głębokie. Robimy to, najpierw szkoląc najnowocześniejszy model głęboki, a następnie trenując model płytki, aby naśladować model głęboki. Model mimiczny jest trenowany przy użyciu schematu kompresji modelu opisanego w następnym rozdziale. Co ciekawe, dzięki kompresji modelu jesteśmy w stanie trenować płytki sieci tak, aby był tak dokładny jak niektóre modele głębokie, nawet jeśli nie jesteśmy w stanie trenować tych płytkich sieci, aby były tak dokładne, jak sieci głębokie, gdy płytki sieci są trenowane bezpośrednio na oryginale oznaczone dane treningowe. Jeśli płytka sieć o takiej samej liczbie parametrów jak sieć głęboka może nauczyć się naśladować sieć głęboką o wysokiej wierności,
Jeśli to prawda, oznaczałoby to, że prawidłowe wyjaśnienie jest raczej moją kulą # 2, a nie # 1 lub # 3.
Jak powiedziałem - nikt tak naprawdę nie jest tego pewien.
Uwagi końcowe
Postęp osiągnięty w głębokim uczeniu się w ciągu ostatnich 10 lat jest naprawdę niesamowity, ale większość tego postępu osiągnięto metodą prób i błędów, a nadal brakuje nam bardzo podstawowego zrozumienia, co dokładnie sprawia , że sieci głębokie działają tak dobrze. Nawet lista rzeczy, które ludzie uważają za kluczowe dla ustanowienia skutecznej głębokiej sieci, wydaje się zmieniać co kilka lat.
Renesans głęboka nauka rozpoczęła się w 2006 roku, kiedy Geoffrey Hinton (który pracuje w sieciach neuronowych do 20+ lat bez większego zainteresowania ze strony innych) opublikował kilka papierów przełomowych oferuje skuteczny sposób trenowania głębokie sieci ( papier Science , Neural papier obliczeń ) . Sztuczka polegała na tym, aby przed rozpoczęciem opadania gradientu stosować bez nadzoru trening wstępny . Dokumenty te zrewolucjonizowały tę dziedzinę i przez kilka lat ludzie uważali, że kluczem jest bezobsługowy wstępny trening.
Następnie w 2010 r. Martens wykazał, że głębokie sieci neuronowe można trenować metodami drugiego rzędu (tak zwanymi metodami wolnymi od Hesji) i że mogą one przewyższać sieci szkolone przez szkolenie wstępne: Głębokie uczenie się dzięki optymalizacji wolnej od Hesji . Następnie w 2013 r. Sutskever i in. pokazał, że stochastyczne zejście gradientowe z kilkoma bardzo sprytnymi sztuczkami może przewyższyć metody wolne od Hesji: o znaczeniu inicjalizacji i rozmachu w głębokim uczeniu się . Około 2010 r. Ludzie zdali sobie sprawę, że zastosowanie rektyfikowanych jednostek liniowych zamiast jednostek sigmoidalnych stanowi ogromną różnicę dla spadku gradientu. Rezygnacja pojawiła się w 2014 r. Pozostałe sieci pojawiły się w 2015 r. Ludzie wciąż wymyślają coraz bardziej skuteczne sposoby szkolenia głębokich sieci ito, co 10 lat temu wydawało się kluczowym wglądem, dziś jest dziś często uciążliwe. Wszystko to w dużej mierze wynika z prób i błędów, a wiedza na temat tego, co sprawia, że niektóre rzeczy działają tak dobrze, a niektóre nie, jest niewielka . Trening głębokich sieci jest jak wielki worek sztuczek. Udane lewy są zwykle zracjonalizowane post factum.
Nie wiemy nawet, dlaczego głębokie sieci osiągają plateau wydajności; zaledwie 10 lat ludzie obwiniali lokalne minima, ale obecnie uważa się, że nie o to chodzi (kiedy płaskowyże występów gradienty zwykle pozostają duże). To jest takie podstawowe pytanie dotyczące sieci głębokich i nawet o tym nie wiemy .
Aktualizacja: To mniej więcej temat rozmowy NIPS 2017 Ali Rahimi na temat uczenia maszynowego jako alchemii: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Ta odpowiedź została całkowicie przepisana w kwietniu 2017 r., Więc niektóre poniższe komentarze nie mają już zastosowania.]