Czym różnią się teraz głębokie uczenie się NN (2016) od tych, które studiowałem 4 lata temu (2012)?

13

W Wikipedii i deeplearning4j mówi się, że NN (DLNN) to NN, które mają> 1 ukrytą warstwę.

Tego rodzaju NN były dla mnie standardem na uniwersytecie, podczas gdy DLNN jest teraz bardzo podekscytowany. Byłem tam, zrobiłem to - o co chodzi?

Słyszałem również, że stosy NN są uważane za głębokie uczenie się. Jak naprawdę zdefiniowano głębokie uczenie się?

Moje pochodzenie z NN pochodzi głównie z uniwersytetu, a nie z pracy:

  • badał zastosowania NN w przemyśle
  • miał około 5 kursów na temat artif. Intel. i mach. uczyć się. - choć może 2 z nich na NN
  • użyłem NN do małego, prostego projektu do rozpoznawania obrazów - wykorzystałem 3-warstwowy NN do przekazywania
  • nie przeprowadził na nich prawdziwych badań (jak w pracy doktorskiej)
Make42
źródło
@NeilSlater: Studiowałem je najbardziej intensywnie około 2012 r.
Make42,

Odpowiedzi:

23

Masz rację, że podstawowa koncepcja głębokiego NN nie zmieniła się od 2012 roku. Ale wprowadzono szereg ulepszeń w sposobach trenowania głębokich NN, które uczyniły je jakościowo silniejszymi. Obecnie dostępnych jest również wiele różnych architektur. Wymieniłem niektóre zmiany od 2012 roku, pogrupowane według ulepszeń szkoleniowych i ulepszeń architektury:

Ulepszenia treningu głębokich sieci NN

  • Sprzęt : Najbardziej oczywistą zmianą jest nieubłagany rozwój prawa Moore'a. Obecnie dostępna jest większa moc obliczeniowa. Przetwarzanie w chmurze ułatwia także szkolenie dużych sieci NN bez konieczności kupowania ogromnego sprzętu.

  • Oprogramowanie : Oprogramowanie open source do głębokiego uczenia się jest naprawdę bardzo ulepszone od 2012 roku. W 2012 roku istniało Theano, może również Caffe. Jestem pewien, że są też inni. Ale dzisiaj mamy również TensorFlow, Torch, Paddle i CNTK, z których wszystkie są obsługiwane przez duże firmy technologiczne. Jest to ściśle związane ze sprzętowym punktem końcowym, ponieważ wiele z tych platform ułatwia trening na GPU, co znacznie przyspiesza czas szkolenia.

  • Funkcje aktywacyjne : Korzystanie z funkcji aktywacyjnych ReLU jest obecnie prawdopodobnie bardziej rozpowszechnione, co ułatwia szkolenie bardzo głębokich sieci. Po stronie badawczej badana jest szersza gama funkcji aktywacyjnych, w tym nieszczelna ReLU , parametryczna ReLU i jednostki maksymalne .

  • Algorytmy optymalizacyjne : Obecnie dostępnych jest więcej algorytmów optymalizacyjnych. Adagrad i Adadelta zostały wprowadzone odpowiednio w 2011 i 2012 roku. Ale teraz mamy również optymalizator Adama i stał się bardzo popularnym wyborem.

  • Rezygnacja : W ciągu ostatnich kilku lat rezygnacja stała się standardowym narzędziem do regularyzacji podczas szkolenia sieci neuronowych. Dropout jest niedrogą obliczeniowo formą zestawu dla NN. Zasadniczo zestaw modeli przeszkolonych na losowych próbkach zestawu danych przewyższy pojedynczy model wytrenowany na całym zbiorze danych. Jest to trudne do jednoznacznego wykonania dla NN, ponieważ ich szkolenie jest tak drogie. Ale podobny efekt może zostać przybliżony przez losowe „wyłączenie” neuronów na każdym kroku. Różne podgrupy w NN kończą się szkoleniem na różnych zestawach danych, a tym samym uczą się różnych rzeczy. Podobnie jak składanie, powoduje to, że ogólna NN jest bardziej odporna na nadmierne dopasowanie. Dropout to prosta technika, która wydaje się poprawiać wydajność w prawie każdym przypadku, więc „

  • Normalizacja partii : Od pewnego czasu wiadomo, że sieci NN najlepiej trenują na danych, które są znormalizowane - tzn. Istnieje zerowa średnia i wariancja jednostkowa. W bardzo głębokiej sieci, gdy dane przechodzą przez każdą warstwę, dane wejściowe zostaną przekształcone i zasadniczo będą przechodzić do rozkładu, w którym brakuje tej ładnej, znormalizowanej właściwości. Utrudnia to uczenie się w tych głębszych warstwach, ponieważ z jego perspektywy dane wejściowe nie mają zerowej średniej i wariancji jednostkowej. Średnia może być bardzo duża, a wariancja może być bardzo mała. Normalizacja wsadowa rozwiązuje ten problem, przekształcając dane wejściowe w warstwę, tak aby miały zerową średnią i wariancję jednostkową. Wydaje się to być niezwykle skuteczne w treningu bardzo głębokich NN.

  • Teoria : Do niedawna uważano, że powodem, dla którego trudno jest trenować głębokie sieci NN, jest to, że algorytmy optymalizacji utknęły w lokalnych minimach i mają problemy z wydostaniem się i znalezieniem globalnych minimów. W ciągu ostatnich czterech lat przeprowadzono szereg badań, które wydają się wskazywać, że ta intuicja była błędna (np. Goodfellow i in. 2014). W przestrzeni bardzo wysokich wymiarów parametrów głębokiego NN lokalne minima zwykle nie są znacznie gorsze niż minimalne globalne. Problem polega na tym, że podczas treningu NN może znaleźć się na długim, szerokim płaskowyżu. Ponadto płaskowyże te mogą nagle zakończyć się stromym urwiskiem. Jeśli NN robi małe kroki, nauka zajmuje bardzo dużo czasu. Ale jeśli stopnie są zbyt duże, napotyka ogromny gradient, gdy wpada na urwisko, co cofa wszystkie wcześniejsze prace. (Można tego uniknąć dzięki przycinaniu gradientowemu, kolejnej innowacji po 2012 roku.)

Nowe architektury

  • Pozostałe sieci : Badacze byli w stanie trenować niezwykle głębokie sieci (ponad 1000 warstw!) Przy użyciu resztkowych sieci . Chodzi o to, że każda warstwa otrzymuje nie tylko dane wyjściowe z poprzedniej warstwy, ale także oryginalne dane wejściowe. Jeśli zostanie odpowiednio przeszkolony, zachęca to każdą warstwę do uczenia się czegoś innego niż poprzednie warstwy, dzięki czemu każda dodatkowa warstwa dodaje informacje.

  • Szerokie i głębokie sieci : Szerokie, płytkie sieci mają tendencję do zapamiętywania mapowania między wejściami i wyjściami. Sieci głębokie uogólniają się znacznie lepiej. Zwykle chcesz dobrego uogólnienia, ale zdarzają się sytuacje, takie jak systemy rekomendacji, w których ważne jest również proste zapamiętywanie bez uogólnienia. W takich przypadkach chcesz zapewnić dobre, merytoryczne rozwiązania, gdy użytkownik zadaje ogólne zapytanie, ale bardzo precyzyjne rozwiązania, gdy użytkownik wykonuje bardzo konkretne zapytanie. Szerokie i głębokie sieci są w stanie dobrze wykonać to zadanie.

  • Maszyna neuronowa : Wadą tradycyjnych nawracających NN (bez względu na to, czy są to standardowe RNN, czy coś bardziej zaawansowanego jak LSTM) jest to, że ich pamięć jest nieco „intuicyjna”. Udaje im się zapamiętać wcześniejsze dane, zapisując aktywacje ukrytej warstwy, które produkują w przyszłości. Czasami jednak bardziej sensowne jest jawne przechowywanie niektórych danych. (Może to być różnica między zapisaniem numeru telefonu na kartce papieru a pamiętaniem, że ten numer ma około 7 cyfr i było tam kilka 3s, a może gdzieś pośrodku kreska.) Neuronowa maszyna Turingato sposób na rozwiązanie tego problemu. Chodzi o to, że sieć może nauczyć się jawnie przypisywać pewne fakty do banku pamięci. Nie jest to łatwe do zrobienia, ponieważ algorytmy backprop wymagają różnych funkcji, ale zatwierdzenie układu odniesienia na adres pamięci jest operacją z natury dyskretną. W związku z tym neuronowe maszyny Turinga omijają ten problem, przekazując trochę danych do dystrybucji różnych adresów pamięci. Te architektury nie wydają się jeszcze działać zbyt dobrze, ale pomysł jest bardzo ważny. Niektóre z nich prawdopodobnie zostaną rozpowszechnione w przyszłości.

  • Generatywne sieci przeciwne : sieci GAN to bardzo ekscytujący pomysł, który wydaje się już mieć wiele praktycznych zastosowań. Chodzi tutaj o szkolenie dwóch NN jednocześnie: jednej, która próbuje wygenerować próbki z leżącego u podstaw rozkładu prawdopodobieństwa (generator), i drugiej, która próbuje odróżnić rzeczywiste punkty danych od fałszywych punktów danych generowanych przez generator (dyskryminator). Na przykład, jeśli Twój zestaw danych to zbiór zdjęć sypialni, generator spróbuje zrobić własne zdjęcia sypialni, a dyskryminator spróbuje dowiedzieć się, czy patrzy na prawdziwe zdjęcia sypialni czy fałszywe zdjęcia sypialni. Na koniec masz dwie bardzo przydatne NN: jedną, która naprawdę dobrze klasyfikuje obrazy jako sypialnie lub nie sypialnie, i jedna, która naprawdę dobrze generuje realistyczne obrazy sypialni.

J. O'Brien Antognini
źródło
Słuszna uwaga! Nie zdawałem sobie sprawy, że rezygnacja była tak nowym osiągnięciem! Dodałem to teraz. Dzięki!
J. O'Brien Antognini
0

Głębokie uczenie się (a zwłaszcza głęboko zwinięte sieci neuronowe) jest obecnie bardzo popularne ze względu na ostatnie znaczące ulepszenia w różnych wyzwaniach związanych z widzeniem maszynowym / wykrywaniem obiektów. W szczególności głębokie klasztory zastosowano w celu zmniejszenia błędów klasyfikacji ImageNet z 28% w 2010 r. Do 7% w 2014 r. Głębokie uczenie się jest z pewnością nadmiernie utrudnione, ale nie powinno to umniejszać faktu, że nastąpiła znacząca poprawa w dziedzinie widzenia maszynowego.

Ryan Zotti
źródło
DLNN istnieje już od dłuższego czasu - ale zostały dostrojone, aby działać dobrze ostatnio. Czy to to?
Make42
Jaka jest zatem definicja?
Make42,
Tak, są już od jakiegoś czasu, ale stały się popularne, ponieważ są teraz bardziej dostrojone. Jak powiedział Neil Slater, DL jest szeroko zdefiniowany, ponieważ jest trochę modnym słowem. Zdefiniowałbym to jako dowolną sieć z więcej niż 3 ukrytymi warstwami. DL obejmuje również w pełni połączone sieci, automatyczne kodery i sieci splątane. Sieci powtarzające się mogą również należeć do kategorii DL w zależności od tego, kogo zapytasz
Ryan Zotti
0

Podobne pytanie zostało zadane w CV: różnica między siecią neuronową a głębokim uczeniem się :

Głębokie uczenie się = głębokie sztuczne sieci neuronowe + inny rodzaj głębokich modeli .

Głębokie sztuczne sieci neuronowe = sztuczne sieci neuronowe z więcej niż 1 warstwą. (patrz minimalna liczba warstw w głębokiej sieci neuronowej )

FYI: Jak prawdziwy jest ten slajd na temat głębokiego uczenia się, który twierdzi, że wszystkie ulepszenia z lat 80. XX wieku wynikają wyłącznie z większej ilości danych i znacznie szybszych komputerów?

Franck Dernoncourt
źródło