Perceptron wielowarstwowy a głęboka sieć neuronowa

16

To kwestia terminologii. Czasami widzę, że ludzie określają głębokie sieci neuronowe jako „wielowarstwowe perceptrony”, dlaczego tak jest? Nauczono mnie, że perceptron to klasyfikator jednowarstwowy (lub regresor) z wyjściowym progiem binarnym, wykorzystujący określony sposób szkolenia wag (nie z powrotem). Jeśli wynik działania perceptronu nie jest zgodny z wynikiem docelowym, dodajemy lub odejmujemy wektor wejściowy do wag (w zależności od tego, czy perceptron dał fałszywie dodatni, czy fałszywie ujemny). Jest to dość prymitywny algorytm uczenia maszynowego. Wydaje się, że procedura szkolenia nie uogólnia się na przypadek wielowarstwowy (przynajmniej nie bez modyfikacji). Głęboka sieć neuronowa jest szkolona przez backprop, który wykorzystuje regułę łańcucha do propagowania gradientów funkcji kosztu z powrotem przez wszystkie ciężary sieci.

Pytanie brzmi: Czy „wielowarstwowy perceptron” to to samo, co „głęboka sieć neuronowa”? Jeśli tak, to dlaczego stosuje się tę terminologię? Wydaje się to niepotrzebnie mylące. Ponadto, zakładając, że terminologia jest w pewnym stopniu wymienna, widziałem terminologię „perceptron wielowarstwowy” tylko w odniesieniu do sieci sprzężenia zwrotnego złożonej z w pełni połączonych warstw (bez warstw splotowych lub połączeń cyklicznych). Jak szeroka jest ta terminologia? Czy można by użyć terminu „wielowarstwowy perceptron”, odnosząc się na przykład do sieci Inception? Co powiesz na sieć powtarzającą się wykorzystującą moduły LSTM używane w NLP?

enumaris
źródło
1
Głęboka sieć neuronowa = sieć neuronowa z> 1 ukrytą warstwą, MLP należy do tej kategorii.
Tim
to tylko rebranding. MLP zostały przeforsowane w latach 90. i zastąpione przez maszyny SVM, więc w 2000 roku trzeba to nazwać czymś innym. sugeruje się, że dnn ma więcej warstw, ale nie ma tak dużej różnicy, np. Le Net [MLP / CNN] (1998) 2 splotowe 2 w pełni połączone. alexnet = DNN (2012) 5 splotowych i 3 w pełni połączone.
seanv507
SVM są oparte na wznoszeniu gradientu, ANN są oparte na spadku gradientu, więc tak naprawdę nie zastąpiły ANN. SVM były wyprzedane i były nadużywane, ponieważ studenci nie wiedzieli nic o ANN. Aby uruchomić SVM, uczniowie po prostu wzięli pakiety R i byli gotowi. Ale w przypadku ANN trzeba cały semestr, aby je zrozumieć z perspektywy metod numerycznych - nie z perspektywy języka interpretacyjnego (tj. Splatanie kodu razem).
JoleT

Odpowiedzi:

21

Można uznać perceptron wielowarstwowy (MLP) za podzbiór głębokich sieci neuronowych (DNN), ale często są one używane zamiennie w literaturze.

Założenie, że perceptrony są nazywane na podstawie ich reguły uczenia się, jest nieprawidłowe. Klasyczna „reguła aktualizacji perceptronu” jest jednym ze sposobów, w jaki można ją trenować. Wczesne odrzucenie sieci neuronowych było z tego właśnie powodu, ponieważ reguła aktualizacji perceptronu była podatna na zanikanie i eksplodowanie gradientów, uniemożliwiając trenowanie sieci z więcej niż warstwą.

Zastosowanie propagacji wstecznej w sieciach treningowych doprowadziło do użycia alternatywnych funkcji aktywacji squashingu, takich jak tanh i sigmoid .

Aby odpowiedzieć na pytania,

pytanie brzmi. Czy „wielowarstwowy perceptron” to to samo, co „głęboka sieć neuronowa”?

MLP jest podzbiorem DNN. Podczas gdy DNN może mieć pętle, a MLP są zawsze sprzężone, tzn.

Wielowarstwowe perceptrony (MLP) to skończony wykres acykliczny

dlaczego używa się tej terminologii?

Wiele terminologii stosowanych w literaturze naukowej odnosi się do ówczesnych trendów i się na nie przyzwyczaiło.

Jak szeroka jest ta terminologia? Czy można by użyć terminu „wielowarstwowy perceptron”, odnosząc się na przykład do sieci Inception? Co powiesz na sieć powtarzającą się wykorzystującą moduły LSTM używane w NLP?

Tak, początkowo tak, sieć splotowa, resnet itp. Są MLP, ponieważ nie ma cyklu między połączeniami. Nawet jeśli istnieją skróty do przeskakiwania warstw, o ile są one skierowane do przodu, można je nazwać perceptronem wielowarstwowym. Ale LSTM lub waniliowe RNN itp. Mają cykliczne połączenia, dlatego nie mogą być nazywane MLP, ale są podzbiorem DNN.

To jest moje rozumienie rzeczy. Proszę, popraw mnie jeśli się mylę.

Linki referencyjne:

/cs/53521/what-is-difference-between-multilayer-perceptron-and-multilayer-neural-network

https://en.wikipedia.org/wiki/Multilayer_perceptron

https://en.wikipedia.org/wiki/Perceptron

http://ml.informatik.uni-freiburg.de/former/_media/teaching/ss10/05_mlps.printer.pdf

m1cro1ce
źródło
1
po prostu z ciekawości: Myślałem, że regresja logistyczna jest techniką regresji, ponieważ szacuje się prawdopodobieństwo członkostwa w klasie 1 zamiast członkostwa w klasie. Jako taka nie wydaje mi się techniką klasyfikacji (badacz / analityk musi zdecydować o granicy prawdopodobieństwa, aby dokonać klasyfikacji na podstawie regresji logistycznej).
IWS
@IWS masz rację. Różni użytkownicy tej witryny wielokrotnie podkreślali, że regresja logistyczna jest modelem (warunkowego) oszacowania prawdopodobieństwa, a nie klasyfikatorem. Zobacz na przykład tutaj .
DeltaIV
1
Zredagowano odpowiedź, by naprawić Na przykład „regresja logistyczna” jest techniką klasyfikacji i nie powinna być określana jako „regresja”, jeśli tak można powiedzieć . Link udostępniony przez @DeltaIV wyjaśnia, dlaczego jest to regresja, a nie klasyfikator.
m1cro1ce
8

Dobre pytanie: zauważ, że w dziedzinie głębokiego uczenia się rzeczy nie zawsze są tak dobrze dopracowane i jasno zdefiniowane, jak w przypadku uczenia statystycznego (również dlatego, że jest dużo szumu), więc nie spodziewaj się, że definicje będą tak rygorystyczne jak w matematyce. W każdym razie, wielowarstwowy perceptron jest specyficzną architekturą sieci neuronowej ze sprzężeniem zwrotnym, w której układane są w stosy wiele w pełni połączonych warstw (więc w ogóle nie ma warstw splotowych), w których funkcje aktywacji ukrytych jednostek są często sigmoidalne lub tanh. Węzły warstwy wyjściowej zwykle mają funkcje aktywacji softmax (do klasyfikacji) lub liniowe funkcje aktywacji (do regresji). Typowe architektury MLP nie są „głębokie”, tzn. Nie mamy wielu ukrytych warstw. Zwykle masz od 1 do 5 ukrytych warstw. Te sieci neuronowe były powszechne w latach 80-tych,

Teraz, z Deep Neural Network rozumiemy sieć, która ma wiele warstw (19, 22, 152, ... nawet > 1200 , choć to prawda, że ​​jest bardzo ekstremalna). Zauważ, że

  • nie określiliśmy architektury sieci, więc może to być informacja zwrotna, cykliczna itp.
  • nie określiliśmy charakteru połączeń, więc moglibyśmy mieć w pełni połączone warstwy, warstwy splotowe, powtarzalność itp.
  • „wiele” warstw, co prawda, nie jest rygorystyczną definicją.

32×32+32×10=134411584ciężary Jest to niewielka liczba NN według dzisiejszych standardów. Jednak, gdy trenujesz je na odpowiednio dużym zbiorze danych, okazuje się, że szybkość konwergencji znacznie się spowolniła. Wynika to nie tylko z większej liczby wag, ale z problemu znikającego gradientu - propagacja wsteczna oblicza gradient funkcji utraty przez pomnożenie błędów na każdej warstwie, a te małe liczby stają się wykładniczo mniejsze wraz z dodawaniem kolejnych warstw. Tak więc błędy nie rozprzestrzeniają się (lub rozprzestrzeniają się bardzo wolno) w sieci i wygląda na to, że błąd w zestawie treningowym przestaje maleć wraz z epokami szkolenia.

I to była mała sieć - głębokie sieci neuronowe o konwergencji zwane AlexNet miały 5 warstw, ale 60 milionów wag, i jak na dzisiejsze standardy są uważane za małe! Gdy masz tyle wag, każdy zestaw danych jest „mały” - nawet ImageNet, zestaw danych obrazów używanych do klasyfikacji, ma „tylko” około 1 miliona obrazów, dlatego ryzyko nadmiernego dopasowania jest znacznie większe niż w przypadku płytkiej sieci.

Głębokie uczenie się można zatem rozumieć jako zestaw narzędzi, które są używane w praktyce do trenowania sieci neuronowych o dużej liczbie warstw i wag, osiągając niski błąd generalizacji. To zadanie stanowi więcej wyzwań niż w przypadku mniejszych sieci. Zdecydowanie możesz zbudować Perceptron Deep Wielowarstwowy i trenować go - ale (poza tym, że nie jest to optymalna architektura dla wielu zadań, w których obecnie używane jest Głębokie Uczenie się), prawdopodobnie użyjesz narzędzi, które różnią się od tych, które były używane w sieciach "Płycizna". Na przykład możesz preferować jednostki aktywujące ReLU niż sigmoidalne lub tanh, ponieważ łagodzą one problem znikającego gradientu.

DeltaIV
źródło
Poprzednia odpowiedź m1cro1ce mówi, że sieć konwekcyjna (podobnie jak inicjacja) może być również sklasyfikowana jako MLP, podczas gdy ty określasz, że MLP nie może mieć warstw splotowych (i wydaje się, że sugerujesz, że wybór funkcji aktywacyjnych również wpływa na coś, co można nazwać MLP, czy nie?). Czy w literaturze (lub w społeczności ML) istnieje zgoda co dokładnie oznacza MLP, a co nie oznacza? Jeśli ktoś mi powiedział: „Chcę, żebyś zbudował MLP dla zadania X”, co mam robić?
enumaris
@ enumaris nie jesteś prawnie ograniczony do robienia czegokolwiek. Ostatnim razem, gdy sprawdzałem, nadal było legalne zbudowanie CNN i nazwanie go MLP. Oczywiście odrzuciłbym taki papier / plakat / cokolwiek, ale to ja i nie mogę wypowiadać się w imieniu całej społeczności DL, która nie jest znana ze ścisłego użycia terminologii. W każdym razie moja definicja: sieć neuronowa ze sprzężeniem zwrotnym z całkowicie połączoną warstwą i co najmniej pewną nieliniową funkcją aktywacyjną (w przeciwnym razie, bez względu na to, ile warstw, zawsze jest równoważna z jednowarstwową siecią liniową), jest taka sama, jak można znaleźć .. .
DeltaIV
... Wikipedia . Zwróć uwagę na linię w sekcji warstw „Ponieważ MLP są w pełni połączone [..]”. Wyklucza to CNN. W tej książce można znaleźć tę samą definicję (sprzężenie zwrotne, pełne połączenie, przynajmniej ukryte warstwy mają nieliniowe funkcje aktywacyjne) . Jeśli chodzi o funkcje aktywacyjne, zdecydowanie nie sugeruję niczego. Powiedziałem właśnie, że MLP zwykle mają funkcje aktywacyjne tanh lub sigmoidalne, ale nie jest to obowiązkowe.
DeltaIV,
Chciałbym zaznaczyć jedną z tych 2 odpowiedzi jako odpowiedź zaakceptowaną, ale ponieważ dają one sprzeczne odpowiedzi, chciałbym wiedzieć, która odpowiedź jest najczęściej spotykana w literaturze lub wśród społeczności ML.
enumaris
@ enumaris tytuł twojego pytania brzmi „Wielowarstwowy perceptron vs głęboka sieć neuronowa” i pytasz, czy a "multi-layer perceptron" the same thing as a "deep neural network": na to pytanie udzielono szczegółowych odpowiedzi, zarówno w mojej, jak i odpowiedzi m1cro1ce. Teraz zadajesz pytanie „czy CNN to podzbiór MLP?” - Witryny stosu wymiany mają zasady jednego pytania do wysłania .
DeltaIV
0

Chcę to dodać zgodnie z tym, co przeczytałem z wielu postów:

Istnieje wiele różnych architektur za pośrednictwem DNN, takich jak: MLP (Multi-Layer Perceptron) i CNNs (Convolutional Neural Networks). Tak inny rodzaj DNN przeznaczony do rozwiązywania różnych rodzajów problemów.

MLP to klasyczny typ NN, który jest używany do:

  • Tabelaryczne zestawy danych (zawierają dane w formacie kolumnowym jak w tabeli bazy danych).
  • Klasyfikacja / regresja, prognozy pbs.

MLP są bardzo i mogą być ogólnie używane do mapowania ubogiego z wprowadzania do wyników.

Możesz jednak spróbować użyć innego formatu, takiego jak dane obrazu, jako punkt odniesienia linii odniesienia, aby potwierdzić, że inne modele są bardziej odpowiednie.

CNN zaprojektowane do mapowania danych obrazu na zmienną wyjściową. służy do:

  • Dane obrazu,
  • klasyfikacja / przewidywanie regresji pbs,

Działa dobrze z danymi, które mają relacje przestrzenne .

Tradycyjnie jest używany do danych 2D, ale może być wykorzystywany do danych 1D, CNN osiąga stan techniki na niektórych 1D pbs.

Musisz najpierw „jasno zdefiniować” to, co chcesz rozwiązać jako problem (z jakiego rodzaju danymi pracować, problem z klasyfikacją / regresją ... itd.), Aby wiedzieć, jakiego rodzaju architektury użyć.

Możesz odnieść się do tych linków, które były dla mnie tak przydatne, aby lepiej zrozumieć te pojęcia :).

Mam nadzieję, że ten dodatek będzie przydatny: str.

DINA TAKLIT
źródło