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

  1. W warstwach wejściowych wysyłane jest początkowe wejście, przy czym wszystkie mają tę samą wagę i funkcję aktywacji.
  2. Przy użyciu bieżącego wejścia i wyjścia poprzedniego stanu obliczany jest stan obecny.
  3. Teraz obecny stan ht stanie się h t-1 dla drugiego kroku czasowego.
  4. 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.
  5. Ostatni krok jest następnie obliczany na podstawie bieżącego stanu końcowego stanu i wszystkich innych poprzednich kroków.
  6. Teraz błąd jest generowany przez obliczenie różnicy między rzeczywistą wydajnością a wydajnością generowaną przez nasz model RNN.
  7. 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

  1. RNN może przetwarzać dane wejściowe o dowolnej długości.
  2. 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.
  3. Nawet jeśli rozmiar wejściowy jest większy, rozmiar modelu nie zwiększa się.
  4. Wagi można podzielić na przedziały czasowe.
  5. 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

  1. Ze względu na powtarzający się charakter obliczenia są powolne.
  2. Szkolenie modeli RNN może być trudne.
  3. Jeśli używamy relu lub tanh jako funkcji aktywacyjnych, przetwarzanie sekwencji, które są bardzo długie, staje się bardzo trudne.
  4. 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 -
  1. Co to są sieci neuronowe?
  2. Ramy uczenia maszynowego
  3. Wprowadzenie do sztucznej inteligencji
  4. Wprowadzenie do Big Data Analytics
  5. Implementacja sieci neuronowych

Kategoria: