Zagłębiając się w literaturę o sieciach neuronowych , identyfikujemy inne metody z topologiami neuromorficznymi (architektury podobne do „sieci neuronowej”). I nie mówię o uniwersalnym twierdzeniu o aproksymacji . Przykłady podano poniżej.
Zastanawiam się: jaka jest definicja sztucznej sieci neuronowej? Wygląda na to, że jego topologia obejmuje wszystko.
Przykłady:
Jedną z pierwszych dokonanych przez nas identyfikacji jest między PCA a liniowym autoencoderem z wiązanymi wagami w enkoderze i dekoderze oraz progowymi aktywacjami w warstwie wąskiego gardła.
Również wspólna identyfikacja odbywa się między modelami liniowymi (w szczególności regresją logistyczną) a siecią neuronową bez ukrytej warstwy i pojedynczą warstwą wyjściową. Ta identyfikacja otwiera kilka drzwi.
Seria Fouriera i Taylora? ANNs . SVM ? ANN. Proces Gaussa? ANN (z pojedynczą ukrytą warstwą z nieskończonymi ukrytymi jednostkami).
Tak więc równie łatwo możemy włączyć dowolne regularne wersje ze specjalnymi funkcjami utraty tych algorytmów do struktury sieci neuronowej.
Ale im więcej kopiemy, tym więcej pojawia się podobieństw. Właśnie natknąłem się na drzewa decyzyjne Deep Neural , które umożliwiają identyfikację konkretnej architektury ANN z drzewami decyzyjnymi, pozwalając na naukę ich za pomocą metod ANN (takich jak backpropagacja gradientu zejścia). Na tej podstawie możemy konstruować losowe lasy i drzewka decyzyjne wzmocnione gradientem wyłącznie z topologii sieci neuronowych.
Jeśli wszystko można wyrazić jako sztuczną sieć neuronową, co definiuje sztuczną sieć neuronową?
źródło
Odpowiedzi:
Jürgen Schmidhuber, „ Głębokie uczenie się w sieciach neuronowych: przegląd ” śledzi historię kluczowych pojęć w sieciach neuronowych i głębokim uczeniu się. Jego zdaniem wydaje się, że sieci neuronowe obejmują zasadniczo każdy model, który można scharakteryzować jako graf kierunkowy, w którym każdy węzeł reprezentuje pewną jednostkę obliczeniową. Schmidhuber jest wybitnym badaczem sieci neuronowych i napisał oryginalny artykuł na temat sieci LSTM z Seppem Hochreiterem.
Z drugiej strony nie jestem pewien, czy koniecznie opłaca się zbudować systematykę wykluczających się wzajemnie segmentów strategii uczenia maszynowego. Myślę, że możemy powiedzieć, że istnieją perspektywy, z których modele można postrzegać jako sieci neuronowe. Nie sądzę, aby ta perspektywa była najlepsza lub przydatna we wszystkich kontekstach. Na przykład nadal planuję odnosić się do przypadkowych lasów i drzew o podwyższonym gradiencie jako „zestawach drzew” zamiast abstrahować od ich różnic i nazywać je „drzewami sieci neuronowej”. Co więcej, Schmidhuber odróżnia NN od maszyn jądra - mimo że maszyny jądra mają pewne powiązania z NN - kiedy pisze: „W nowym tysiącleciu głębokie sieci NN w końcu przyciągnęły szeroką uwagę, głównie przez lepsze wyniki niż alternatywne metody uczenia maszynowego, takie jak maszyny jądra ... w wielu ważnych zastosowaniach. „
źródło
Jeśli chcesz podstawową definicję ANN, możesz powiedzieć, że jest to ukierunkowany model graficzny, w którym dane wejściowe i wyjściowe są przetwarzane w każdym węźle za pomocą funkcji aktywacyjnej, a większość gradientu czasu jest wykorzystywana do trenowania go. Tak naprawdę powstaje pytanie: jakie modele można wyrazić jako modele graficzne?
Nie jestem ekspertem, ale uważam, że teoretycznie niektóre ANN mogą być wykazane jako kompletne Turinga, co oznacza, że powinni być w stanie wykonać każdy możliwy zestaw obliczeń (z możliwą nieskończoną liczbą zasobów, pamiętajcie).
Zinterpretuję również twoje pytanie w następujący sposób:
Waniliowa sieć neuronowa może naśladować drzewo decyzyjne, stosując intensywne aktywacje krokowe. Problem polega na tym, że takie aktywacje jednostek mają zerowy gradient, więc normalne opadanie gradientu nie będzie działać. Możesz powiedzieć: „nie ma problemu, po prostu użyj zmodyfikowanej formy opadania gradientu”. To jednak wciąż za mało. Dla lepszego przykładu weźmy coś takiego jak XGBOOST, który nie jest tylko lasem o podwyższonym gradiencie. Jest mnóstwo dodatkowej pracy, która polega na wybieraniu punktów podziału, przycinaniu, optymalizacji prędkości itp. Może po wystarczających modyfikacjach możesz zrobić podobnie wyglądający ANN, ale wcale nie jest jasne, że taki ANN zadziałałby przynajmniej tak jak cóż, ani jeśli jest zoptymalizowany do wykonania pracy.
źródło
"For any given model, can I slap together an ANN model to emulate that model, as close as possible, and in a reasonable amount of time?"
- boję się powiedzieć, że nie o to chodzi. Chodzi o to, że topologia ANN jest tak ogólna, że wydaje się obejmować wszystko, a strategia optymalizacji nie wydaje się być w stanie określić, co jest, a co nie jest ANN. Dlatego pytanie, co definiuje ANN? Ponieważ inaczej wszystko jest w pewnym sensie ANN wyrażone innymi słowami."A vanilla neural network can emulate a decision tree, by using heaviside step-activations. The problem is that such unit activations have zero gradient, so normal gradient descent won't work. You might say, "no problem, just use a modified form of gradient descent." However, that's still not enough. [...]"
- Jak moglibyśmy stwierdzić, optymalizacja nie jest czynnikiem determinującym definicję tego, co stanowi ANN. Jeśli potrafisz napisać każde drzewo decyzyjne jako sieć neuronową (i możemy to zrobić), możemy śmiało powiedzieć, że DT są (rodzajem) NN, podczas gdy odwrotność nie jest prawdziwa."If you want a basic definition of an ANN, you might say that it's a directed-graphical-model, where inputs and outputs are processed at each node via an activation function, and most of the time gradient descent is used to train it. So the question really becomes: what models out there can be expressed as graphical models?"
- Zgadzam się z tym. Następnie „sieć neuronowa” może być interpretowana jako najbardziej ogólna klasa modeli, być może tylko mniej ogólna niż „modele wykresów”, które stanowią nadzbiór zarówno modeli bezkierunkowych, jak i kierunkowych. Być może mógłbyś rozwinąć więcej na ten temat;)Być może dokładniejszą nazwą dla ANN są „sieci różniczkowalne”, tj. Złożone sparametryzowane funkcje, które można zoptymalizować za pomocą spadku gradientu lub jego wariantu. Jest to bardzo ogólna definicja, która kładzie nacisk na zróżnicowanie, ale nie mówi nic o głównych ideach, zadaniach, do których jest ona odpowiednia, podstawowych ramach matematycznych itp.
Zauważ, że zróżnicowanie jest cechą, a niekoniecznie główną. Na przykład, SVM można trenować przy użyciu opadania gradientu, a zatem wykazuje właściwości sieci neuronowej / różnicowalnej, ale główną ideą jest separacja danych za pomocą hiperpłaszczyzn. Autoencoder wariacyjny używa MLP dla kodera i dekodera, ale funkcja, którą optymalizujesz, pochodzi ze statystyk bayesowskich i tak dalej.
Istnieje również kilka modeli, które są często nazywane sieciami neuronowymi, ale nie używają GD do nauki. Dobrym przykładem jest RBM. Domyślam się, że etykieta „sieć neuronowa” została do niej dołączona głównie ze względów historycznych - ostatecznie twórcą RBM jest Geoffrey Hinton, a Hinton jest facetem z sieci neuronowej, prawda? Jeśli jednak przeanalizujesz model, zobaczysz, że struktura RBM jest siecią Markowa, oparta na energii funkcja kosztów pochodzi z fizyki statystycznej z początku XX wieku, a próbkowanie MCMC / Gibbs rozwijało się równolegle i całkowicie niezależnie od sieci neuronowych .
źródło
Mogę spróbować postulować pewne rzeczy, które pomagają zdefiniować sieć neuronową.
Jestem prawie pewien, że obejmuje to wszystkie powszechnie używane dziś sieci neuronowe, a także niektóre ezoteryczne.
Jest to niezależne od optymalizacji (gdybyśmy narzucili optymalizację opartą na gradiencie, wówczas sieci rozwinięte nie byłyby sieciami neuronowymi).
Nie wspominają o neuronach / węzłach ani warstwach (niektóre sieci neuronowe są dziś ledwo opisane przez te terminy), ale myślę, że moglibyśmy uwzględnić to i być nieco bardziej restrykcyjni.
źródło