Jaka jest różnica między Konwolucyjną siecią neuronową a zwykłą siecią neuronową?

18

Widziałem te warunki rzucony wokół tego miejsca dużo, szczególnie w znacznikach i .

Wiem, że sieć neuronowa to system oparty luźno na ludzkim mózgu. Ale jaka jest różnica między Konwolucyjną siecią neuronową a zwykłą siecią neuronową? Czy ktoś jest o wiele bardziej skomplikowany i ... skomplikowane niż drugie?

Mityczny
źródło

Odpowiedzi:

23

TLDR: Sieć neuronowa splotowa jest podklasą sieci neuronowych, które mają co najmniej jedną warstwę splotową. Doskonale nadają się do przechwytywania lokalnych informacji (np. Sąsiednie piksele na obrazie lub otaczające słowa w tekście), a także do zmniejszania złożoności modelu (szybsze szkolenie, wymaga mniejszej liczby próbek, zmniejsza ryzyko nadmiernego dopasowania).

Patrz poniższy wykres, który przedstawia kilka neuronowe sieciami architektur tym głęboko konwencjonalnych sieciach neuronowych-: wyobrażanie sobie.


Sieci neuronowe (NN) , a ściślej sztuczne sieci neuronowe (ANN) , to klasa algorytmów uczenia maszynowego, które ostatnio zyskały wiele uwagi (ponownie!) Ze względu na dostępność Big Data i urządzeń do szybkiego przetwarzania danych (większość Deep Learning algorytmy są zasadniczo różnymi odmianami ANN).

Klasa ANN obejmuje kilka architektur, w tym Convolutional Neural Networks ( CNN ), Recurrent Neural Networks ( RNN ) np. LSTM i GRU , Autoencoders i Deep Belief Networks . Dlatego CNN jest tylko jednym rodzajem ANN.

Ogólnie rzecz biorąc, ANN to zbiór połączonych i przestrajalnych jednostek (zwanych także węzłami, neuronami i sztucznymi neuronami), które mogą przekazywać sygnał (zwykle liczbę o wartościach rzeczywistych) z jednej jednostki do drugiej. Liczba (warstw) jednostek, ich typy i sposób, w jaki są ze sobą połączone, nazywany jest architekturą sieci.

W szczególności CNN ma jedną lub więcej warstw jednostek splotu . Jednostka splotu otrzymuje dane wejściowe z wielu jednostek z poprzedniej warstwy, które razem tworzą bliskość. Dlatego jednostki wejściowe (które tworzą małe sąsiedztwo) dzielą się swoimi wagami.

Jednostki splotu (jak również jednostki pulujące) są szczególnie korzystne, ponieważ:

  • Zmniejszają liczbę jednostek w sieci (ponieważ są mapowaniami wiele do jednego ). Oznacza to, że jest mniej parametrów do nauczenia się, co zmniejsza ryzyko nadmiernego dopasowania, ponieważ model byłby mniej złożony niż w pełni połączona sieć.
  • Rozważają kontekst / wspólne informacje w małych dzielnicach. Ta przyszłość jest bardzo ważna w wielu aplikacjach, takich jak przetwarzanie obrazu / wideo, przetwarzanie tekstów i mowy / wydobywanie, ponieważ sąsiednie wejścia (np. Piksele, ramki, słowa itp.) Zwykle niosą ze sobą powiązane informacje.

Przeczytaj poniższe informacje, aby uzyskać więcej informacji na temat (głębokich) CNN:

  1. Klasyfikacja ImageNet z głębokimi konwencjalnymi sieciami neuronowymi
  2. Pogłębiając się dzięki zwojom

ps ANN nie jest „systemem opartym luźno na ludzkim mózgu”, ale raczej klasą systemów inspirowanych połączeniami neuronów w mózgach zwierząt.

Borhan Kazimipour
źródło
11

Konwolucyjne sieci neuronowe (CNN) to sieci neuronowe z ograniczeniami architektonicznymi mającymi na celu zmniejszenie złożoności obliczeniowej i zapewnienie niezmienności translacyjnej (sieć interpretuje wzorce wejściowe tak samo bez względu na tłumaczenie - pod względem rozpoznawania obrazu: banan jest bananem niezależnie od tego, gdzie jest w wizerunek). Konwolucyjne sieci neuronowe mają trzy ważne cechy architektoniczne.

Łączność lokalna: Neurony w jednej warstwie są połączone tylko z neuronami w następnej warstwie, która jest blisko nich przestrzennie. Ten projekt przycina zdecydowaną większość połączeń między kolejnymi warstwami, ale zachowuje te, które niosą najbardziej przydatne informacje. Przyjęto tutaj założenie, że dane wejściowe mają znaczenie przestrzenne, lub w przykładzie widzenia komputerowego związek między dwoma odległymi pikselami jest prawdopodobnie mniej znaczący niż dwóch bliskich sąsiadów.

Wspólne wagi: jest to koncepcja, która sprawia, że ​​CNN są „splotowe”. Zmuszając neurony jednej warstwy do dzielenia się ciężarami, przejście do przodu (podawanie danych przez sieć) staje się równoważne z zebraniem filtra nad obrazem w celu uzyskania nowego obrazu. Szkolenie CNN staje się zadaniem uczenia się filtrów (decydowania, jakich funkcji należy szukać w danych).

Pula i ReLU: CNN mają dwie nieliniowości: warstwy puli i funkcje ReLU. Warstwy pulujące uwzględniają blok danych wejściowych i po prostu przekazują wartość maksymalną. Zmniejsza to rozmiar danych wyjściowych i nie wymaga żadnych dodatkowych parametrów do nauki, więc warstwy puli są często używane do regulowania wielkości sieci i utrzymywania systemu poniżej limitu obliczeniowego. Funkcja ReLU przyjmuje jedno wejście x i zwraca maksimum {0, x}. ReLU(x) = argmax(x, 0). Wprowadza to efekt podobny do tanh (x) lub sigmoid (x) jako nieliniowości w celu zwiększenia siły ekspresji modelu.


Dalsza lektura

Jak wspomniano w innej odpowiedzi, kurs CS 231n Stanforda szczegółowo to omawia. Więcej informacji znajdziesz w tym pisemnym przewodniku i wykładzie . Blogi takie jak ten i ten są również bardzo pomocne.

Jeśli nadal zastanawiasz się, dlaczego CNN mają taką strukturę, proponuję przeczytać artykuł, który je wprowadził, choć jest on dość długi, i być może sprawdzam dyskusję Yanna Lecuna i Christophera Manninga na temat wrodzonych przeorów (założenia, które przyjmujemy, kiedy projektujemy architekturę modelu).

Jackson Waschura
źródło
2
„i zapewnij niezmienność translacyjną”. Co to do cholery jest niezmienność translacyjna? Kiedy wspominasz o tak tajemniczym określeniu, powinieneś go przynajmniej intuicyjnie zdefiniować.
nbro,
1
Ups, zgadzam się - dodałem w krótkim opisie.
Jackson Waschura,
1
To jest dla mnie lepsza odpowiedź, ponieważ dokładnie wyjaśnia, w jaki sposób CNN są specyficznym rodzajem NN. Inne odpowiedzi nie wspominają, że wymuszony jest podział ciężarów.
Denziloe
5

Splotowego sieć neuronowa jest jeden, który ma splotowych warstw. Jeśli ogólna sieć neuronowa jest, luźno mówiąc, zainspirowana ludzkim mózgiem (co nie jest zbyt dokładne), splotowa sieć neuronowa jest inspirowana przez system kory wzrokowej u ludzi i innych zwierząt (który jest bliższy prawdy) . Jak sama nazwa wskazuje, warstwa ta stosuje splot z filtrem do nauki (czyli jądro ), w wyniku czego sieć uczy się wzorów na obrazach: krawędzi, narożników, łuków, a następnie bardziej złożonych figur. Konwolucyjna sieć neuronowa może również zawierać inne warstwy, zwykle pule i gęste warstwy.

Bardzo polecam samouczek CS231n na ten temat: jest bardzo szczegółowy i zawiera wiele bardzo ładnych wizualizacji.

Maksyma
źródło