Jaka jest różnica między splotowymi sieciami neuronowymi, ograniczonymi maszynami Boltzmanna i auto-koderami?

123

Ostatnio czytałem o głębokim uczeniu się i jestem zdezorientowany terminami (lub powiedzmy technologiami). Jaka jest różnica pomiędzy

  • Konwolucyjne sieci neuronowe (CNN),
  • Ograniczone maszyny Boltzmann (RBM) i
  • Auto-enkodery?
RockTheStar
źródło

Odpowiedzi:

237

Autoencoder to prosta 3-warstwowa sieć neuronowa, w której jednostki wyjściowe są bezpośrednio podłączone z powrotem do jednostek wejściowych . Np. W sieci takiej jak ta:

wprowadź opis zdjęcia tutaj

output[i]ma przewagę do input[i]każdego i. Zazwyczaj liczba jednostek ukrytych jest znacznie mniejsza niż liczba jednostek widocznych (wejściowych / wyjściowych). W rezultacie, kiedy przepuszczasz dane przez taką sieć, najpierw kompresuje (koduje) wektor wejściowy, aby „dopasować” się do mniejszej reprezentacji, a następnie próbuje go zrekonstruować (dekodować) z powrotem. Zadaniem szkolenia jest zminimalizowanie błędu lub rekonstrukcji, tj. Znalezienie najbardziej wydajnej kompaktowej reprezentacji (kodowania) dla danych wejściowych.

RBM podziela podobny pomysł, ale stosuje podejście stochastyczne. Zamiast deterministycznego (np. Logistycznego lub ReLU) wykorzystuje jednostki stochastyczne o szczególnym (zwykle binarnym rozkładzie Gaussa). Procedura uczenia się składa się z kilku etapów próbkowania Gibbsa (propagacja: próbki ukryte z widocznymi; rekonstrukcja: próbki widoczne z ukrytych; powtórzenie) i dostosowanie wag w celu zminimalizowania błędu rekonstrukcji.

wprowadź opis zdjęcia tutaj

Intuicja stojąca za RBM polega na tym, że istnieją pewne widoczne zmienne losowe (np. Recenzje filmów od różnych użytkowników) i niektóre ukryte zmienne (takie jak gatunki filmowe lub inne cechy wewnętrzne), a zadaniem szkolenia jest ustalenie, jak te dwa zestawy zmiennych są w rzeczywistości połączone ze sobą (więcej na temat tego przykładu można znaleźć tutaj ).

Konwolucyjne sieci neuronowe są nieco podobne do tych dwóch, ale zamiast uczenia się pojedynczej globalnej macierzy masy między dwiema warstwami, starają się znaleźć zestaw lokalnie połączonych neuronów. Sieci CNN są najczęściej używane do rozpoznawania obrazów. Ich nazwa pochodzi od operatora „splot” lub po prostu „filtr”. Krótko mówiąc, filtry są łatwym sposobem wykonywania złożonej operacji za pomocą prostej zmiany jądra splotu. Zastosuj gaussowskie jądro rozmycia, a wygładzisz je. Zastosuj jądro Canny, a zobaczysz wszystkie krawędzie. Zastosuj jądro Gabora, aby uzyskać funkcje gradientu.

wprowadź opis zdjęcia tutaj

(zdjęcie stąd )

Celem splotowych sieci neuronowych nie jest użycie jednego z predefiniowanych jąder, lecz nauka jąder specyficznych dla danych . Pomysł jest taki sam, jak w przypadku autoencoderów lub RBM - przetłumacz wiele funkcji niskiego poziomu (np. Recenzje użytkowników lub piksele obrazu) na skompresowaną reprezentację wysokiego poziomu (np. Gatunki filmowe lub krawędzie) - ale teraz wagi uczymy się tylko od neuronów, które są przestrzennie blisko siebie.

wprowadź opis zdjęcia tutaj

Wszystkie trzy modele mają swoje przypadki użycia, zalety i wady, ale prawdopodobnie najważniejsze właściwości to:

  1. Autoencodery są najprostsze. Są intuicyjnie zrozumiałe, łatwe do wdrożenia i uzasadnienia (np. Dużo łatwiej jest znaleźć dla nich dobre meta-parametry niż dla RBM).
  2. KMS są generatywne. Oznacza to, że w przeciwieństwie do autoencoderów, które dyskryminują tylko niektóre wektory danych na korzyść innych, RBM mogą również generować nowe dane z danym połączonym rozkładem. Są również uważane za bardziej bogate w funkcje i elastyczne.
  3. CNN to bardzo specyficzny model, który jest najczęściej używany do bardzo specyficznego zadania (choć dość popularne zadanie). Większość algorytmów najwyższego poziomu w rozpoznawaniu obrazów jest dziś w jakiś sposób oparta na CNN, ale poza tą niszą trudno je zastosować (np. Jaki jest powód zastosowania splotu do analizy recenzji filmów?).

UPD.

Redukcja wymiarów

Kiedy reprezentujemy jakiś obiekt jako wektor elementów, mówimy, że jest to wektor w przestrzeni wymiarowej. Zatem zmniejszenie wymiarów odnosi się do procesu udoskonalania danych w taki sposób, że każdy wektor danych jest tłumaczony na inny wektor w przestrzeni wymiarowej (wektor z elementów), gdzie . Prawdopodobnie najczęstszym sposobem na to jest PCA . Z grubsza mówiąc, PCA znajduje „wewnętrzne osie” zestawu danych (zwane „komponentami”) i sortuje je według ich ważności. Pierwszynnxxmmm<nmnajważniejsze elementy są następnie wykorzystywane jako nowa podstawa. Każdy z tych komponentów może być uważany za cechę wysokiego poziomu, opisującą wektory danych lepiej niż oryginalne osie.

Oba - autoencodery i RBM - robią to samo. Biorąc wektor w przestrzeni wymiarowej, tłumaczą go na wymiarową, starając się zachować jak najwięcej ważnych informacji, a jednocześnie usuwać szum. Jeśli trening autoencodera / RBM się powiódł, każdy element wynikowego wektora (tj. Każda ukryta jednostka) reprezentuje coś ważnego w obiekcie - kształt brwi na obrazie, gatunek filmu, dziedzina badań w artykule naukowym itp. Ty weź dużo hałaśliwych danych jako dane wejściowe i produkuj znacznie mniej danych w znacznie bardziej wydajnej reprezentacji.nm

Głębokie architektury

Jeśli więc mieliśmy już PCA, dlaczego, u diabła, wymyśliliśmy autoencodery i RBM? Okazuje się, że PCA pozwala jedynie na liniową transformację wektorów danych. Oznacza to, że mając głównych składników , możesz reprezentować tylko wektory . To już całkiem dobre, ale nie zawsze wystarczające. Bez względu na to, ile razy zastosujesz PCA do danych - związek zawsze pozostanie liniowy.mc1..cmx=i=1mwici

Z kolei autoencodery i RBM są z natury nieliniowe, dzięki czemu mogą nauczyć się bardziej skomplikowanych relacji między jednostkami widocznymi i ukrytymi. Ponadto można je układać w stosy , co czyni je jeszcze bardziej wydajnymi. Np. Trenujesz KMS z widocznymi i ukrytymi jednostkami, następnie umieszczasz inny KMS z widocznymi i ukrytymi jednostkami na pierwszej i trenujesz również itd. I dokładnie tak samo z auto-koderami.nmmk

Ale nie dodajesz tylko nowych warstw. Na każdej warstwie próbujesz nauczyć się najlepszej możliwej reprezentacji danych z poprzedniej:

wprowadź opis zdjęcia tutaj

Na powyższym obrazku jest przykład takiej głębokiej sieci. Zaczynamy od zwykłych pikseli, kontynuujemy od prostych filtrów, a następnie od elementów twarzy, a na końcu kończymy na całych twarzach! To jest istota głębokiego uczenia się .

Zauważmy, że w tym przykładzie pracowaliśmy z danymi obrazu i kolejno zajmowaliśmy coraz większe obszary przestrzennie bliskich pikseli. Czy to nie brzmi podobnie? Tak, ponieważ jest to przykład głębokiej sieci splotowej . Niezależnie od tego, czy jest oparty na auto-koderach, czy RBM, wykorzystuje splot, aby podkreślić znaczenie lokalizacji. Właśnie dlatego CNN różnią się nieco od autoencoderów i RBM.

Klasyfikacja

Żaden z wymienionych tutaj modeli nie działa jako algorytmy klasyfikacji per se. Zamiast tego są używane do wstępnego szkolenia - uczenia się transformacji z reprezentacji niskiego poziomu i trudnej do konsumpcji (np. Pikseli) do reprezentacji wysokiego poziomu. Po wstępnym przeszkoleniu głębokiej (a może nie tak głębokiej) sieci wektory wejściowe są przekształcane w lepszą reprezentację, a wektory wynikowe są ostatecznie przekazywane do prawdziwego klasyfikatora (takiego jak SVM lub regresja logistyczna). Na powyższym obrazku oznacza, że ​​na samym dole znajduje się jeszcze jeden element, który faktycznie klasyfikuje.

przyjaciel
źródło
3
@ffriend Bardzo krótkie i jasne wyjaśnienie. Dużo jest napisane na te tematy, ale twoja odprawa jest fantastyczna. „RockTheStar” Jeśli chcesz uzyskać bardziej szczegółowe wyjaśnienia, możesz przeczytać tę 100-stronicową książkę Yoshua Bengio (www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)
Javierfdr
czego byś użył do przewidywania sekwencji zdarzeń?
skan
2
@skan: spójrz na RNN . W szczególności LSTM jest teraz dość popularny. Możesz także zadać osobne pytanie z bardziej szczegółowymi informacjami, aby uzyskać kwalifikowaną odpowiedź, ponieważ RNN nie są moją specjalizacją.
zaprzyjaźnij się
15

Wszystkie te architektury można interpretować jako sieć neuronową. Główną różnicą między AutoEncoderem a siecią konwergentną jest poziom okablowania sieci. Sieci konwergentne są dość mocno podłączone. Operacja konwolucji jest w dużej mierze lokalna w dziedzinie obrazów, co oznacza znacznie mniejszą liczbę połączeń w widoku sieci neuronowej. Operacja łączenia (podpróbkowania) w domenie obrazu jest również przewodowym zestawem połączeń neuronowych w domenie neuronowej. Takie ograniczenia topologiczne dotyczące struktury sieci. Biorąc pod uwagę takie ograniczenia, szkolenie CNN uczy się najlepszych wag dla tej operacji splotu (w praktyce istnieje wiele filtrów). Sieci CNN są zwykle używane do zadań związanych z obrazem i mową, w których dobrym założeniem są ograniczenia splotowe.

Natomiast Autoencodery prawie nie precyzują niczego na temat topologii sieci. Są znacznie bardziej ogólne. Chodzi o to, aby znaleźć dobrą transformację neuronową, aby zrekonstruować dane wejściowe. Składają się z enkodera (rzutuje wejście na ukrytą warstwę) i dekodera (ponownie rzutuje ukrytą warstwę na wyjście). Ukryta warstwa uczy się zestawu ukrytych elementów lub ukrytych czynników. Autokodery liniowe obejmują tę samą podprzestrzeń co PCA. Biorąc pod uwagę zestaw danych, uczą się wielu podstaw, aby wyjaśnić podstawowy wzorzec danych.

KMS są również siecią neuronową. Ale interpretacja sieci jest zupełnie inna. Mechanizmy RBM interpretują sieć nie jako sprzężenie zwrotne, ale dwuczęściowy wykres, na którym chodzi o poznanie wspólnego rozkładu prawdopodobieństwa zmiennych ukrytych i wejściowych. Są one postrzegane jako model graficzny. Pamiętaj, że zarówno AutoEncoder, jak i CNN uczy się funkcji deterministycznej. Z drugiej strony KMS to model generatywny. Może generować próbki z wyuczonych ukrytych reprezentacji. Istnieją różne algorytmy trenowania KMS. Jednak na koniec dnia, po nauczeniu się mechanizmów KMS, można użyć jego wag sieciowych, aby zinterpretować je jako sieć przesyłania zwrotnego.

Cylonmath
źródło
6

RBM można postrzegać jako pewnego rodzaju probabilistyczny auto koder. W rzeczywistości wykazano, że pod pewnymi warunkami stają się one równoważne.

Niemniej jednak o wiele trudniej jest wykazać tę równoważność niż po prostu uwierzyć, że są to różne bestie. Rzeczywiście, trudno mi znaleźć wiele podobieństw między tymi trzema, gdy tylko zacznę się uważnie przyglądać.

Na przykład, jeśli zanotujesz funkcje zaimplementowane przez auto koder, RBM i CNN, otrzymasz trzy zupełnie różne wyrażenia matematyczne.

bayerj
źródło
1

Nie mogę ci wiele powiedzieć o RBM, ale autoencodery i CNN to dwa różne rodzaje rzeczy. Autoencoder to sieć neuronowa, która jest szkolona w sposób nienadzorowany. Celem autoencodera jest znalezienie bardziej zwartej reprezentacji danych poprzez naukę kodera, który przekształca dane do odpowiadającej im zwartej reprezentacji, oraz dekodera, który rekonstruuje oryginalne dane. Część kodera w autoencoderach (i pierwotnie RBM) została wykorzystana do nauki dobrych początkowych wag głębszej architektury, ale są też inne aplikacje. Zasadniczo autoencoder uczy się grupowania danych. Natomiast termin CNN odnosi się do rodzaju sieci neuronowej, która używa operatora splotu (często splotu 2D, gdy jest on wykorzystywany do zadań przetwarzania obrazu) do wydobywania elementów z danych. W przetwarzaniu obrazu filtry które są złożone ze zdjęć, uczą się automatycznie, jak rozwiązać dane zadanie, np. zadanie klasyfikacyjne. To, czy kryterium szkolenia jest regresja / klasyfikacja (nadzorowana) czy rekonstrukcja (bez nadzoru), nie ma związku z ideą zwojów jako alternatywy dla przekształceń afinicznych. Możesz także mieć auto-koder CNN.

Sigurd
źródło
autoencoder to szkolenie nadzorowane, ponieważ trenujesz generować te same informacje, co dane wyjściowe, jak dane wejściowe, tylko z mniejszym ukrytym graczem, tak że sieć musi znaleźć odpowiednie kodowanie, które przekształca dane wejściowe na rozmiar ukrytej warstwy iz powrotem . w szkoleniu bez nadzoru, stosowanym w sieciach statystycznych, takich jak SOM lub gaz neuronowy, nie masz informacji o celu, które są prezentowane w sieci jako dane wyjściowe.
SCI,