Konwolucyjna sieć neuronowa - Convolutional neural network

W głębokiej nauki , o splotowego sieci neuronowych ( CNN lub ConvNet ) to klasa sztucznej sieci neuronowej , najczęściej stosowane do analizy obrazów wideo. Są one również znane jako sztuczne sieci neuronowe niezmienne przesunięcia lub niezmienne w przestrzeni ( SIANN ), oparte na architekturze współdzielonej wagi jąder splotu lub filtrów, które przesuwają się wzdłuż cech wejściowych i zapewniają odpowiedzi ekwiwariantne translacji znane jako mapy cech. Wbrew intuicji, większość splotowych sieci neuronowych jest tylko ekwiwariantna , w przeciwieństwie do niezmiennika , do translacji. Mają one zastosowanie w obrazu i wideo uznania , Recommender systemów , klasyfikacji obrazu , segmentacji obrazu , analizy obrazu medycznego , przetwarzania języka naturalnego , interfejsy mózg-komputer i finansowych szeregów czasowych .

CNN to uregulowane wersje perceptronów wielowarstwowych . Perceptrony wielowarstwowe zwykle oznaczają sieci w pełni połączone, to znaczy każdy neuron w jednej warstwie jest połączony ze wszystkimi neuronami w następnej warstwie . „Pełna łączność” tych sieci sprawia, że ​​są one podatne na nadmierne dopasowanie danych. Typowe sposoby regularyzacji lub zapobiegania nadmiernemu dopasowaniu obejmują: karanie parametrów podczas treningu (takich jak spadek wagi) lub ograniczanie łączności (pomijanie połączeń, przerwanie itp.) CNN przyjmują inne podejście do regularyzacji: wykorzystują hierarchiczny wzorzec danych i montować wzory o rosnącej złożoności przy użyciu mniejszych i prostszych wzorów wytłoczonych w ich filtrach. Dlatego w skali łączności i złożoności sieci CNN znajdują się na niższym krańcu.

Sieci splotu były inspirowane przez biologicznych procesów tym, że wzór połączeń między neuronami przypomina organizację zwierząt korze wzrokowej . Poszczególne neurony korowe reagują na bodźce tylko w ograniczonym obszarze pola widzenia, zwanym polem odbiorczym . Pola receptywne różnych neuronów częściowo zachodzą na siebie tak, że obejmują całe pole widzenia.

Sieci CNN wykorzystują stosunkowo niewiele przetwarzania wstępnego w porównaniu z innymi algorytmami klasyfikacji obrazów . Oznacza to, że sieć uczy się optymalizować filtry (lub jądra) poprzez automatyczne uczenie się, podczas gdy w tradycyjnych algorytmach filtry te są wykonywane ręcznie . Ta niezależność od wcześniejszej wiedzy i interwencji człowieka w wyodrębnianie cech jest główną zaletą.

Definicja

Nazwa „splotowa sieć neuronowa” wskazuje, że sieć wykorzystuje operację matematyczną zwaną splotem . Sieci splotowe to wyspecjalizowany rodzaj sieci neuronowych, w których w co najmniej jednej warstwie stosuje się splot zamiast ogólnego mnożenia macierzy.

Architektura

Porównanie splotu LeNet i AlexNet, puli i warstw gęstych

Splotowa sieć neuronowa składa się z warstwy wejściowej, warstw ukrytych i warstwy wyjściowej. W każdej sieci neuronowej ze sprzężeniem do przodu wszelkie warstwy środkowe są nazywane ukrytymi, ponieważ ich wejścia i wyjścia są maskowane przez funkcję aktywacji i końcowy splot . W splotowej sieci neuronowej ukryte warstwy obejmują warstwy, które wykonują sploty. Zazwyczaj obejmuje to warstwę, która wykonuje iloczyn skalarny jądra splotu z macierzą wejściową warstwy. Ten produkt jest zwykle produktem wewnętrznym Frobeniusa , a jego funkcją aktywacji jest zwykle ReLU . Gdy jądro splotu przesuwa się wzdłuż macierzy wejściowej dla warstwy, operacja splotu generuje mapę cech, która z kolei wpływa na dane wejściowe następnej warstwy. Po nim następują inne warstwy, takie jak warstwy puli, warstwy w pełni połączone i warstwy normalizacji.

Warstwy splotowe

W CNN wejście jest tensorem o kształcie: (liczba wejść) x (wysokość wejścia) x (szerokość wejścia) x ( kanały wejściowe ). Po przejściu przez warstwę splotową obraz zostaje wyabstrahowany do mapy obiektów, zwanej również mapą aktywacji, o kształcie: (liczba wejść) x (wysokość mapy obiektów) x (szerokość mapy obiektów) x ( kanały mapy obiektów ).

Warstwy splotowe splatają dane wejściowe i przekazują wynik do następnej warstwy. Jest to podobne do odpowiedzi neuronu w korze wzrokowej na określony bodziec. Każdy neuron splotowy przetwarza dane tylko dla swojego pola receptywnego . Chociaż w pełni połączone ze sprzężeniem do przodu sieci neuronowe mogą być używane do uczenia się funkcji i klasyfikowania danych, ta architektura jest generalnie niepraktyczna w przypadku większych danych wejściowych, takich jak obrazy o wysokiej rozdzielczości. Wymagałoby to bardzo dużej liczby neuronów, nawet w płytkiej architekturze, ze względu na duży rozmiar wejściowy obrazów, gdzie każdy piksel jest istotną cechą wejściową. Na przykład w pełni połączona warstwa dla (małego) obrazu o rozmiarze 100 x 100 ma 10 000 wag dla każdego neuronu w drugiej warstwie. Zamiast tego konwolucja zmniejsza liczbę wolnych parametrów, dzięki czemu sieć jest głębsza. Na przykład, niezależnie od rozmiaru obrazu, użycie obszaru kafelkowego 5 x 5, z których każdy ma te same wspólne wagi, wymaga tylko 25 parametrów, których można się nauczyć. Używanie uregulowanych wag w mniejszej liczbie parametrów pozwala uniknąć problemów z zanikającymi gradientami i eksplodującymi gradientami, które występują podczas propagacji wstecznej w tradycyjnych sieciach neuronowych. Co więcej, splotowe sieci neuronowe są idealne dla danych o topologii przypominającej siatkę (takich jak obrazy), ponieważ relacje przestrzenne między oddzielnymi cechami są brane pod uwagę podczas splotu i/lub łączenia.

Warstwy puli

Sieci splotowe mogą zawierać lokalne i/lub globalne warstwy puli wraz z tradycyjnymi warstwami splotowymi. Warstwy puli zmniejszają wymiary danych, łącząc wyjścia klastrów neuronów w jednej warstwie w pojedynczy neuron w następnej warstwie. Lokalne pulowanie łączy małe klastry, powszechnie stosowane są rozmiary kafelków, takie jak 2 x 2. Globalne łączenie działa na wszystkie neurony mapy funkcji. W powszechnym użyciu są dwa popularne typy poolingu: maksymalne i średnie. Maksymalne łączenie wykorzystuje maksymalną wartość każdego lokalnego klastra neuronów na mapie funkcji, podczas gdy średnie łączenie przyjmuje średnią wartość.

W pełni połączone warstwy

W pełni połączone warstwy łączą każdy neuron w jednej warstwie z każdym neuronem w innej warstwie . Jest taka sama jak tradycyjna wielowarstwowa sieć neuronowa perceptronu (MLP). Spłaszczona matryca przechodzi przez w pełni połączoną warstwę, aby sklasyfikować obrazy.

Pole odbiorcze

W sieciach neuronowych każdy neuron otrzymuje dane wejściowe z pewnej liczby lokalizacji w poprzedniej warstwie. W warstwie splotowej każdy neuron otrzymuje dane wejściowe tylko z ograniczonego obszaru poprzedniej warstwy, zwanego polem recepcyjnym neuronu . Zazwyczaj obszar ma kształt kwadratu (np. 5 na 5 neuronów). Natomiast w warstwie w pełni połączonej polem receptywnym jest cała poprzednia warstwa . Tak więc w każdej warstwie splotowej każdy neuron pobiera dane wejściowe z większego obszaru w danych wejściowych niż poprzednie warstwy. Wynika to z wielokrotnego stosowania splotu, który uwzględnia wartość piksela, a także otaczających go pikseli. W przypadku korzystania z warstw rozszerzonych liczba pikseli w polu receptywnym pozostaje stała, ale pole jest słabiej zapełnione, ponieważ jego wymiary rosną po połączeniu efektu kilku warstw.

Wagi

Każdy neuron w sieci neuronowej oblicza wartość wyjściową, stosując określoną funkcję do wartości wejściowych otrzymanych z pola receptywnego w poprzedniej warstwie. Funkcja stosowana do wartości wejściowych jest określona przez wektor wag i odchylenie (zazwyczaj liczby rzeczywiste). Nauka polega na iteracyjnym dostosowywaniu tych uprzedzeń i wag.

Wektor wag i odchylenia nazywa się filtrami i reprezentuje określone cechy danych wejściowych (np. określony kształt). Cechą wyróżniającą CNN jest to, że wiele neuronów może korzystać z tego samego filtra. Zmniejsza to zużycie pamięci, ponieważ we wszystkich polach receptywnych, które współdzielą ten filtr, używane jest pojedyncze obciążenie i jeden wektor wag, w przeciwieństwie do każdego pola receptywnego, które ma swoje własne obciążenie i ważenie wektorowe.

Historia

CNN są często porównywane do sposobu, w jaki mózg przetwarza wzrok w żywych organizmach .

Pola receptywne w korze wzrokowej

Prace Hubela i Wiesela z lat 50. i 60. pokazały, że kora wzrokowa kota zawiera neurony, które indywidualnie reagują na małe obszary pola widzenia . Pod warunkiem, że oczy się nie poruszają, obszar przestrzeni wzrokowej, w którym bodźce wzrokowe wpływają na odpalanie pojedynczego neuronu, nazywany jest jego polem recepcyjnym . Sąsiednie komórki mają podobne i nakładające się pola receptywne. Wielkość i lokalizacja pola receptywnego zmienia się systematycznie w korze, tworząc kompletną mapę przestrzeni wzrokowej. Kora w każdej półkuli reprezentuje kontralateralne pole widzenia .

Ich artykuł z 1968 r. zidentyfikował dwa podstawowe typy komórek wzrokowych w mózgu:

  • proste komórki , których wyjście jest maksymalizowane przez proste krawędzie mające określone orientacje w ich polu odbioru
  • złożone komórki , które mają większe pola receptywne , których wyjście jest niewrażliwe na dokładne położenie krawędzi w polu.

Hubel i Wiesel zaproponowali również kaskadowy model tych dwóch typów komórek do wykorzystania w zadaniach rozpoznawania wzorców.

Neocognitron, geneza architektury CNN

Neocognitron ” został wprowadzony przez Kunihiko Fukushimę w 1980 roku. Zainspirowany był wspomnianym wcześniej dziełem Hubla i Wiesela. Neokognitron wprowadził dwa podstawowe typy warstw w sieciach CNN: warstwy konwolucyjne i warstwy downsamplingu. Warstwa konwolucyjna zawiera jednostki, których pola receptywne pokrywają skrawek warstwy poprzedniej. Wektor wagowy (zestaw parametrów adaptacyjnych) takiej jednostki jest często nazywany filtrem. Jednostki mogą udostępniać filtry. Warstwy próbkowania w dół zawierają jednostki, których pola receptywne pokrywają fragmenty poprzednich warstw splotowych. Taka jednostka zazwyczaj oblicza średnią aktywacji jednostek w swojej łatce. To próbkowanie w dół pomaga poprawnie klasyfikować obiekty w scenach wizualnych, nawet gdy obiekty są przesunięte.

W wariancie neokognitronu zwanym kresceptronem, zamiast stosować uśrednienie przestrzenne Fukushimy, J. Weng i in. wprowadził metodę zwaną max-pooling, w której jednostka próbkująca w dół oblicza maksymalną liczbę aktywacji jednostek w swojej łatce. Max-pooling jest często używany w nowoczesnych sieciach CNN.

Przez dziesięciolecia zaproponowano kilka nadzorowanych i nienadzorowanych algorytmów uczenia się, aby trenować wagi neokognitronu. Obecnie jednak architektura CNN jest zwykle trenowana poprzez wsteczną propagację .

Neocognitron jest pierwszym CNN, która wymaga jednostki znajdujące się na wielu stanowiskach sieciowych mają masę wspólne.

Splotowe sieci neuronowe zostały zaprezentowane na Neural Information Processing Workshop w 1987 r., automatycznie analizując sygnały zmieniające się w czasie poprzez zastąpienie wyuczonego mnożenia splotem w czasie i zademonstrowane pod kątem rozpoznawania mowy.

Sieci neuronowe z opóźnieniem czasowym

Sieć neuronowa z opóźnieniem czasowym (TDNN) została wprowadzona w 1987 roku przez Alexa Waibel et al. i była jedną z pierwszych sieci konwolucyjnych, ponieważ osiągnęła niezmienność przesunięcia. Dokonał tego, wykorzystując podział wagi w połączeniu z treningiem Backpropagation . W związku z tym, wykorzystując również strukturę piramidalną, jak w neokognitronie, wykonał globalną optymalizację wag zamiast lokalnej.

TDNN to sieci konwolucyjne, które dzielą wagi w wymiarze czasowym. Pozwalają na przetwarzanie sygnałów mowy w czasie. W 1990 Hampshire i Waibel wprowadzili wariant, który wykonuje dwuwymiarowy splot. Ponieważ te TDNN działały na spektrogramach, powstały system rozpoznawania fonemów był niezmienny zarówno w przypadku zmian w czasie, jak i częstotliwości. To zainspirowało niezmienność tłumaczenia w przetwarzaniu obrazu za pomocą CNN. Kafelkowanie wyjść neuronowych może obejmować etapy czasowe.

TDNN osiągają teraz najlepszą wydajność w rozpoznawaniu mowy na odległość.

Maksymalna pula

W 1990 Yamaguchi i in. wprowadzono pojęcie max poolingu, czyli stałej operacji filtrowania, która oblicza i propaguje maksymalną wartość danego regionu. Zrobili to, łącząc TDNN z maksymalnym łączeniem w celu zrealizowania niezależnego od mówcy izolowanego systemu rozpoznawania słów. W swoim systemie używali kilku TDNN na słowo, po jednym na każdą sylabę . Wyniki każdego TDNN w sygnale wejściowym zostały połączone przy użyciu maksymalnej puli, a dane wyjściowe warstw puli były następnie przekazywane do sieci wykonujących rzeczywistą klasyfikację słów.

Rozpoznawanie obrazu za pomocą CNN wytrenowanych przez opadanie gradientowe

System rozpoznawania odręcznie napisanych numerów kodów pocztowych wiązał się ze splotami, w których współczynniki jądra zostały mozolnie ręcznie zaprojektowane.

Yann LeCun i in. (1989) zastosowali propagację wsteczną, aby poznać współczynniki jądra splotu bezpośrednio z obrazów odręcznych liczb. Uczenie było zatem w pełni automatyczne, sprawdzało się lepiej niż ręczne projektowanie współczynników i było dostosowane do szerszego zakresu problemów z rozpoznawaniem obrazów i typów obrazów.

Takie podejście stało się podstawą nowoczesnej wizji komputerowej .

LeNet-5

LeNet-5, pionierska siedmiopoziomowa sieć konwolucyjna autorstwa LeCun et al. w 1998 roku, który klasyfikuje cyfry, został zastosowany przez kilka banków do rozpoznawania odręcznych numerów na czekach ( brytyjski angielski : czeki ) zdigitalizowanych w obrazach 32x32 piksele. Możliwość przetwarzania obrazów o wyższej rozdzielczości wymaga coraz większych warstw splotowych sieci neuronowych, dlatego technika ta jest ograniczona dostępnością zasobów obliczeniowych.

Niezmiennicza sieć neuronowa

Podobnie, niezmiennicza sieć neuronowa została zaproponowana przez W. Zhanga i in. do rozpoznawania znaków w obrazie w 1988 roku. W 1991 roku zmodyfikowano architekturę i algorytm uczenia i zastosowano je do przetwarzania obrazu medycznego i automatycznego wykrywania raka piersi w mammografii .

W 1988 r. zaproponowano inny projekt oparty na splataniu do zastosowania do dekompozycji jednowymiarowych sygnałów splatanych elektromiografii poprzez dekonwolucję. Ten projekt został zmodyfikowany w 1989 roku do innych projektów opartych na dekonwolucji.

Piramida abstrakcji neuronowej

Piramida abstrakcji neuronowej
Piramida abstrakcji neuronowej

Architektura sprzężenia do przodu splotowych sieci neuronowych została rozszerzona w piramidzie abstrakcji neuronowej o połączenia boczne i sprzężenia zwrotnego. Powstała cykliczna sieć splotowa umożliwia elastyczne włączanie informacji kontekstowych w celu iteracyjnego rozwiązywania lokalnych niejednoznaczności. W przeciwieństwie do poprzednich modeli, generowano wyjścia podobne do obrazu w najwyższej rozdzielczości, np. dla zadań segmentacji semantycznej, rekonstrukcji obrazu i lokalizacji obiektów.

implementacje GPU

Chociaż CNNs zostały wynalezione w 1980 roku, ich przełom w 2000 roku wymaga szybkich wdrożeń na grafice Obudowy (GPU).

W 2004 roku KS Oh i K. Jung wykazali, że standardowe sieci neuronowe można znacznie przyspieszyć na GPU. Ich implementacja była 20 razy szybsza niż równoważna implementacja na CPU . W 2005 roku w innym artykule również podkreślono wartość GPGPU dla uczenia maszynowego .

Pierwsza implementacja CNN przez GPU została opisana w 2006 roku przez K. Chellapilla i in. Ich implementacja była 4 razy szybsza niż równoważna implementacja na procesorze. Późniejsze prace wykorzystywały również GPU, początkowo dla innych typów sieci neuronowych (innych niż CNN), zwłaszcza nienadzorowanych sieci neuronowych.

W 2010 roku Dan Ciresan i in. na IDSIA pokazał, że nawet głębokie, standardowe sieci neuronowe z wieloma warstwami mogą być szybko trenowane na GPU poprzez uczenie nadzorowane starą metodą znaną jako propagacja wsteczna . Ich sieć przewyższała poprzednie metody uczenia maszynowego w teście porównawczym odręcznych cyfr MNIST . W 2011 r. rozszerzyli to podejście GPU na CNN, osiągając współczynnik przyspieszenia 60, z imponującymi wynikami. W 2011 roku wykorzystali takie CNN na GPU, aby wygrać konkurs rozpoznawania obrazu, w którym po raz pierwszy osiągnęli nadludzką wydajność. Od 15 maja 2011 r. do 30 września 2012 r. ich CNN wygrały nie mniej niż cztery konkursy wizerunkowe. W 2012 r. znacznie poprawili się również w zakresie najlepszej wydajności w literaturze dla wielu baz danych obrazów , w tym bazy danych MNIST, bazy danych NORB, zestawu danych HWDB1.0 (znaki chińskie) i zestawu danych CIFAR10 (zestaw danych zawierający 60000 obrazów RGB oznaczonych 32x32 ). .

Następnie podobny CNN oparty na GPU autorstwa Alexa Krizhevsky'ego i in. wygrał ImageNet Large Scale Visual Recognition Challenge 2012. Bardzo głęboka sieć CNN z ponad 100 warstwami firmy Microsoft wygrała konkurs ImageNet 2015.

Implementacje Intel Xeon Phi

W porównaniu ze szkoleniem CNN przy użyciu procesorów graficznych , koprocesorowi Intel Xeon Phi nie poświęcono wiele uwagi . Godnym uwagi opracowaniem jest metoda zrównoleglania do trenowania splotowych sieci neuronowych na procesorze Intel Xeon Phi, nazwana Controlled Hogwild with Arbitrary Order of Synchronization (CHAOS). CHAOS wykorzystuje równoległość na poziomie wątków i SIMD, która jest dostępna w Intel Xeon Phi.

Cechy wyróżniające

W przeszłości do rozpoznawania obrazów stosowano tradycyjne modele perceptronów wielowarstwowych (MLP). Jednak pełna łączność między węzłami spowodowała przekleństwo wymiarowości i była trudna obliczeniowo w przypadku obrazów o wyższej rozdzielczości. Obraz o rozdzielczości 1000 × 1000 pikseli z kanałami kolorów RGB ma 3 miliony wag, co jest zbyt duże, aby można było wydajnie przetwarzać na dużą skalę z pełną łącznością.

Warstwy CNN ułożone w 3 wymiarach

Na przykład w CIFAR-10 obrazy mają tylko rozmiar 32×32×3 (32 szerokie, 32 wysokie, 3 kanały kolorów), więc pojedynczy w pełni połączony neuron w pierwszej ukrytej warstwie zwykłej sieci neuronowej miałby 32* 32*3 = 3072 wagi. Jednak obraz o wymiarach 200×200 prowadziłby do neuronów, które mają 200*200*3 = 120 000 wag.

Taka architektura sieci nie uwzględnia również przestrzennej struktury danych, traktując oddalone od siebie piksele wejściowe w taki sam sposób, jak piksele znajdujące się blisko siebie. To ignoruje lokalizację odniesienia w danych z topologią siatki (np. obrazy), zarówno obliczeniowo, jak i semantycznie. Zatem pełna łączność neuronów jest marnotrawstwem dla celów takich jak rozpoznawanie obrazów, które są zdominowane przez przestrzennie lokalne wzorce wejściowe.

Konwolucyjne sieci neuronowe to warianty wielowarstwowych perceptronów, zaprojektowane do naśladowania zachowania kory wzrokowej . Modele te łagodzą wyzwania stawiane przez architekturę MLP, wykorzystując silną przestrzenną korelację lokalną obecną w naturalnych obrazach. W przeciwieństwie do MLP, CNN mają następujące cechy wyróżniające:

  • Woluminy 3D neuronów. Warstwy CNN mają neurony ułożone w 3 wymiarach : szerokości, wysokości i głębokości. Gdzie każdy neuron wewnątrz warstwy splotowej jest połączony tylko z małym obszarem warstwy przed nim, zwanym polem receptywnym. Różne typy warstw, zarówno lokalnie, jak i całkowicie połączone, są ułożone w stos, tworząc architekturę CNN.
  • Łączność lokalna: zgodnie z koncepcją pól receptywnych, CNN wykorzystują lokalność przestrzenną, wymuszając lokalny wzorzec łączności między neuronami sąsiednich warstw. W ten sposób architektura zapewnia, że ​​wyuczone „ filtry ” wytwarzają najsilniejszą reakcję na przestrzennie lokalny wzorzec wejściowy. Układanie wielu takich warstw prowadzi do nieliniowych filtrów, które stają się coraz bardziej globalne (tj. reagują na większy obszar przestrzeni pikseli), tak że sieć najpierw tworzy reprezentacje małych części danych wejściowych, a następnie składa z nich reprezentacje większych obszarów.
  • Wspólne wagi: w sieciach CNN każdy filtr jest replikowany w całym polu widzenia. Te zreplikowane jednostki mają tę samą parametryzację (wektor wagi i odchylenie) i tworzą mapę cech. Oznacza to, że wszystkie neurony w danej warstwie splotowej reagują na tę samą cechę w swoim specyficznym polu odpowiedzi. Replikacja jednostek w ten sposób pozwala, aby wynikowa mapa aktywacji była ekwiwariantna przy przesunięciu lokalizacji obiektów wejściowych w polu widzenia, tj. zapewniają ekwiwariancję translacyjną - zakładając, że warstwa ma jeden krok.
  • Łączenie: W warstwach zbiorczych sieci CNN mapy obiektów są podzielone na prostokątne podregiony, a obiekty w każdym prostokącie są niezależnie próbkowane w dół do pojedynczej wartości, zwykle poprzez przyjmowanie ich wartości średniej lub maksymalnej. Oprócz zmniejszenia rozmiarów map cech, operacja łączenia zapewnia pewien stopień lokalnej niezmienności translacji cechom w nich zawartym, dzięki czemu CNN jest bardziej odporny na zmiany ich pozycji.

Razem te właściwości pozwalają CNN osiągnąć lepsze uogólnienie na problemy ze wzrokiem . Dzielenie się wagami radykalnie zmniejsza liczbę wyuczonych wolnych parametrów , zmniejszając w ten sposób wymagania dotyczące pamięci do obsługi sieci i umożliwiając trenowanie większych, bardziej wydajnych sieci.

Cegiełki

Architektura CNN składa się ze stosu odrębnych warstw, które przekształcają objętość wejściową w objętość wyjściową (np. przechowującą wyniki klas) za pomocą funkcji różniczkującej. Powszechnie stosuje się kilka różnych typów warstw. Zostały one omówione poniżej.

Neurony warstwy splotowej (niebieski), połączone z ich polem receptywnym (czerwony)

Warstwa splotowa

Warstwa konwolucyjna jest podstawowym budulcem CNN. Parametry warstwy składają się z zestawu uczących się filtrów (lub jąder ), które mają małe pole receptywne, ale rozciągają się na pełną głębokość głośności wejściowej. Podczas przejścia do przodu każdy filtr jest splatany w poprzek szerokości i wysokości objętości wejściowej, obliczając iloczyn skalarny między wpisami filtra a wejściem, tworząc dwuwymiarową mapę aktywacji tego filtra. W rezultacie sieć uczy się filtrów, które aktywują się, gdy wykryje określony typ funkcji w określonej pozycji przestrzennej na wejściu.

Ułożenie map aktywacji dla wszystkich filtrów wzdłuż wymiaru głębokości tworzy pełną objętość wyjściową warstwy konwolucji. Każdy wpis w objętości wyjściowej może zatem być również interpretowany jako wyjście neuronu, który patrzy na mały obszar na wejściu i współdzieli parametry z neuronami w tej samej mapie aktywacji.

Łączność lokalna

Typowa architektura CNN

Kiedy mamy do czynienia z wejściami wielowymiarowymi, takimi jak obrazy, niepraktyczne jest łączenie neuronów ze wszystkimi neuronami w poprzednim tomie, ponieważ taka architektura sieci nie uwzględnia przestrzennej struktury danych. Sieci splotowe wykorzystują przestrzennie lokalną korelację, wymuszając rzadki wzorzec lokalnej łączności między neuronami sąsiednich warstw: każdy neuron jest połączony tylko z niewielkim obszarem objętości wejściowej.

Zakres tej łączności to hiperparametr zwany polem receptywnym neuronu. Połączenia są lokalne w przestrzeni (wzdłuż szerokości i wysokości), ale zawsze rozciągają się na całej głębokości objętości wejściowej. Taka architektura zapewnia, że ​​wyuczone filtry wytwarzają najsilniejszą reakcję na przestrzennie lokalny wzorzec wejściowy.

Aranżacja przestrzenna

Trzy hiperparametry kontrolują wielkość wyjściowej objętości warstwy splotowej: głębokość, wielkość kroku i wypełnienie.

  • Głębokość objętości wyjściowej kontroluje liczbę neuronów w warstwie, które łączą się w tym samym regionie wielkości wejściowych. Te neurony uczą się aktywować dla różnych funkcji na wejściu. Na przykład, jeśli pierwsza warstwa splotowa pobiera surowy obraz jako dane wejściowe, wówczas różne neurony wzdłuż wymiaru głębokości mogą aktywować się w obecności różnych zorientowanych krawędzi lub plam koloru.
  • Krok kontroluje sposób przydzielania kolumn głębokości wokół szerokości i wysokości. Jeśli krok wynosi 1, przesuwamy filtry o jeden piksel na raz. Prowadzi to do silnego nakładania się pól receptywnych między kolumnami i dużych wolumenów wyjściowych. Dla dowolnej liczby całkowitejkrok S oznacza, że ​​filtr jest tłumaczony na S jednostek naraz na wyjście. W praktycejest rzadkością. Większy krok oznacza mniejsze nakładanie się pól odbiorczych i mniejsze wymiary przestrzenne objętości wyjściowej.
  • Czasami wygodnie jest uzupełnić dane wejściowe zerami (lub innymi wartościami, takimi jak średnia regionu) na granicy głośności wejściowej. Rozmiar tego dopełnienia to trzeci hiperparametr. Dopełnienie zapewnia kontrolę nad wielkością przestrzenną głośności wyjściowej. W szczególności, czasami pożądane jest dokładne zachowanie przestrzennego rozmiaru głośności wejściowej, co jest powszechnie określane jako „taka sama” dopełnienie.

Przestrzenny rozmiar objętości wyjściowej jest funkcją rozmiaru objętości wejściowej , rozmiaru pola jądra neuronów warstwy splotowej, kroku i ilości zerowego wypełnienia na granicy. Liczba neuronów, które „mieszczą się” w danej objętości to wtedy:

Jeśli ta liczba nie jest liczbą całkowitą , oznacza to, że kroki są nieprawidłowe i neurony nie mogą być rozmieszczone tak, aby pasowały do ​​objętości wejściowej w sposób symetryczny . Ogólnie rzecz biorąc, ustawienie zerowego dopełnienia na wartość kroku zapewnia, że ​​głośność wejściowa i wyjściowa będą miały ten sam rozmiar przestrzennie. Jednak nie zawsze jest konieczne wykorzystanie wszystkich neuronów z poprzedniej warstwy. Na przykład projektant sieci neuronowej może zdecydować się na użycie tylko części dopełnienia.

Udostępnianie parametrów

Schemat współdzielenia parametrów jest używany w warstwach splotowych do kontrolowania liczby wolnych parametrów. Opiera się na założeniu, że jeśli cecha łatki jest użyteczna do obliczenia w pewnym położeniu przestrzennym, to powinna być również użyteczna do obliczenia w innych położeniach. Oznaczając pojedynczy dwuwymiarowy wycinek głębokości jako wycinek głębokości , neurony w każdym wycinku głębokości są ograniczone do używania tych samych wag i odchyleń.

Ponieważ wszystkie neurony w jednym wycinku głębokości mają te same parametry, przejście do przodu w każdym wycinku głębokości warstwy splotowej może być obliczone jako splot wag neuronu z objętością wejściową. W związku z tym powszechne jest odwoływanie się do zestawów wag jako do filtra (lub jądra ), który jest splątany z danymi wejściowymi. Wynikiem tego splotu jest mapa aktywacji , a zestaw map aktywacji dla każdego innego filtra jest ułożony razem wzdłuż wymiaru głębokości, aby wytworzyć objętość wyjściową. Współdzielenie parametrów przyczynia się do niezmienności translacji architektury CNN.

Czasami założenie o współdzieleniu parametrów może nie mieć sensu. Dzieje się tak zwłaszcza wtedy, gdy obrazy wejściowe do CNN mają określoną, wyśrodkowaną strukturę; dla których oczekujemy poznania zupełnie innych cech w różnych lokalizacjach przestrzennych. Jednym z praktycznych przykładów jest sytuacja, gdy danymi wejściowymi są twarze wyśrodkowane na obrazie: możemy oczekiwać, że w różnych częściach obrazu zostaną wyuczone różne cechy charakterystyczne dla oczu lub włosów. W takim przypadku powszechne jest rozluźnienie schematu współdzielenia parametrów i zamiast tego po prostu nazywanie warstwy „warstwą lokalnie połączoną”.

Warstwa puli

Maksymalna pula z filtrem 2x2 i krokiem = 2

Inną ważną koncepcją CNN jest łączenie, które jest formą nieliniowego próbkowania w dół . Istnieje kilka nieliniowych funkcji służących do implementacji puli, przy czym pula maksymalna jest najbardziej powszechna. To dzieli obraz wejściowy zestawu prostokątów, a na każdej z tych subregionie wyprowadza wartość maksymalną.

Intuicyjnie dokładna lokalizacja obiektu jest mniej ważna niż jego przybliżona lokalizacja w stosunku do innych obiektów. Na tym właśnie polega idea wykorzystania puli w splotowych sieciach neuronowych. Warstwa puli służy do progresywnego zmniejszania przestrzennego rozmiaru reprezentacji, do zmniejszania liczby parametrów, zużycia pamięci i ilości obliczeń w sieci, a tym samym do kontrolowania overfittingu . Nazywa się to próbkowaniem w dół. Powszechne jest okresowe umieszczanie warstwy puli między kolejnymi warstwami splotowymi (po każdej zwykle następuje funkcja aktywacji, taka jak warstwa ReLU ) w architekturze CNN. Chociaż warstwy puli przyczyniają się do lokalnej niezmienności tłumaczenia, nie zapewniają globalnej niezmienności tłumaczenia w CNN, chyba że jest używana forma globalnego puli. Warstwa puli zwykle działa niezależnie na każdej głębokości lub wycinku danych wejściowych i zmienia jej rozmiar przestrzennie. Bardzo powszechną formą max poolingu jest warstwa z filtrami o rozmiarze 2×2, nakładana z krokiem 2, która podpróbkuje każdy wycinek głębokości w danych wejściowych o 2 zarówno wzdłuż szerokości, jak i wysokości, odrzucając 75% aktywacji:

W tym przypadku każda maksymalna operacja to ponad 4 liczby. Wymiar głębokości pozostaje niezmieniony (dotyczy to również innych form łączenia).

Oprócz max łączenia jednostki łącznych można wykorzystywać inne funkcje, takie jak średnia łączenia lub 2 -norm łączenia. Średnie łączenie było często używane w przeszłości, ale ostatnio wypadło z łask w porównaniu z maksymalnym łączeniem, które generalnie działa lepiej w praktyce.

Ze względu na efekty szybkiego przestrzennego zmniejszania rozmiaru reprezentacji, ostatnio pojawiła się tendencja do używania mniejszych filtrów lub całkowitego odrzucania warstw puli.

Łączenie RoI do rozmiaru 2x2. W tym przykładzie propozycja regionu (parametr wejściowy) ma rozmiar 7x5.

PuleRegion of Interest ” (znane również jako pulowanie RoI) to wariant maksymalnej puli, w którym rozmiar danych wyjściowych jest stały, a parametrem jest prostokąt wejściowy.

Pooling jest ważnym elementem splotowych sieci neuronowych do wykrywania obiektów w oparciu o architekturę Fast R-CNN.

Warstwa ReLU

ReLU to skrót od jednostki liniowej rektyfikowanej , w której zastosowano nienasyconą funkcję aktywacji . Skutecznie usuwa wartości ujemne z mapy aktywacji, ustawiając je na zero. Wprowadza nieliniowości do funkcji decyzyjnej oraz do całej sieci bez wpływu na pola recepcyjne warstw splotowych.

Inne funkcje również mogą być stosowane w celu zwiększenia nieliniowości np nasyconej tangens hiperboliczny , i funkcja esicy . ReLU jest często preferowany w stosunku do innych funkcji, ponieważ trenuje sieć neuronową kilka razy szybciej bez znaczącej utraty dokładności uogólniania .

W pełni połączona warstwa

Po kilku warstwach splotowych i maksymalizacji puli, ostateczna klasyfikacja odbywa się za pomocą w pełni połączonych warstw. Neurony w warstwie w pełni połączonej mają połączenia ze wszystkimi aktywacjami w warstwie poprzedniej, jak widać w zwykłych (niesplotowych) sztucznych sieciach neuronowych . Ich aktywacje można zatem obliczyć jako transformację afiniczną , z mnożeniem macierzy, po którym następuje przesunięcie odchylenia ( dodawanie wektora wyuczonego lub ustalonego składnika odchylenia).

Warstwa strat

„Warstwa strat” lub „ funkcja strat ” określa, w jaki sposób uczenie wpływa na odchylenie między przewidywanymi wynikami sieci a prawdziwymi etykietami danych (podczas uczenia nadzorowanego). W zależności od konkretnego zadania można zastosować różne funkcje strat .

Funkcja straty Softmax służy do przewidywania pojedynczej klasy K wzajemnie wykluczających się klas. Sigmoidalna strata entropii krzyżowej jest używana do przewidywania niezależnych wartości prawdopodobieństwa K w . Strata euklidesowa jest używana do regresji do etykiet o wartościach rzeczywistych .

Hiperparametry

Hiperparametry to różne ustawienia używane do sterowania procesem uczenia. CNN wykorzystują więcej hiperparametrów niż standardowy perceptron wielowarstwowy (MLP).

Rozmiar jądra

Jądro to liczba pikseli przetwarzanych razem. Zazwyczaj wyrażany jest jako wymiary jądra, np. 2x2 lub 3x3.

Wyściółka

Padding to dodanie (zwykle) pikseli o wartości 0 na krawędziach obrazu. Dzieje się tak, aby piksele graniczne nie były niedowartościowane (utracone) z danych wyjściowych, ponieważ zwykle uczestniczyłyby tylko w jednym wystąpieniu pola receptywnego. Dopełnienie jest zwykle ustawione na wymiar jądra -1. Tak więc jądro 3x3 otrzyma 2-pikselowy pad ze wszystkich stron obrazu.

Krok

Krok to liczba pikseli, o jaką przesuwa się okno analizy w każdej iteracji. Krok równy 2 oznacza, że ​​każde jądro jest przesunięte o 2 piksele od swojego poprzednika.

Liczba filtrów

Ponieważ rozmiar mapy obiektów zmniejsza się wraz z głębokością, warstwy w pobliżu warstwy wejściowej mają zwykle mniej filtrów, podczas gdy wyższe warstwy mogą mieć ich więcej. Aby wyrównać obliczenia na każdej warstwie, iloczyn wartości cech v a z pozycją piksela jest utrzymywany w przybliżeniu na stałym poziomie we wszystkich warstwach. Zachowanie większej ilości informacji o danych wejściowych wymagałoby utrzymania całkowitej liczby aktywacji (liczba map obiektów razy liczba pozycji pikseli) niezmniejszającej się z jednej warstwy do następnej.

Liczba map funkcji bezpośrednio steruje wydajnością i zależy od liczby dostępnych przykładów i złożoności zadania.

Rozmiar filtra

Powszechne rozmiary filtrów występujące w literaturze znacznie się różnią i są zwykle wybierane na podstawie zestawu danych.

Wyzwaniem jest znalezienie odpowiedniego poziomu szczegółowości, tak aby tworzyć abstrakcje w odpowiedniej skali, przy danym zestawie danych i bez nadmiernego dopasowania .

Typ i rozmiar poolingu

Zazwyczaj stosuje się maksymalne łączenie , często z wymiarem 2x2. Oznacza to, że dane wejściowe są drastycznie zmniejszane , co zmniejsza koszty przetwarzania.

Duże wolumeny wejściowe mogą gwarantować łączenie 4×4 w niższych warstwach. Większa pula zmniejsza rozmiar sygnału i może skutkować niedopuszczalną utratą informacji . Często najlepiej sprawdzają się nienakładające się okna puli.

Rozszerzanie się

Dylatacja polega na ignorowaniu pikseli w jądrze. Zmniejsza to przetwarzanie/pamięć potencjalnie bez znaczącej utraty sygnału. Dylatacja 2 na jądrze 3x3 rozszerza jądro do 7x7, jednocześnie przetwarzając 9 (równo rozmieszczonych) pikseli. W związku z tym rozszerzenie 4 rozszerza jądro do 15x15.

Równoważność tłumaczenia

Powszechnie przyjmuje się, że CNN są niezmienne względem przesunięć danych wejściowych. Jednak warstwy splotu lub łączenia w CNN, które nie mają kroku większego niż jeden, są ekwiwariantne , w przeciwieństwie do niezmienników , w przypadku translacji danych wejściowych. Warstwy z krokiem większym niż jeden ignorują twierdzenie Nyquista-Shannona o próbkowaniu i prowadzą do aliasingu sygnału wejściowego, co łamie właściwość equivariance (zwaną również kowariancją). Co więcej, jeśli CNN korzysta z w pełni połączonych warstw, ekwiwariancja translacji nie oznacza niezmienności translacji , ponieważ w pełni połączone warstwy nie są niezmienne względem przesunięć danych wejściowych. Jednym z rozwiązań zapewniających całkowitą niezmienność translacji jest uniknięcie próbkowania w dół w całej sieci i zastosowanie globalnej średniej puli w ostatniej warstwie. Dodatkowo zaproponowano kilka innych rozwiązań cząstkowych, takich jak antyaliasing , przestrzenne sieci transformatorowe , augmentacja danych , podpróbkowanie połączone z pulowaniem oraz kapsułowe sieci neuronowe .

Ocena

Dokładność ostatecznego modelu opartego na podczęści zbioru danych oddzielona na początku, często nazywana zbiorem testowym. Innym razem stosowane są metody, takie jak k - krotna walidacja krzyżowa . Inne strategie obejmują stosowanie przewidywania konforemnego .

Metody regularyzacji

Regularyzacja to proces wprowadzania dodatkowych informacji w celu rozwiązania źle postawionego problemu lub zapobieżenia nadmiernemu dopasowaniu . CNN stosują różne rodzaje regularyzacji.

Empiryczny

Spadkowicz

Ponieważ w pełni połączona warstwa zajmuje większość parametrów, jest podatna na nadmierne dopasowanie. Jedną z metod zmniejszenia nadmiernego dopasowania jest przerywanie pracy . Na każdym etapie uczenia poszczególne węzły są albo „wyrzucane” z sieci (ignorowane) z prawdopodobieństwem, albo utrzymywane z prawdopodobieństwem , tak że pozostaje zredukowana sieć; krawędzie przychodzące i wychodzące do wyrzuconego węzła są również usuwane. Na tym etapie na danych szkolona jest tylko sieć zredukowana. Usunięte węzły są następnie ponownie wstawiane do sieci z ich oryginalnymi wagami.

Na etapach szkoleniowych wynosi zwykle 0,5; w przypadku węzłów wejściowych jest zwykle znacznie wyższy, ponieważ informacje są bezpośrednio tracone, gdy węzły wejściowe są ignorowane.

Idealnie, w czasie testowania po zakończeniu szkolenia, chcielibyśmy znaleźć przykładową średnią wszystkich możliwych porzuconych sieci; niestety jest to niewykonalne dla dużych wartości . Możemy jednak znaleźć przybliżenie, używając pełnej sieci z wyjściem każdego węzła ważonym współczynnikiem , więc oczekiwana wartość wyjścia dowolnego węzła jest taka sama jak na etapach uczenia. Jest to największy wkład metody dropout: chociaż skutecznie generuje sieci neuronowe i jako taka umożliwia łączenie modeli, w czasie testu wystarczy przetestować tylko jedną sieć.

Unikając trenowania wszystkich węzłów na wszystkich danych treningowych, porzucanie zmniejsza nadmierne dopasowanie. Metoda znacząco poprawia również szybkość treningu. To sprawia, że ​​połączenie modeli jest praktyczne, nawet w przypadku głębokich sieci neuronowych . Technika ta wydaje się ograniczać interakcje między węzłami, prowadząc ich do uczenia się bardziej niezawodnych funkcji, które lepiej uogólniają nowe dane.

DropConnect

DropConnect to uogólnienie porzucania, w którym każde połączenie, a nie każda jednostka wyjściowa, może zostać porzucone z prawdopodobieństwem . W ten sposób każda jednostka otrzymuje dane wejściowe z losowego podzbioru jednostek w poprzedniej warstwie.

DropConnect jest podobny do dropout, ponieważ wprowadza dynamiczną rzadkość w modelu, ale różni się tym, że rzadkość dotyczy wag, a nie wektorów wyjściowych warstwy. Innymi słowy, warstwa w pełni połączona z DropConnect staje się warstwą słabo połączoną, w której połączenia są wybierane losowo na etapie treningu.

Łączenie stochastyczne

Główną wadą Dropout jest to, że nie daje takich samych korzyści dla warstw splotowych, w których neurony nie są w pełni połączone.

W pulowaniu stochastycznym konwencjonalne deterministyczne operacje pulowania są zastępowane procedurą stochastyczną, w której aktywacja w obrębie każdego regionu pulowania jest wybierana losowo zgodnie z rozkładem wielomianowym , określonym przez czynności w regionie pulowania. To podejście jest wolne od hiperparametrów i można je łączyć z innymi podejściami do regularyzacji, takimi jak porzucanie i powiększanie danych .

Alternatywny widok puli stochastycznej jest taki, że jest ona równoważna standardowej puli max, ale z wieloma kopiami obrazu wejściowego, z których każda ma małe lokalne deformacje . Jest to podobne do wyraźnych deformacji sprężystych obrazów wejściowych, co zapewnia doskonałą wydajność na zbiorze danych MNIST . Użycie puli stochastycznej w modelu wielowarstwowym daje wykładniczą liczbę deformacji, ponieważ selekcje w wyższych warstwach są niezależne od tych poniżej.

Sztuczne dane

Ponieważ stopień dopasowania modelu zależy zarówno od jego mocy, jak i ilości szkolenia, które otrzymuje, zapewnienie splotowej sieci większej liczby przykładów szkolenia może zmniejszyć nadmierne dopasowanie. Ponieważ sieci te są zwykle szkolone przy użyciu wszystkich dostępnych danych, jednym z podejść jest generowanie nowych danych od zera (jeśli to możliwe) lub zakłócanie istniejących danych w celu utworzenia nowych. Na przykład obrazy wejściowe można przycinać, obracać lub przeskalowywać w celu utworzenia nowych przykładów z takimi samymi etykietami, jak oryginalny zestaw uczący.

Wyraźny

Wczesne zatrzymanie

Jedną z najprostszych metod zapobiegania nadmiernemu dopasowaniu sieci jest po prostu przerwanie treningu, zanim nadużycie będzie miało szansę wystąpić. Ma to tę wadę, że proces uczenia się zostaje zatrzymany.

Liczba parametrów

Innym prostym sposobem zapobiegania nadmiernemu dopasowaniu jest ograniczenie liczby parametrów, zazwyczaj przez ograniczenie liczby ukrytych jednostek w każdej warstwie lub ograniczenie głębokości sieci. W przypadku sieci splotowych rozmiar filtra wpływa również na liczbę parametrów. Ograniczenie liczby parametrów bezpośrednio ogranicza moc predykcyjną sieci, zmniejszając złożoność funkcji, jaką może ona wykonywać na danych, a tym samym ogranicza ilość overfittingu. Odpowiada to „ norma zero ”.

Spadek wagi

Prostą formą dodanego regulatora jest zanik wagi, który po prostu dodaje dodatkowy błąd, proporcjonalny do sumy wag ( L1 norm ) lub kwadratu wielkości ( L2 norm ) wektora wag, do błędu w każdym węźle. Poziom akceptowalnej złożoności modelu można zmniejszyć, zwiększając stałą proporcjonalności (hiperparametr „alfa”), zwiększając w ten sposób karę za duże wektory wag.

Regularyzacja L2 jest najczęstszą formą regularyzacji. Można go wdrożyć poprzez karanie do kwadratu wielkości wszystkich parametrów bezpośrednio w celu. Regularyzacja L2 ma intuicyjną interpretację silnie penalizującą wektory wag szczytowych i preferowanie wektorów wag rozproszonych. Ze względu na multiplikatywne interakcje między wagami a danymi wejściowymi, ma to przydatną właściwość zachęcania sieci do korzystania ze wszystkich danych wejściowych w niewielkim stopniu, a nie w części często.

Powszechna jest również regularyzacja L1. Powoduje to, że wektory wag są rozrzedzone podczas optymalizacji. Innymi słowy, neurony z regularyzacją L1 kończą używać tylko nielicznego podzbioru swoich najważniejszych danych wejściowych i stają się prawie niezmienne w stosunku do zaszumionych danych wejściowych. L1 z regularyzacją L2 można łączyć; nazywa się to elastyczną regularyzacją sieci .

Maksymalne ograniczenia norm

Inną formą regularyzacji jest wymuszenie absolutnego górnego ograniczenia wielkości wektora wagowego dla każdego neuronu i użycie przewidywanego spadku gradientu do wymuszenia ograniczenia. W praktyce odpowiada to wykonaniu aktualizacji parametrów w normalny sposób, a następnie wymuszenie ograniczenia przez zaciśnięcie wektora wagi każdego neuronu w celu spełnienia . Typowe wartości są rzędu 3-4. Niektóre artykuły donoszą o poprawie w przypadku korzystania z tej formy regularyzacji.

Hierarchiczne układy współrzędnych

Łączenie powoduje utratę precyzyjnych relacji przestrzennych między częściami wysokiego poziomu (takimi jak nos i usta na obrazie twarzy). Te relacje są potrzebne do rozpoznawania tożsamości. Nakładanie pul, dzięki czemu każda funkcja występuje w wielu pulach, pomaga zachować informacje. Samo tłumaczenie nie może ekstrapolować zrozumienia relacji geometrycznych na radykalnie nowy punkt widzenia, taki jak inna orientacja lub skala. Z drugiej strony ludzie są bardzo dobrzy w ekstrapolacji; po zobaczeniu nowego kształtu, gdy mogą go rozpoznać z innego punktu widzenia.

Wcześniejszym powszechnym sposobem radzenia sobie z tym problemem jest szkolenie sieci na przekształconych danych w różnych orientacjach, skalach, oświetleniu itp., aby sieć mogła poradzić sobie z tymi zmianami. Jest to intensywne obliczeniowo w przypadku dużych zbiorów danych. Alternatywą jest użycie hierarchii ramek współrzędnych i użycie grupy neuronów do przedstawienia koniunkcji kształtu cechy i jej położenia względem siatkówki . Pozycja względem siatkówki jest relacją między układem współrzędnych siatkówki a układem współrzędnych cech wewnętrznych.

Tak więc jednym ze sposobów przedstawienia czegoś jest osadzenie w nim ramki współrzędnych. Pozwala to na rozpoznawanie dużych cech przy użyciu spójności ułożenia ich części (np. pozy nosa i ust umożliwiają spójną prognozę ułożenia całej twarzy). Takie podejście zapewnia, że ​​jednostka wyższego poziomu (np. twarz) jest obecna, gdy niższy poziom (np. nos i usta) zgadzają się co do przewidywania pozy. Wektory aktywności neuronalnej reprezentujące pozę („wektory ułożenia”) umożliwiają przekształcenia przestrzenne modelowane jako operacje liniowe, które ułatwiają sieci poznanie hierarchii bytów wizualnych i uogólnianie ich w różnych punktach widzenia. Jest to podobne do sposobu, w jaki ludzki system wzrokowy narzuca układy współrzędnych w celu przedstawienia kształtów.

Aplikacje

Rozpoznawanie obrazu

Sieci CNN są często używane w systemach rozpoznawania obrazów . W 2012 r. w bazie danych MNIST zgłoszono poziom błędu na poziomie 0,23% . Inny artykuł o wykorzystaniu CNN do klasyfikacji obrazów donosił, że proces uczenia się był „zadziwiająco szybki”; w tej samej pracy najlepsze opublikowane wyniki od 2011 r. osiągnięto w bazie danych MNIST i bazie NORB. Następnie podobna stacja CNN o nazwie AlexNet wygrała konkurs ImageNet Large Scale Visual Recognition Challenge 2012.

Po zastosowaniu do rozpoznawania twarzy CNN osiągnęły duży spadek wskaźnika błędów. Inny artykuł donosił o 97,6% rozpoznawalności na „5600 nieruchomych obrazach więcej niż 10 osób”. CNN zostały wykorzystane do oceny jakości wideo w sposób obiektywny po treningu manualnym; wynikowy system miał bardzo niski pierwiastek błędu średniokwadratowego .

IMAGEnet Large Scale wizualna Uznanie Wyzwanie jest punktem odniesienia w klasyfikacji obiektów i wykrywania, miliony obrazów i setek klas obiektów. W ILSVRC 2014, dużym wyzwaniu dotyczącym rozpoznawania wizualnego, prawie każdy wysoko oceniany zespół używał CNN jako swojej podstawowej struktury. Zwycięzca GoogLeNet (fundament DeepDream ) zwiększył średnią precyzję wykrywania obiektów do 0,439329 i zredukował błąd klasyfikacji do 0,06656, co jest najlepszym do tej pory wynikiem. Jego sieć nałożyła ponad 30 warstw. Wydajność splotowych sieci neuronowych w testach ImageNet była zbliżona do ludzkich. Najlepsze algorytmy nadal zmagają się z przedmiotami, które są małe lub cienkie, takimi jak mała mrówka na łodydze kwiatu lub osoba trzymająca pióro w dłoni. Mają też problemy z obrazami, które zostały zniekształcone za pomocą filtrów, co jest coraz bardziej powszechnym zjawiskiem w nowoczesnych aparatach cyfrowych. W przeciwieństwie do tego, tego rodzaju obrazy rzadko niepokoją ludzi. Jednak ludzie mają zwykle problemy z innymi problemami. Na przykład nie są dobrzy w klasyfikowaniu obiektów do drobnoziarnistych kategorii, takich jak konkretna rasa psa lub gatunek ptaka, podczas gdy radzą sobie z tym splotowe sieci neuronowe.

W 2015 r. wielowarstwowa telewizja CNN wykazała zdolność dostrzegania twarzy pod różnymi kątami, w tym do góry nogami, nawet przy częściowej zasłonięcie, z konkurencyjną wydajnością. Sieć została przeszkolona w oparciu o bazę danych zawierającą 200 000 zdjęć, które zawierały twarze pod różnymi kątami i orientacjami oraz kolejne 20 milionów zdjęć bez twarzy. Wykorzystali partie 128 obrazów w ponad 50 000 iteracji.

Analiza wideo

W porównaniu z domenami danych obrazu, zastosowanie CNN do klasyfikacji wideo wymaga stosunkowo niewiele pracy. Wideo jest bardziej złożone niż obrazy, ponieważ ma inny (czasowy) wymiar. Jednak zbadano niektóre rozszerzenia CNN w domenie wideo. Jednym z podejść jest traktowanie przestrzeni i czasu jako równoważnych wymiarów danych wejściowych i wykonywanie splotów zarówno w czasie, jak i przestrzeni. Innym sposobem jest połączenie cech dwóch splotowych sieci neuronowych, jednej dla strumienia przestrzennego i jednej dla strumienia czasowego. Jednostki rekurencyjne pamięci długoterminowej krótkoterminowej (LSTM) są zazwyczaj włączane po CNN w celu uwzględnienia zależności między ramkami lub między klipami. Wprowadzono nienadzorowane schematy uczenia się dla uczenia cech przestrzenno-czasowych, oparte na splotowych, zamkniętych maszynach Boltzmanna i niezależnej analizie podprzestrzennej.

Przetwarzanie języka naturalnego

CNN zostały również zbadane pod kątem przetwarzania języka naturalnego . Modele CNN są skuteczne w przypadku różnych problemów NLP i osiągają doskonałe wyniki w analizowaniu semantycznym , wyszukiwaniu zapytań, modelowaniu zdań, klasyfikacji, przewidywaniu i innych tradycyjnych zadaniach NLP. W porównaniu z tradycyjnymi metodami przetwarzania języka, takimi jak rekurencyjne sieci neuronowe , CNN mogą reprezentować różne kontekstowe realia języka, które nie opierają się na założeniu sekwencji szeregów, podczas gdy RNN są bardziej odpowiednie, gdy wymagane jest klasyczne modelowanie szeregów czasowych

Wykrywanie anomalii

CNN ze splotami jednowymiarowymi zastosowano w szeregach czasowych w domenie częstotliwości (reszta widmowa) za pomocą nienadzorowanego modelu do wykrywania anomalii w domenie czasu.

Odkrycie narkotyków

CNN zostały wykorzystane w odkrywaniu leków . Przewidywanie interakcji między cząsteczkami a białkami biologicznymi może zidentyfikować potencjalne metody leczenia. W 2015 r. firma Atomwise wprowadziła AtomNet, pierwszą sieć neuronową głębokiego uczenia do racjonalnego projektowania leków w oparciu o strukturę . System szkoli się bezpośrednio na trójwymiarowych reprezentacjach oddziaływań chemicznych. Podobnie jak sieci rozpoznawania obrazów uczą się komponować mniejsze, zbliżone przestrzennie cechy w większe, złożone struktury, AtomNet odkrywa cechy chemiczne, takie jak aromatyczność , węgle sp 3 i wiązania wodorowe . Następnie AtomNet został wykorzystany do przewidywania nowych potencjalnych biomolekuł dla celów wielu chorób, w szczególności leczenia wirusa Ebola i stwardnienia rozsianego .

Ocena ryzyka zdrowotnego i odkrycie biomarkerów starzenia

CNN można w naturalny sposób dostosować do analizy wystarczająco dużego zbioru danych szeregów czasowych reprezentujących jednotygodniowe strumienie aktywności fizycznej człowieka, wzbogacone bogatymi danymi klinicznymi (w tym rejestrami zgonów, dostarczanymi np. przez badanie NHANES ). Prostą CNN połączono z modelem proporcjonalnego hazardu Coxa-Gompertza i wykorzystano do stworzenia przykładu słuszności koncepcji cyfrowych biomarkerów starzenia w postaci predyktora śmiertelności ze wszystkich przyczyn.

Gra w warcaby

CNN zostały wykorzystane w grze w warcaby . W latach 1999-2001 Fogel i Chellapilla opublikowali artykuły pokazujące, jak splotowa sieć neuronowa może nauczyć się grać w szachownicę za pomocą koewolucji. Proces uczenia się nie wykorzystywał wcześniejszych ludzkich gier zawodowych, ale koncentrował się na minimalnym zestawie informacji zawartych w szachownicy: lokalizacji i rodzaju pionów oraz różnicy w liczbie pionów między obiema stronami. Ostatecznie program ( Blondie24 ) został przetestowany na 165 meczach przeciwko graczom i znalazł się w najwyższym 0,4%. Wygrał także z programem Chinook na swoim „eksperckim” poziomie gry.

Udać się

CNN zostały wykorzystane w komputerze Go . W grudniu 2014 r. Clark i Storkey opublikowali artykuł pokazujący, że CNN wyszkolone przez nadzorowane uczenie się z bazy danych ludzkich profesjonalnych gier może przewyższyć GNU Go i wygrać kilka gier w przeszukiwaniu drzewa Monte Carlo Fuego 1.1 w ułamku czasu, jaki zajęło Fuego. bawić się. Później ogłoszono, że duża, 12-warstwowa, splotowa sieć neuronowa prawidłowo przewidziała profesjonalny ruch w 55% pozycji, co odpowiada dokładności gracza ludzkiego 6 dan . Kiedy wytrenowana sieć splotowa była używana bezpośrednio do grania w gry Go, bez żadnego wyszukiwania, pokonała tradycyjny program wyszukujący GNU Go w 97% gier i dorównała wydajności programu wyszukiwania drzewa Monte Carlo Fuego, symulującego dziesięć tysięcy rozgrywek (około milion pozycji) na ruch.

Kilka CNN do wyboru ruchów do wypróbowania ("policy network") i oceny pozycji ("value network") kierujących MCTS zostało wykorzystanych przez AlphaGo , pierwszą, która pokonała wówczas najlepszego ludzkiego gracza.

Prognozowanie szeregów czasowych

Rekurencyjne sieci neuronowe są ogólnie uważane za najlepsze architektury sieci neuronowych do prognozowania szeregów czasowych (i ogólnie do modelowania sekwencji), ale ostatnie badania pokazują, że sieci splotowe mogą działać porównywalnie lub nawet lepiej. Sploty rozszerzone mogą umożliwić jednowymiarowym splotowym sieciom neuronowym efektywne poznawanie zależności szeregów czasowych. Sploty można wdrażać wydajniej niż rozwiązania oparte na RNN i nie cierpią z powodu zanikających (lub eksplodujących) gradientów. Sieci splotowe mogą zapewnić lepszą wydajność prognozowania, gdy istnieje wiele podobnych szeregów czasowych, na których można się uczyć. Sieci CNN można również zastosować do dalszych zadań w analizie szeregów czasowych (np. klasyfikacji szeregów czasowych lub prognozowania kwantyli).

Dziedzictwo kulturowe i zbiory danych 3D

Ponieważ znaleziska archeologiczne, takie jak gliniane tabliczki z pismem klinowym, są coraz częściej pozyskiwane za pomocą skanerów 3D, stają się dostępne pierwsze zestawy danych porównawczych, takie jak HeiCuBeDa, dostarczające prawie 2000 znormalizowanych zestawów danych 2D i 3D przygotowanych za pomocą GigaMesh Software Framework . Tak więc miary oparte na krzywiźnie są używane w połączeniu z geometrycznymi sieciami neuronowymi (GNN), np. do klasyfikacji tych glinianych tabliczek z epoki, będących jednymi z najstarszych dokumentów w historii ludzkości.

Strojenie

W przypadku wielu aplikacji dane treningowe są mniej dostępne. Splotowe sieci neuronowe zwykle wymagają dużej ilości danych uczących , aby uniknąć nadmiernego dopasowania . Powszechną techniką jest trenowanie sieci na większym zestawie danych z powiązanej domeny. Gdy parametry sieci osiągną zbieżność, przeprowadzany jest dodatkowy etap uczenia przy użyciu danych w domenie w celu dostrojenia wag sieci, jest to znane jako uczenie transferu . Ponadto technika ta umożliwia skuteczne zastosowanie splotowych architektur sieciowych do problemów z małymi zestawami uczącymi.

Wyjaśnienia możliwe do interpretacji przez człowieka

Kompleksowe szkolenie i przewidywanie są powszechną praktyką w wizji komputerowej . Jednak w przypadku krytycznych systemów, takich jak autonomiczne samochody, wymagane są wyjaśnienia, które można interpretować przez człowieka . Dzięki niedawnym postępom w zakresie wyrazistości wizualnej , uwagi przestrzennej i czasowej , najbardziej krytyczne regiony przestrzenne/momenty czasowe mogą być wizualizowane w celu uzasadnienia przewidywań CNN.

Powiązane architektury

Głębokie sieci Q

Głęboka sieć Q (DQN) to rodzaj modelu głębokiego uczenia, który łączy głęboką sieć neuronową z Q-learningiem , formą uczenia się przez wzmocnienie . W przeciwieństwie do wcześniejszych agentów uczenia się przez wzmocnienie, DQN, które wykorzystują CNN, mogą uczyć się bezpośrednio z wielowymiarowych danych sensorycznych poprzez uczenie się ze wzmocnieniem.

Wstępne wyniki zostały zaprezentowane w 2014 roku, wraz z towarzyszącym artykułem w lutym 2015 roku. W badaniu opisano aplikację do gier na Atari 2600 . Poprzedziły go inne modele uczenia głębokiego wzmacniania.

Głębokie sieci wierzeń

Konwolucyjne sieci głębokich przekonań (CDBN) mają strukturę bardzo podobną do splotowych sieci neuronowych i są trenowane podobnie do sieci głębokich przekonań. W związku z tym wykorzystują strukturę obrazów 2D, podobnie jak robią to CNN, i wykorzystują treningi wstępne, takie jak sieci głębokich przekonań . Zapewniają ogólną strukturę, którą można wykorzystać w wielu zadaniach przetwarzania obrazu i sygnału. Wyniki porównawcze dla standardowych zestawów danych obrazu, takich jak CIFAR, uzyskano przy użyciu CDBN.

Wybitne biblioteki

  • Caffe : Biblioteka dla splotowych sieci neuronowych. Stworzony przez Berkeley Vision and Learning Center (BVLC). Obsługuje zarówno procesor, jak i GPU. Opracowany w C++ i ma wrappery Pythona i MATLAB .
  • Deeplearning4j : Głębokie uczenie w języku Java i Scala na platformie Spark z obsługą wielu procesorów graficznych . Biblioteka do głębokiego uczenia ogólnego przeznaczenia dla stosu produkcyjnego JVM działającego na silniku obliczeń naukowych C++. Umożliwia tworzenie niestandardowych warstw. Integruje się z Hadoop i Kafką.
  • Dlib : Zestaw narzędzi do tworzenia rzeczywistych aplikacji do uczenia maszynowego i analizy danych w C++.
  • Microsoft Cognitive Toolkit : zestaw narzędzi do głębokiego uczenia napisany przez firmę Microsoft z kilkoma unikalnymi funkcjami zwiększającymi skalowalność na wielu węzłach. Obsługuje pełnoprawne interfejsy do szkolenia w językach C++ i Python oraz z dodatkową obsługą wnioskowania o modelach w językach C# i Java.
  • TensorFlow : Biblioteka podobna do Theano na licencji Apache 2.0 z obsługą procesora CPU, GPU, zastrzeżonej jednostki przetwarzania tensora (TPU) firmy Google i urządzeń mobilnych.
  • Theano : referencyjna biblioteka głębokiego uczenia dla Pythona z interfejsem API w dużej mierze zgodna z popularną biblioteką NumPy . Umożliwia użytkownikowi pisanie symbolicznych wyrażeń matematycznych, a następnie automatyczne generowanie ich pochodnych, oszczędzając użytkownikowi konieczności kodowania gradientów lub propagacji wstecznej. Te wyrażenia symboliczne są automatycznie kompilowane do kodu CUDA w celu szybkiej implementacji na GPU .
  • Torch : Naukowa platforma obliczeniowa z szerokim wsparciem dla algorytmów uczenia maszynowego, napisana w C i Lua . Głównym autorem jest Ronan Collobert, a obecnie używa się go w Facebook AI Research i Twitterze.

Wybitne interfejsy API

Zobacz też

Uwagi

Bibliografia

Zewnętrzne linki