Rekurencyjna sieć neuronowa - Recurrent neural network

Charakterze powtarzającym sieć neuronowa ( RNN ) jest klasą sztucznych sieci neuronowych , gdy połączenia pomiędzy węzłami tworzą skierowane wykres wzdłuż sekwencji czasowej. To pozwala mu wykazywać dynamiczne zachowanie w czasie. Wywodzące się ze sprzężenia do przodu sieci neuronowe RNN mogą wykorzystywać swój stan wewnętrzny (pamięć) do przetwarzania sekwencji danych wejściowych o zmiennej długości. Dzięki temu można je stosować do zadań takich jak niesegmentowane, połączone rozpoznawanie pisma ręcznego lub rozpoznawanie mowy . Rekurencyjne sieci neuronowe są teoretycznie kompletne pod względem Turinga i mogą uruchamiać dowolne programy do przetwarzania dowolnych sekwencji danych wejściowych.

Termin „rekurencyjna sieć neuronowa” jest używany bezkrytycznie w odniesieniu do dwóch szerokich klas sieci o podobnej ogólnej strukturze, z których jedna jest impulsem skończonym, a druga impulsem nieskończonym . Obie klasy sieci wykazują dynamiczne zachowanie czasowe . Sieć o skończonych impulsach rekurencyjnych to ukierunkowany graf acykliczny, który można rozwinąć i zastąpić siecią neuronową ściśle do przodu, podczas gdy sieć o nieskończonym impulsie rekurencyjnym to ukierunkowany graf cykliczny , którego nie można rozwinąć.

Zarówno sieci rekurencyjne o skończonym impulsie, jak i o nieskończonym impulsie mogą mieć dodatkowe przechowywane stany, a pamięć może być pod bezpośrednią kontrolą sieci neuronowej. Pamięć można również zastąpić inną siecią lub wykresem, jeśli zawiera opóźnienia czasowe lub ma pętle sprzężenia zwrotnego. Takie kontrolowane stany są określane jako stan bramkowany lub pamięć bramkowana i są częścią sieci pamięci długo-krótkoterminowej (LSTM) i bramkowanych jednostek rekurencyjnych . Jest to również nazywane siecią neuronową sprzężenia zwrotnego (FNN).

W typowych bibliotekach, takich jak PyTorch, kompilacja just-in-time odgrywa ważną rolę w sprawnym wdrażaniu rekurencyjnych sieci neuronowych.

Historia

Rekurencyjne sieci neuronowe zostały oparte na pracy Davida Rumelharta w 1986 roku. Sieci Hopfielda – szczególny rodzaj RNN – zostały (ponownie) odkryte przez Johna Hopfielda w 1982 roku. W 1993 roku system kompresji historii neuronowej rozwiązał „bardzo głębokie uczenie” zadanie, które wymagało ponad 1000 kolejnych warstw w RNN, rozwinęło się w czasie.

LSTM

Sieci pamięci długoterminowej krótkoterminowej (LSTM) zostały wynalezione przez Hochreitera i Schmidhubera w 1997 roku i ustanawiają rekordy dokładności w wielu dziedzinach aplikacji.

Około 2007 roku LSTM zaczął rewolucjonizować rozpoznawanie mowy , przewyższając tradycyjne modele w niektórych aplikacjach mowy. W 2009 r. sieć LSTM przeszkolona przez koneksjonistyczną klasyfikację czasową (CTC) była pierwszą RNN, która wygrała konkursy rozpoznawania wzorców, wygrywając kilka konkursów w dziedzinie rozpoznawania pisma ręcznego . W 2014 r. chińska firma Baidu wykorzystała RNN przeszkolonych przez CTC, aby przełamać test porównawczy zestawu danych 2S09 Switchboard Hub5'00 bez użycia tradycyjnych metod przetwarzania mowy.

LSTM ulepszył również rozpoznawanie mowy dużego słownictwa i syntezę tekstu na mowę i był używany w Google Android . W 2015 r. rozpoznawanie mowy Google podobno doświadczyło dramatycznego wzrostu wydajności o 49% dzięki LSTM przeszkolonemu przez CTC.

LSTM pobił rekordy w zakresie ulepszonego tłumaczenia maszynowego , modelowania języka i przetwarzania języka wielojęzycznego. LSTM w połączeniu z konwolucyjnymi sieciami neuronowymi (CNN) usprawniło automatyczne podpisywanie obrazów .

Architektury

RNN występują w wielu wariantach.

W pełni nawracający

Rozłożona podstawowa rekurencyjna sieć neuronowa

W pełni rekurencyjne sieci neuronowe (FRNN) łączą wyjścia wszystkich neuronów z wejściami wszystkich neuronów. Jest to najbardziej ogólna topologia sieci neuronowej, ponieważ wszystkie inne topologie można przedstawić, ustawiając niektóre wagi połączeń na zero, aby zasymulować brak połączeń między tymi neuronami. Ilustracja po prawej stronie może być dla wielu myląca, ponieważ praktyczne topologie sieci neuronowych są często zorganizowane w „warstwy”, a rysunek przedstawia taki wygląd. Jednak to, co wydaje się być warstwami, jest w rzeczywistości różnymi etapami w czasie tej samej w pełni rekurencyjnej sieci neuronowej. Element najbardziej po lewej stronie na ilustracji przedstawia powtarzające się połączenia jako łuk oznaczony „v”. Jest "rozwinięty" w czasie, aby uzyskać wygląd warstw .

Sieci Elman i sieci Jordan

Sieć Elman

Sieć Elmana to sieć trójwarstwowa (ułożona poziomo jako x , y i z na ilustracji) z dodatkiem zestawu jednostek kontekstowych ( u na ilustracji). Warstwa środkowa (ukryta) jest połączona z tymi jednostkami kontekstowymi o stałej wadze równej jeden. W każdym kroku czasowym dane wejściowe są przekazywane do przodu i stosowana jest reguła uczenia się. Stałe połączenia wsteczne zapisują kopię poprzednich wartości jednostek ukrytych w jednostkach kontekstowych (ponieważ propagują się przez połączenia przed zastosowaniem reguły uczenia się). W ten sposób sieć może utrzymywać pewien stan, co pozwala jej na wykonywanie takich zadań, jak przewidywanie sekwencji, które wykraczają poza możliwości standardowego perceptronu wielowarstwowego .

Sieci Jordan są podobne do sieci Elman. Jednostki kontekstowe są zasilane z warstwy wyjściowej zamiast z warstwy ukrytej. Jednostki kontekstu w sieci Jordana są również określane jako warstwa stanu. Mają ze sobą nawracające połączenie.

Sieci Elmana i Jordana są również znane jako „proste sieci rekurencyjne” (SRN).

Sieć Elmana
Sieć Jordania

Zmienne i funkcje

  • : wektor wejściowy
  • : wektor warstwy ukrytej
  • : wektor wyjściowy
  • , oraz : macierze parametrów i wektor
  • oraz : Funkcje aktywacji

Hopfield

Sieć Hopfield to sieć RNN, w której wszystkie połączenia w warstwach mają jednakową wielkość. Wymaga stacjonarnych wejść, a zatem nie jest ogólną RNN, ponieważ nie przetwarza sekwencji wzorców. Gwarantuje jednak, że będzie zbieżny. Jeśli połączenia są szkolone przy użyciu uczenia Hebbiana, sieć Hopfield może działać jako solidna pamięć adresowalna zawartością , odporna na zmiany połączenia.

Pamięć skojarzeniowa dwukierunkowa

Wprowadzona przez Barta Kosko sieć dwukierunkowej pamięci asocjacyjnej (BAM) jest odmianą sieci Hopfielda, która przechowuje dane asocjacyjne w postaci wektora. Dwukierunkowość wynika z przepuszczania informacji przez macierz i jej transpozycji . Zazwyczaj kodowanie bipolarne jest preferowane od kodowania binarnego par asocjacyjnych. Ostatnio stochastyczne modele BAM wykorzystujące krok Markowa zostały zoptymalizowane pod kątem zwiększenia stabilności sieci i dopasowania do rzeczywistych aplikacji.

Sieć BAM składa się z dwóch warstw, z których każda może być sterowana jako dane wejściowe w celu przywołania skojarzenia i wygenerowania danych wyjściowych na drugiej warstwie.

Stan echa

Sieć stanów echa (ESN) ma słabo połączoną losową warstwę ukrytą. Wagi neuronów wyjściowych są jedyną częścią sieci, która może się zmieniać (uczyć się). ESN są dobre w odtwarzaniu pewnych szeregów czasowych . Wariant impulsowania neuronów jest znany jako maszyna stanu ciekłego .

Niezależnie RNN (IndRNN)

Niezależnie rekurencyjna sieć neuronowa (IndRNN) rozwiązuje problemy z zanikaniem i eksplodowaniem gradientu w tradycyjnej, w pełni połączonej sieci RNN. Każdy neuron w jednej warstwie otrzymuje tylko swój własny stan przeszły jako informację kontekstową (zamiast pełnej łączności ze wszystkimi innymi neuronami w tej warstwie), dzięki czemu neurony są niezależne od swojej historii. Propagację wsteczną gradientu można regulować, aby uniknąć zanikania i eksplodowania gradientu w celu zachowania pamięci długoterminowej lub krótkotrwałej. Informacje o neuronach krzyżowych są badane w kolejnych warstwach. IndRNN można solidnie wytrenować za pomocą nienasyconych funkcji nieliniowych, takich jak ReLU. Korzystając z połączeń pomijanych, można trenować głębokie sieci.

Rekursywny

Rekurencyjne sieć neuronowa jest tworzone przez zastosowanie tego samego zbioru wag rekurencyjnie przez różniczkowej wykres podobny do struktury przez przejeżdżające struktury w celu topologicznych . Takie sieci są zazwyczaj trenowane również w odwrotnym trybie automatycznego różnicowania . Mogą przetwarzać rozproszone reprezentacje struktury, takie jak terminy logiczne . Szczególnym przypadkiem rekurencyjnych sieci neuronowych jest sieć RNN, której struktura odpowiada łańcuchowi liniowemu. Do przetwarzania języka naturalnego zastosowano rekurencyjne sieci neuronowe . Rekurencyjnego Neural Network Tensor wykorzystuje tensorowy -na funkcję składu dla wszystkich węzłów w drzewie.

Kompresor historii neuronowej

Kompresor historii neuronowej to nienadzorowany stos RNN. Na poziomie wejściowym uczy się przewidywać swoje następne dane wejściowe na podstawie wcześniejszych danych wejściowych. Tylko nieprzewidywalne dane wejściowe niektórych RNN w hierarchii stają się danymi wejściowymi do następnego wyższego poziomu RNN, który dlatego rzadko przelicza swój stan wewnętrzny. Każda RNN wyższego poziomu bada zatem skompresowaną reprezentację informacji w RNN poniżej. Odbywa się to w taki sposób, że sekwencja wejściowa może być dokładnie zrekonstruowana z reprezentacji na najwyższym poziomie.

System skutecznie minimalizuje długość opisu lub ujemny logarytm prawdopodobieństwa danych. Biorąc pod uwagę dużą przewidywalność w przychodzącej sekwencji danych, RNN najwyższego poziomu może korzystać z nadzorowanego uczenia się, aby łatwo klasyfikować nawet głębokie sekwencje z długimi przerwami między ważnymi zdarzeniami.

Możliwe jest wydestylowanie hierarchii RNN na dwie RNN: „świadomy” chunker (wyższy poziom) i „podświadomy” automatyzator (niższy poziom). Gdy chunker nauczy się przewidywać i kompresować dane wejściowe, które są nieprzewidywalne przez automatyzator, wówczas automatyzator może być zmuszony w następnej fazie uczenia się do przewidywania lub imitowania przez dodatkowe jednostki ukrytych jednostek wolniej zmieniającego się chunkera. Ułatwia to automatyzatorowi naukę odpowiednich, rzadko zmieniających się wspomnień w długich odstępach czasu. To z kolei pomaga automatyzatorowi uczynić wiele z jego niegdyś nieprzewidywalnych danych wejściowych przewidywalnymi, tak że chunker może skupić się na pozostałych nieprzewidywalnych zdarzeniach.

Generatywne modelu częściowo przezwyciężyła zanikający gradientu problemy z automatycznym różnicowania lub wstecznej propagacji błędów w sieciach neuronowych w 1992. W 1993, system taki rozwiązane „bardzo głęboko uczenia się”, które są wymagane zadanie ponad 1000 kolejnych warstw w RNN rozłożony w czasie.

Sieci RNN drugiego rzędu

RNN drugiego rzędu używają wag wyższego rzędu zamiast wag standardowych , a stany mogą być produktem. Pozwala to na bezpośrednie odwzorowanie na maszynę skończoną zarówno w treningu, stabilności, jak i reprezentacji. Przykładem tego jest długotrwała pamięć krótkotrwała, ale nie ma takiego formalnego odwzorowania ani dowodu stabilności.

Pamięć długotrwała krótkotrwała

Jednostka pamięci krótkotrwałej długoterminowej

Długotrwała pamięć krótkotrwała (LSTM) to system głębokiego uczenia się , który pozwala uniknąć problemu znikającego gradientu . LSTM jest zwykle wspomagany przez powtarzające się bramki zwane „bramkami zapominania”. LSTM zapobiega znikaniu lub eksplodowaniu błędów wstecznie propagowanych. Zamiast tego błędy mogą płynąć wstecz przez nieograniczoną liczbę wirtualnych warstw rozłożonych w przestrzeni. Oznacza to, że LSTM może uczyć się zadań, które wymagają wspomnień o wydarzeniach, które miały miejsce tysiące, a nawet miliony dyskretnych kroków czasowych wcześniej. Specyficzne dla problemu topologie podobne do LSTM mogą być rozwijane. LSTM działa nawet przy dużych opóźnieniach między znaczącymi zdarzeniami i może obsługiwać sygnały, które mieszają składniki o niskiej i wysokiej częstotliwości.

Wiele aplikacji używa stosów LSTM RNN i trenuje je za pomocą koneksjonistycznej klasyfikacji czasowej (CTC), aby znaleźć macierz wag RNN, która maksymalizuje prawdopodobieństwo sekwencji etykiet w zestawie uczącym , biorąc pod uwagę odpowiednie sekwencje wejściowe. CTC osiąga zarówno wyrównanie, jak i rozpoznanie.

LSTM może nauczyć się rozpoznawać języki kontekstowe w przeciwieństwie do poprzednich modeli opartych na ukrytych modelach Markowa (HMM) i podobnych koncepcjach.

Bramkowana jednostka nawrotowa

Bramkowana jednostka nawrotowa

Bramkowane jednostki rekurencyjne (GRU) są mechanizmem bramkowania w rekurencyjnych sieciach neuronowych wprowadzonym w 2014 roku. Stosowane są w pełnej postaci i kilku uproszczonych wariantach. Stwierdzono, że ich wyniki w zakresie polifonicznego modelowania muzyki i modelowania sygnału mowy są podobne do wyników pamięci długoterminowej krótkotrwałej. Mają mniej parametrów niż LSTM, ponieważ nie mają bramki wyjściowej.

Dwukierunkowy

Dwukierunkowe RNN wykorzystują skończoną sekwencję do przewidywania lub oznaczania każdego elementu sekwencji na podstawie przeszłych i przyszłych kontekstów elementu. Odbywa się to poprzez łączenie wyjść dwóch RNN, z których jedna przetwarza sekwencję od lewej do prawej, a druga od prawej do lewej. Połączone dane wyjściowe są przewidywaniami sygnałów docelowych podanych przez nauczyciela. Udowodniono, że ta technika jest szczególnie przydatna w połączeniu z sieciami RNN LSTM.

Ciągły czas

Rekurencyjna sieć neuronowa w czasie ciągłym (CTRNN) wykorzystuje układ równań różniczkowych zwyczajnych do modelowania wpływu sygnałów wejściowych na neuron.

Dla neuronu w sieci z aktywacją szybkość zmiany aktywacji dana jest wzorem:

Gdzie:

  •  : Stała czasowa węzła postsynaptycznego
  •  : Aktywacja węzła postsynaptycznego
  •  : Szybkość zmiany aktywacji węzła postsynaptycznego
  •  : Waga połączenia od węzła pre do postsynaptycznego
  •  : Sigmoid x np . .
  •  : Aktywacja węzła presynaptycznego
  •  : Odchylenie węzła presynaptycznego
  •  : Wejście (jeśli istnieje) do węzła

CTRNN zostały zastosowane w robotyce ewolucyjnej, gdzie zostały wykorzystane do rozwiązywania problemów związanych z wizją, współpracą i minimalnymi zachowaniami poznawczymi.

Należy zauważyć, że zgodnie z twierdzeniem Shannona o próbkowaniu dyskretne sieci neuronowe rekurencyjne w czasie mogą być postrzegane jako rekurencyjne sieci neuronowe w czasie ciągłym, w których równania różniczkowe zostały przekształcone w równoważne równania różnicowe . Ta transformacja może być uważana za następującą po przefiltrowaniu dolnoprzepustowych funkcji postsynaptycznej aktywacji węzła, ale przed próbkowaniem.

Hierarchiczny

Hierarchiczne sieci RNN łączą swoje neurony na różne sposoby, aby rozłożyć zachowanie hierarchiczne na przydatne podprogramy. Takie hierarchiczne struktury poznania są obecne w teoriach pamięci przedstawionych przez filozofa Henri Bergsona , którego poglądy filozoficzne stały się inspiracją dla modeli hierarchicznych.

Rekurencyjna wielowarstwowa sieć perceptronowa

Ogólnie rzecz biorąc, sieć rekurencyjnych wielowarstwowych sieci perceptronowych (RMLP) składa się z kaskadowych podsieci, z których każda zawiera wiele warstw węzłów. Każda z tych podsieci jest przekazywana do przodu, z wyjątkiem ostatniej warstwy, która może mieć połączenia zwrotne. Każda z tych podsieci jest połączona tylko połączeniami typu feed-forward.

Model z wieloma skalami czasowymi

Wieloskalowa, rekurencyjna sieć neuronowa (MTRNN) to neuronowy model obliczeniowy, który może symulować funkcjonalną hierarchię mózgu poprzez samoorganizację, która zależy od przestrzennego połączenia między neuronami i różnych rodzajów aktywności neuronów, z których każdy ma inne właściwości czasowe. Przy tak zróżnicowanych aktywnościach neuronalnych, ciągłe sekwencje dowolnego zestawu zachowań są segmentowane na prymitywne elementy wielokrotnego użytku, które z kolei są elastycznie integrowane z różnymi zachowaniami sekwencyjnymi. Biologiczne zatwierdzenie takiego typu hierarchii zostało omówione w teorii pamięciowo-przewidywalnej funkcji mózgu Hawkinsa w jego książce On Intelligence . Taka hierarchia zgadza się również z teoriami pamięci sformułowanymi przez filozofa Henri Bergsona , które zostały włączone do modelu MTRNN.

Neuronowe maszyny Turinga

Neuralne maszyny Turinga (NTM) to metoda rozszerzania rekurencyjnych sieci neuronowych poprzez łączenie ich z zewnętrznymi zasobami pamięci, z którymi mogą wchodzić w interakcje poprzez procesy uwagi . Połączony system jest analogiczny do maszyny Turinga lub architektury Von Neumanna, ale można go różnicować od końca do końca, dzięki czemu można go skutecznie trenować z gradientem .

Komputer neuronowy różniczkowalny

Różnicowalne komputery neuronowe (DNC) są rozszerzeniem Neural maszyn Turinga, pozwalającym na użycie rozmytych ilości każdego adresu pamięci i zapisu chronologii.

Automaty pushdown sieci neuronowych

Automaty z naciskaniem sieci neuronowych (NNPDA) są podobne do NTM, ale taśmy są zastępowane stosami analogowymi, które są różniczkowalne i które są wytrenowane. W ten sposób są one podobne pod względem złożoności do aparatów rozpoznawania gramatyk bezkontekstowych (CFG).

Sieci memristive

Greg Snider z HP Labs opisuje system obliczeń korowych z wykorzystaniem nanourządzeń memrystycznych. W Memristors (rezystory pamięci) są realizowane cienkie materiały powłokowe, w których opór elektryczny dostrojone przez transport jonów lub wolnych tlenu w folii. DARPA jest projekt Synapse sfinansowała IBM Research Labs i HP, we współpracy z Departamentem Boston University of poznawczych i Neural Systems (OUN), w celu opracowania neuromorficznych architektur, które mogą być oparte na systemach memristive. Sieci memrystywne są szczególnym rodzajem fizycznych sieci neuronowych, które mają bardzo podobne właściwości do sieci (Little-)Hopfielda, ponieważ mają ciągłą dynamikę, mają ograniczoną pojemność pamięci i naturalnie rozluźniają się poprzez minimalizację funkcji, która jest asymptotyczna do Model Isinga. W tym sensie dynamika obwodu memrystycznego ma tę zaletę, że w porównaniu z siecią rezystorowo-kondensatorową ma bardziej interesujące zachowanie nieliniowe. Z tego punktu widzenia inżynieria analogowych sieci memrystycznych stanowi szczególny rodzaj inżynierii neuromorficznej, w której zachowanie urządzenia zależy od okablowania obwodu lub topologii.

Szkolenie

Zejście gradientowe

Spadek gradientu to iteracyjny algorytm optymalizacji pierwszego rzędu służący do znajdowania minimum funkcji. W sieciach neuronowych można go wykorzystać do minimalizacji składnika błędu poprzez zmianę każdej wagi proporcjonalnie do pochodnej błędu względem tej wagi, pod warunkiem, że nieliniowe funkcje aktywacjiróżniczkowalne . Różne metody w tym zakresie zostały opracowane w latach 80. i na początku lat 90. przez Werbosa , Williamsa , Robinsona , Schmidhubera , Hochreitera , Pearlmuttera i innych.

Standardowa metoda nazywana jest „ propagacją wsteczną w czasie ” lub BPTT i jest uogólnieniem propagacji wstecznej dla sieci ze sprzężeniem do przodu. Podobnie jak ta metoda, jest to przykład automatycznego różnicowania w trybie odwróconej akumulacji zasady minimum Pontryagina . Bardziej kosztowny obliczeniowo wariant online nosi nazwę „Uczenie okresowe w czasie rzeczywistym” lub RTRL, co jest przykładem automatycznego różnicowania w trybie akumulacji do przodu ze skumulowanymi wektorami stycznymi. W przeciwieństwie do BPTT, ten algorytm jest lokalny w czasie, ale nie w przestrzeni.

W tym kontekście lokalność w przestrzeni oznacza, że ​​wektor wagi jednostki może być aktualizowany przy użyciu tylko informacji przechowywanych w połączonych jednostkach i samej jednostce tak, że złożoność aktualizacji pojedynczej jednostki jest liniowa w wymiarze wektora wagi. Lokalne w czasie oznacza, że ​​aktualizacje odbywają się w sposób ciągły (on-line) i zależą tylko od ostatniego kroku czasowego, a nie od wielu kroków czasowych w danym horyzoncie czasowym, jak w BPTT. Biologiczne sieci neuronowe wydają się być lokalne, zarówno w czasie, jak i przestrzeni.

W przypadku rekurencyjnego obliczania pochodnych cząstkowych RTRL ma złożoność czasową O (liczba ukrytych x liczba wag) na krok czasowy do obliczania macierzy Jakobian , podczas gdy BPTT zajmuje tylko O ​​(liczba wag) na krok czasowy, kosztem przechowywania wszystkich aktywacji forward w zadanym horyzoncie czasowym. Istnieje hybryda online między BPTT i RTRL o pośredniej złożoności, wraz z wariantami dla ciągłego czasu.

Głównym problemem związanym ze spadkiem gradientu dla standardowych architektur RNN jest to, że gradienty błędów znikają wykładniczo szybko wraz z wielkością opóźnienia między ważnymi zdarzeniami. LSTM w połączeniu z hybrydową metodą uczenia BPTT/RTRL próbuje przezwyciężyć te problemy. Problem ten jest również rozwiązywany w niezależnie rekurencyjnej sieci neuronowej (IndRNN) poprzez zredukowanie kontekstu neuronu do jego własnego stanu przeszłego, a informacje międzyneuronowe mogą być następnie eksplorowane w kolejnych warstwach. Wspomnienia o różnym zakresie, w tym pamięć długotrwała, można się nauczyć bez problemu znikania i eksplodowania gradientu.

Algorytm on-line zwany causal recursive backpropagation (CRBP) implementuje i łączy paradygmaty BPTT i RTRL dla lokalnie rekurencyjnych sieci. Działa z najbardziej ogólnymi sieciami rekurencyjnymi lokalnie. Algorytm CRBP może zminimalizować składnik błędu globalnego. Fakt ten poprawia stabilność algorytmu, zapewniając ujednolicony pogląd na techniki obliczania gradientu dla sieci rekurencyjnych z lokalnym sprzężeniem zwrotnym.

Jedno z podejść do obliczania informacji o gradientach w sieciach RNN o dowolnej architekturze opiera się na schematycznym wyprowadzaniu wykresów przepływu sygnału. Wykorzystuje algorytm wsadowy BPTT, oparty na twierdzeniu Lee do obliczeń wrażliwości sieci. Zaproponowali go Wan i Beaufays, a jego szybką wersję online zaproponowali Campolucci, Uncini i Piazza.

Globalne metody optymalizacji

Uczenie wag w sieci neuronowej może być modelowane jako nieliniowy problem optymalizacji globalnej . Funkcja celu może być utworzona w celu oceny przydatności lub błędu określonego wektora wag w następujący sposób: Po pierwsze, wagi w sieci są ustawiane zgodnie z wektorem wag. Następnie sieć jest oceniana pod kątem sekwencji treningowej. Zwykle do reprezentowania błędu bieżącego wektora wag stosuje się sumę kwadratów różnicy między przewidywaniami a wartościami docelowymi określonymi w sekwencji treningowej. Następnie można zastosować arbitralne techniki optymalizacji globalnej, aby zminimalizować tę funkcję docelową.

Najpopularniejszą globalną metodą optymalizacji uczenia RNN są algorytmy genetyczne , zwłaszcza w sieciach nieustrukturyzowanych.

Początkowo algorytm genetyczny jest kodowany wagami sieci neuronowych w predefiniowany sposób, gdzie jeden gen w chromosomie reprezentuje jedno połączenie wagowe. Cała sieć jest reprezentowana jako pojedynczy chromosom. Funkcja fitness jest oceniana w następujący sposób:

  • Każda waga zakodowana w chromosomie jest przypisana do odpowiedniego ogniwa wagi w sieci.
  • Zbiór uczący jest prezentowany w sieci, która propaguje sygnały wejściowe do przodu.
  • Błąd średniokwadratowy jest zwracany do funkcji sprawności.
  • Ta funkcja kieruje procesem selekcji genetycznej.

Populację tworzy wiele chromosomów; w związku z tym wiele różnych sieci neuronowych ewoluuje, dopóki nie zostanie spełnione kryterium zatrzymania. Powszechnym schematem zatrzymania jest:

  • Gdy sieć neuronowa nauczy się pewnego procentu danych treningowych lub
  • Gdy spełniona jest minimalna wartość błędu średniokwadratowego lub
  • Po osiągnięciu maksymalnej liczby pokoleń treningowych.

Kryterium zatrzymania jest oceniane przez funkcję sprawności, ponieważ uzyskuje odwrotność błędu średniokwadratowego z każdej sieci podczas treningu. Dlatego celem algorytmu genetycznego jest maksymalizacja funkcji sprawności, zmniejszając błąd średniokwadratowy.

Inne globalne (i/lub ewolucyjne) techniki optymalizacji mogą być wykorzystane do poszukiwania dobrego zestawu wag, takie jak symulowane wyżarzanie lub optymalizacja roju cząstek .

Powiązane pola i modele

Sieci RNN mogą zachowywać się chaotycznie . W takich przypadkach do analizy można wykorzystać teorię układów dynamicznych .

W rzeczywistości są to rekurencyjne sieci neuronowe o określonej strukturze: łańcuchu liniowym. Podczas gdy rekurencyjne sieci neuronowe działają na dowolnej strukturze hierarchicznej, łącząc reprezentacje potomne w reprezentacje nadrzędne, rekurencyjne sieci neuronowe działają na liniowym przebiegu czasu, łącząc poprzedni krok czasowy i ukrytą reprezentację w reprezentację dla bieżącego kroku czasowego.

W szczególności RNN mogą występować jako nieliniowe wersje filtrów o skończonej odpowiedzi impulsowej i nieskończonej odpowiedzi impulsowej, a także jako nieliniowy autoregresyjny model egzogeniczny (NARX).

Biblioteki

  • Apache Singa
  • Caffe : 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 .
  • Chainer : pierwsza stabilna biblioteka uczenia głębokiego, która obsługuje dynamiczne sieci neuronowe definiowane po uruchomieniu. W pełni w Pythonie, wsparcie produkcyjne dla CPU, GPU, szkolenia rozproszone.
  • 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ą .
  • Flux : zawiera interfejsy dla RNN, w tym GRU i LSTM, napisane w Julia .
  • Keras : Wysokopoziomowy, łatwy w użyciu interfejs API, stanowiący opakowanie dla wielu innych bibliotek głębokiego uczenia.
  • Microsoft Cognitive Toolkit
  • MXNet : nowoczesna platforma uczenia głębokiego typu open source służąca do trenowania i wdrażania głębokich sieci neuronowych.
  • PyTorch : Tensory i dynamiczne sieci neuronowe w Pythonie z silną akceleracją GPU.
  • TensorFlow : Biblioteka podobna do Theano na licencji Apache 2.0 z obsługą procesora CPU, GPU i zastrzeżonego TPU firmy Google , urządzenia mobilne
  • 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 ( www.torch.ch ): 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.

Aplikacje

Zastosowania rekurencyjnych sieci neuronowych obejmują:

Bibliografia

Dalsza lektura

  • Mandic, Danilo P. i Chambers, Jonathon A. (2001). Rekurencyjne sieci neuronowe do przewidywania: algorytmy uczenia się, architektury i stabilność . Wileya. Numer ISBN 978-0-471-49517-8.

Zewnętrzne linki