Przedstawiamy rekurencyjne sieci neuronowe (RNN)
Nawracająca sieć neuronowa jest jednym z rodzajów sztucznej sieci neuronowej (ANN) i jest używana w obszarach zastosowania przetwarzania języka naturalnego (NLP) i rozpoznawania mowy. Model RNN został zaprojektowany do rozpoznawania sekwencyjnych charakterystyk danych, a następnie za pomocą wzorców do przewidywania nadchodzącego scenariusza.
Działanie nawracających sieci neuronowych
Kiedy mówimy o tradycyjnych sieciach neuronowych, wszystkie wyjścia i wejścia są od siebie niezależne, jak pokazano na poniższym schemacie:
Ale w przypadku powtarzających się sieci neuronowych dane wyjściowe z poprzednich kroków są podawane na wejście bieżącego stanu. Na przykład, aby przewidzieć kolejną literę dowolnego słowa lub przewidzieć następne słowo zdania, konieczne jest zapamiętanie poprzednich liter lub słów i przechowywanie ich w jakiejś formie pamięci.
Ukryta warstwa to ta, która pamięta pewne informacje o sekwencji. Prostym przykładem z prawdziwego życia, z którym możemy odnosić się do RNN, jest to, że kiedy oglądamy film, w wielu przypadkach jesteśmy w stanie przewidzieć, co będzie dalej, ale co, jeśli ktoś dołączy do filmu i zostanie poproszony o przewidzenie czy stanie się dalej? Jaka będzie jego odpowiedź? Nie będzie miał żadnych wskazówek, ponieważ nie są świadomi poprzednich wydarzeń w filmie i nie mają o tym żadnej pamięci.
Ilustracja typowego modelu RNN znajduje się poniżej:
Modele RNN mają pamięć, która zawsze pamięta, co zostało zrobione w poprzednich krokach i co zostało obliczone. To samo zadanie jest wykonywane na wszystkich wejściach, a RNN używa tego samego parametru dla każdego z wejść. Ponieważ tradycyjna sieć neuronowa ma niezależne zestawy danych wejściowych i wyjściowych, są one bardziej złożone niż RNN.
Teraz spróbujmy zrozumieć Recurrent Neural Network na podstawie przykładu.
Powiedzmy, że mamy sieć neuronową z 1 warstwą wejściową, 3 warstwami ukrytymi i 1 warstwą wyjściową.
Kiedy mówimy o innych lub tradycyjnych sieciach neuronowych, będą miały własne zestawy błędów i wag w ukrytych warstwach, takich jak (w1, b1) dla ukrytej warstwy 1, (w2, b2) dla ukrytej warstwy 2 i (w3, b3 ) dla trzeciej ukrytej warstwy, gdzie: w1, w2 i w3 są wagami, a b1, b2 i b3 są stronniczościami.
Biorąc to pod uwagę, możemy powiedzieć, że każda warstwa nie jest zależna od żadnej innej i że nie pamiętają nic o poprzednim wejściu:
Teraz RNN zrobi to:
- Warstwy niezależne zostaną przekonwertowane na warstwę zależną. Odbywa się to poprzez zapewnienie takich samych stronniczości i wag dla wszystkich warstw. Zmniejsza to również liczbę parametrów i warstw w rekurencyjnej sieci neuronowej i pomaga RNN zapamiętać poprzednie dane wyjściowe, wysyłając poprzednie dane wyjściowe jako dane wejściowe do nadchodzącej ukrytej warstwy.
- Podsumowując, wszystkie ukryte warstwy można połączyć w jedną powtarzalną warstwę, dzięki czemu wagi i odchylenie są takie same dla wszystkich ukrytych warstw.
Tak więc cykliczna sieć neuronowa będzie wyglądać mniej więcej tak:
Czas poradzić sobie z niektórymi równaniami dla modelu RNN.
- Aby obliczyć aktualny stan,
h t= f (h t-1, x t ),
Gdzie:
x t to stan wejściowy
h t-1 jest poprzednim stanem,
h t jest stanem bieżącym.
- Do obliczenia funkcji aktywacji
h t= tanh (W hh h t-1 +W xh x t ),
Gdzie:
W xh to masa neuronu wejściowego,
Whh to ciężar nawracającego neuronu.
- Do obliczenia wyniku:
Y t =W hy h t.
Gdzie,
Y t jest wyjściem, a
W hy jest ciężarem na warstwie wyjściowej.
Kroki szkolenia nawracającej sieci neuronowej
- W warstwach wejściowych wysyłane jest początkowe wejście, przy czym wszystkie mają tę samą wagę i funkcję aktywacji.
- Przy użyciu bieżącego wejścia i wyjścia poprzedniego stanu obliczany jest stan obecny.
- Teraz obecny stan ht stanie się h t-1 dla drugiego kroku czasowego.
- Powtarza się to dla wszystkich etapów i w celu rozwiązania konkretnego problemu, może on dołączać do informacji z poprzednich kroków.
- Ostatni krok jest następnie obliczany na podstawie bieżącego stanu końcowego stanu i wszystkich innych poprzednich kroków.
- Teraz błąd jest generowany przez obliczenie różnicy między rzeczywistą wydajnością a wydajnością generowaną przez nasz model RNN.
- Ostatnim krokiem jest wystąpienie procesu propagacji wstecznej, w którym błąd jest propagowany wstecznie w celu aktualizacji wag.
Zalety nawracających sieci neuronowych
- RNN może przetwarzać dane wejściowe o dowolnej długości.
- Model RNN jest modelowany w celu zapamiętywania każdej informacji przez cały czas, co jest bardzo pomocne w dowolnym predyktorze szeregów czasowych.
- Nawet jeśli rozmiar wejściowy jest większy, rozmiar modelu nie zwiększa się.
- Wagi można podzielić na przedziały czasowe.
- RNN może wykorzystywać swoją pamięć wewnętrzną do przetwarzania dowolnej serii danych wejściowych, co nie ma miejsca w przypadku sprzężonych sieci neuronowych.
Wady nawracających sieci neuronowych
- Ze względu na powtarzający się charakter obliczenia są powolne.
- Szkolenie modeli RNN może być trudne.
- Jeśli używamy relu lub tanh jako funkcji aktywacyjnych, przetwarzanie sekwencji, które są bardzo długie, staje się bardzo trudne.
- Podatny na takie problemy, jak eksplozja i zanikanie gradientu.
Wniosek
W tym artykule poznaliśmy inny rodzaj Sztucznej Sieci Neuronowej zwany Rekurencyjną Siecią Neuronową, skupiliśmy się na głównej różnicy, która wyróżnia RNN na tle innych typów sieci neuronowych - obszarach, w których można go szeroko stosować, np. W rozpoznawaniu mowy oraz NLP (przetwarzanie języka naturalnego). Co więcej, opóźniliśmy się od działania modeli RNN i funkcji, które są używane do budowy solidnego modelu RNN.
Polecane artykuły
Jest to przewodnik po rekurencyjnych sieciach neuronowych. Tutaj omawiamy wprowadzenie, jego działanie, kroki, zalety i wady RNN itp. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -- Co to są sieci neuronowe?
- Ramy uczenia maszynowego
- Wprowadzenie do sztucznej inteligencji
- Wprowadzenie do Big Data Analytics
- Implementacja sieci neuronowych