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?
źródło
Odpowiedzi:
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,
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
Wiele terminologii stosowanych w literaturze naukowej odnosi się do ówczesnych trendów i się na nie przyzwyczaiło.
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
źródło
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
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.
źródło
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 .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:
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:
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.
źródło