Jaka jest różnica między splotowymi sieciami neuronowymi a głębokim uczeniem się?


25

Chcę wykorzystać głębokie uczenie się w moim projekcie. Przejrzałem kilka artykułów i przyszło mi do głowy pytanie: czy jest jakaś różnica między siecią neuronową splotu a głębokim uczeniem się? Czy te rzeczy są takie same, czy różnią się między sobą, a co jest lepsze?


Powiedz mi, jaka jest dokładna różnica od głębokiego uczenia się i splotowej sieci neuronowej Jestem trochę zamieszania w tych 2 tematach
Yamini

Odpowiedzi:


33

Głębokie uczenie się jest gałęzią uczenia maszynowego opartą na głębokich sieciach neuronowych (DNN), co oznacza sieci neuronowe z co najmniej 3 lub 4 warstwami (w tym warstwami wejściową i wyjściową). Ale dla niektórych osób (szczególnie nietechnicznych) każda sieć neuronowa kwalifikuje się jako Głębokie Uczenie się, niezależnie od jej głębokości. Inni uważają 10-warstwową sieć neuronową za płytką.

Konwolucyjne sieci neuronowe (CNN) są jedną z najpopularniejszych architektur sieci neuronowych. Są niezwykle skuteczne w przetwarzaniu obrazów, ale także w wielu innych zadaniach (takich jak rozpoznawanie mowy, przetwarzanie języka naturalnego i inne). Najnowocześniejsze sieci CNN są dość głębokie (przynajmniej kilkadziesiąt warstw), więc są częścią Deep Learning. Ale możesz zbudować płytkie CNN do prostego zadania, w którym to przypadku nie jest to (naprawdę) Głębokie Uczenie się.

Ale CNN nie są same, istnieje wiele innych architektur sieci neuronowych, w tym Recurrent Neural Networks (RNN), Autoencoders, Transformers, Deep Belief Nets (DBN = stos Restricted Boltzmann Machines, RBM) i wiele innych. Mogą być płytkie lub głębokie. Uwaga: nawet płytkie RNN można uznać za część głębokiego uczenia się, ponieważ ich szkolenie wymaga rozwinięcia ich w czasie, co skutkuje głęboką siecią.


@MiniQurak. Popraw mnie, jestem w błędzie. Rozumiem, że CNN to tylko architektura głębokich sieci, takich jak Autoencoders, Deep Belief Nets, Recurrent Neural Networks (RNN) .. czy to prawda?
Aadnan Farooq A

Tak, to jest poprawne.
MiniQuark

to czy możemy powiedzieć, która architektura jest lepsza w zależności od zestawu danych? lub jakie są kluczowe czynniki?
Aadnan Farooq A

1
Sieci CNN doskonale nadają się do zadań związanych z rozpoznawaniem obrazów. Świecą również, gdy dane mają jakąś formę hierarchicznej struktury, z lokalnymi wzorami (np. Segmentami linii) złożonymi w duże wzory (np. Kwadraty, trójkąty), złożone w większe wzory (np. Dom, płaszczyzna). Działa to dobrze w przypadku zadań rozpoznawania mowy. RNN świetnie nadają się do szeregów czasowych (np. Prognozowanie pogody) i ogólnie do obsługi sekwencji danych (np. Zdań). Są one często używane do NLP (przetwarzanie języka naturalnego). AutoEncodery nie są nadzorowane, uczą się wzorców danych.
MiniQuark

1
W porządku więc :)
Firebug

21

W dziedzinie adaptacyjnego przetwarzania sygnałów / uczenia maszynowego głębokie uczenie się (DL) jest szczególną metodologią, w której możemy szkolić skomplikowane reprezentacje maszyn.

Zasadniczo będą miały sformułowanie, które może zmapować dane wejściowe , aż do celu docelowego, , za pomocą szeregu hierarchicznie ułożonych (stąd „głębokich”) operacji . Operacje te są zwykle operacjami / rzutami liniowymi ( W i ), po których następują nieliniowości ( f i ), takie jak:yxyW.jafaja

y=faN.(...fa2)(fa1(xT.W.1)W.2))...W.N.)

Obecnie w DL istnieje wiele różnych architektur : jedna taka architektura jest znana jako splotowa sieć neuronowa (CNN). Inna architektura jest znana jako perceptron wielowarstwowy (MLP) itp. Różne architektury nadają się do rozwiązywania różnych rodzajów problemów.

MLP jest prawdopodobnie jednym z najbardziej tradycyjnych typów architektury DL, jaki można znaleźć, i wtedy każdy element poprzedniej warstwy jest połączony z każdym elementem następnej warstwy. To wygląda tak:

wprowadź opis zdjęcia tutaj

W MLP matricies koduje transformację z jednej warstwy na drugą. (Przez mnożenie macierzy). Na przykład, jeśli masz 10 neuronów w jednej warstwie połączonych z 20 neuronami następnej, będziesz mieć macierz , która zamapuje dane wejściowe do wyjścia , przez: . Każda kolumna w koduje wszystkie krawędzie przechodzące od wszystkich elementów warstwy do jednego z elementów następnej warstwy.W R 10 x 20 v R 10 x 1 u R 1 x 20 u = v T W WW.jaW.R10x20przeciwkoR10x1uR1x20u=przeciwkoT.W.W.

MLP wypadły wtedy z łaski, częściowo dlatego, że ciężko je trenować. Chociaż istnieje wiele przyczyn tego trudu, jednym z nich było również to, że ich gęste połączenia nie pozwalały na łatwe skalowanie pod kątem różnych problemów z widzeniem komputerowym. Innymi słowy, nie mieli wypalonej ekwiwalencji translacji. Oznaczało to, że jeśli w jednej części obrazu byłby sygnał, na który powinni być wrażliwi, musieliby ponownie nauczyć się, jak być na to wrażliwym, jeśli ten sygnał się poruszał. To zmarnowało pojemność sieci i trening stał się trudny.

Właśnie tam weszły CNN! Oto jak wygląda:

wprowadź opis zdjęcia tutaj

W.ja

Często zdarza się, że „CNN” odnoszą się do sieci, w których mamy warstwy splotowe w całej sieci, i MLP na samym końcu, więc jest to jedno zastrzeżenie, o którym należy pamiętać.


1
+1 Świetna odpowiedź, właśnie dowiedziałem się o matematyce Toeplitz. ;-)
MiniQuark

@MiniQuark Thanks! Tak - można zapisać splot jako mnożenie przez macierz Toeplitz. :)
Tarin Ziyaee

@TarinZiyaee i MiniQurak Czy możecie mi polecić dobry artykuł / tutorial / dziennik dla początkującego, aby dowiedzieć się więcej na temat głębokiego uczenia się?
Aadnan Farooq A

CNN niekoniecznie są głębokie (-1)
Firebug

7

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ą. (więcej informacji na temat minimalnej liczby warstw w głębokiej sieci neuronowej lub Wikipedii …)

Convolution Neural Network = Rodzaj sztucznych sieci neuronowych


Uczciwie mówiąc, głębokie uczenie obejmuje również „wielowarstwowe maszyny jądra”, a CNN mogą być płytkie. :)
MiniQuark,

@MiniQuark tak.
Franck Dernoncourt

sztuczne sieci neuronowe z więcej niż 1 warstwą ... Nie jestem pewien, czy sieć z tylko 2 warstwami nazywa się siecią głęboką.
SmallChess

1
@StudentT Może nie pracuję w marketingu;) en.wikipedia.org/w/…
Franck Dernoncourt

1
To powinna być najlepsza odpowiedź, ponieważ CNN niekoniecznie są głębokie, a głębokie uczenie się nie dotyczy tylko ANN (w zwykłym znaczeniu).
Firebug

6

Ten slajd autorstwa Yanna LeCuna pokazuje, że tylko modele z hierarchią obiektów (funkcje niższego poziomu są uczone na jednej warstwie modelu, a następnie te funkcje są łączone na następnym poziomie) są głębokie .

CNN może być głęboki lub płytki; tak jest w zależności od tego, czy jest zgodne z tą „hierarchią cech”, ponieważ niektóre sieci neuronowe, w tym modele dwuwarstwowe , nie są głębokie.

Definicja Yanna LeCuna


3

Deep learningto ogólny termin określania skomplikowanej sieci neuronowej z wieloma warstwami. Nie ma standardowej definicji tego, co dokładnie jest deep. Zazwyczaj możesz myśleć, że głęboka sieć to coś, co jest zbyt duże, aby Twój laptop i komputer mógł ją trenować. Zestaw danych byłby tak ogromny, że nie można go zmieścić w pamięci. Może być potrzebny procesor graficzny, aby przyspieszyć trening.

Deep jest bardziej terminem marketingowym, aby coś brzmiało bardziej profesjonalnie niż inaczej.

CNNjest rodzajem głębokiej sieci neuronowej i istnieje wiele innych typów. Sieci CNN są popularne, ponieważ mają bardzo przydatne aplikacje do rozpoznawania obrazów.


Chciałbym sprzeciwić się kilku z tych stwierdzeń: sieć jest ogólnie uważana za głęboką, gdy ma więcej niż jedną ukrytą warstwę, a większość ludzi zgodzi się, że posiadanie więcej niż 10 ukrytych warstw jest zdecydowanie głębokie. Możliwe jest trenowanie głębokich sieci na twoim laptopie, robię to cały czas. Zestaw danych nie musi być ogromny, zwłaszcza jeśli korzystasz z uczenia transferowego (tj. Ponownie wykorzystujesz warstwy z wstępnie przeszkolonej sieci) i / lub rozszerzania danych. Z pewnością słowo „głęboki” jest bardzo popularne, ale istnieją specjalne techniki głębokiego uczenia się, więc nie jest to tylko szum. :)
MiniQuark

@MiniQuark Dzięki rozszerzeniu danych, twój zestaw danych będzie nadal duży, wystarczy, że zaczniesz od czegoś małego ...
SmallChess 16.09.16

Dobra racja, masz rację. Chciałem powiedzieć, że zestaw danych mieści się w pamięci, ponieważ większość danych generujesz w locie.
MiniQuark,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.