logo

Co to jest LSTM – pamięć długoterminowa?

LSTM przoduje w zadaniach przewidywania sekwencji, wychwytując długoterminowe zależności. Idealny do szeregów czasowych, tłumaczenia maszynowego i rozpoznawania mowy ze względu na zależność od kolejności. Artykuł zawiera szczegółowe wprowadzenie do LSTM, obejmujące model LSTM, architekturę, zasady działania i kluczową rolę, jaką odgrywają one w różnych zastosowaniach.

Co to jest LSTM?

Długa pamięć krótkotrwała to ulepszona wersja rekurencyjnej sieci neuronowej zaprojektowanej przez Hochreitera & Schmidhubera.



Tradycyjny RNN ma jeden ukryty stan, który jest przekazywany w czasie, co może utrudniać sieci nauczenie się długoterminowych zależności. Model LSTM rozwiązać ten problem, wprowadzając komórkę pamięci, która jest pojemnikiem mogącym przechowywać informacje przez dłuższy czas.

Architektury LSTM potrafią uczyć się długoterminowych zależności w danych sekwencyjnych, co czyni je dobrze dostosowanymi do takich zadań jak tłumaczenie językowe , rozpoznawanie mowy i prognozowanie szeregów czasowych .

LSTM można również stosować w połączeniu z innymi architekturami sieci neuronowych, takimi jak Konwolucyjne sieci neuronowe (CNN) do analizy obrazu i wideo.



Architektura LSTM

Architektura LSTM obejmuje komórkę pamięci kontrolowaną przez trzy bramki: bramkę wejściową, bramkę zapominania i bramkę wyjściową. Bramki te decydują, jakie informacje dodać, usunąć i wyprowadzić z komórki pamięci.

  • Bramka wejściowa kontroluje, jakie informacje są dodawane do komórki pamięci.
  • Bramka zapominania kontroluje, jakie informacje są usuwane z komórki pamięci.
  • Bramka wyjściowa kontroluje, jakie informacje są wysyłane z komórki pamięci.

Dzięki temu sieci LSTM mogą selektywnie zatrzymywać lub odrzucać informacje przepływające przez sieć, co pozwala im uczyć się długoterminowych zależności.

LSTM utrzymuje stan ukryty, który działa jak pamięć krótkotrwała sieci. Stan ukryty jest aktualizowany w oparciu o dane wejściowe, poprzedni stan ukryty i bieżący stan komórki pamięci.



Dwukierunkowy model LSTM

Dwukierunkowy LSTM (Bi LSTM/BLSTM) to rekurencyjna sieć neuronowa (RNN), która jest w stanie przetwarzać dane sekwencyjne zarówno w kierunku do przodu, jak i do tyłu. Dzięki temu Bi LSTM może uczyć się zależności o większym zasięgu w danych sekwencyjnych niż tradycyjne LSTM, które mogą przetwarzać dane sekwencyjne tylko w jednym kierunku.

  • Bi LSTM składają się z dwóch sieci LSTM, jednej przetwarzającej sekwencję wejściową w kierunku do przodu i drugiej, która przetwarza sekwencję wejściową w kierunku wstecznym.
  • Wyniki dwóch sieci LSTM są następnie łączone w celu uzyskania końcowego wyniku.

Modele LSTM, w tym Bi LSTM, wykazały najnowocześniejszą wydajność w różnych zadaniach, takich jak tłumaczenie maszynowe, rozpoznawanie mowy i podsumowywanie tekstu.

Sieci w architekturach LSTM można łączyć w stosy, tworząc głębokie architektury, umożliwiające uczenie się jeszcze bardziej złożonych wzorców i hierarchii w danych sekwencyjnych. Każda warstwa LSTM w konfiguracji stosowej przechwytuje różne poziomy abstrakcji i zależności czasowych w danych wejściowych.

Działa LSTM

Architektura LSTM ma strukturę łańcuchową, która zawiera cztery sieci neuronowe i różne bloki pamięci zwane komórki .

Informacje są przechowywane w komórkach, a manipulacje pamięcią dokonują się w komórkach bramy. Są trzy bramy –

Zapomnij o Bramie

Informacje, które nie są już przydatne w stanie komórki, są usuwane za pomocą bramki zapominania. Dwa wejścia X T (wejście w określonym czasie) i H t-1 (wyjście z poprzedniej komórki) są podawane do bramki i mnożone przez macierze wag, a następnie dodawane jest obciążenie. Wynik jest przepuszczany przez funkcję aktywacji, która daje wynik binarny. Jeżeli dla danego stanu komórki wyjście wynosi 0, informacja zostaje zapomniana, a dla wyjścia 1 informacja zostaje zachowana do wykorzystania w przyszłości. Równanie bramki zapominania to:

f_t = σ(W_f · [h_{t-1}, x_t] + b_f)
Gdzie:

  • W_f reprezentuje macierz wag związaną z bramką zapominania.
  • [h_t-1, x_t] oznacza połączenie bieżącego wejścia i poprzedniego stanu ukrytego.
  • b_f to błąd związany z bramką zapominania.
  • σ jest sigmoidalną funkcją aktywacji.

Architektura LSTM

Brama wejściowa

Dodanie przydatnych informacji do stanu komórki odbywa się za pomocą bramki wejściowej. Najpierw informacja jest regulowana za pomocą funkcji sigmoidy i filtruje wartości do zapamiętania podobnie jak w przypadku bramki zapominania za pomocą wejść H t-1 I X T .. Następnie tworzony jest wektor za pomocą podejrzany funkcja dająca wynik od -1 do +1, która zawiera wszystkie możliwe wartości z ht-1I X T . Na koniec wartości wektora i wartości regulowane są mnożone w celu uzyskania użytecznych informacji. Równanie bramki wejściowej to:

i_t = σ(W_i · [h_{t-1}, x_t] + b_i)

Ĉ_t = tanh(W_c · [h_{t-1}, x_t] + b_c)

Mnożymy poprzedni stan przez fT, pomijając informacje, które wcześniej postanowiliśmy zignorować. Następnie zaliczamy m.inT∗CT. Reprezentuje to zaktualizowane wartości kandydujące, skorygowane o kwotę, którą wybraliśmy do zaktualizowania każdej wartości stanu.

C_t = f_t ⊙ C_{t-1} + i_t ⊙ Ĉ_t

Gdzie

  • ⊙ oznacza mnożenie elementarne
  • tanh to funkcja aktywacji tanh

Brama wyjściowa

Zadanie wydobycia przydatnych informacji z bieżącego stanu komórki, które mają być prezentowane na wyjściu, realizowane jest przez bramkę wyjściową. Najpierw generowany jest wektor poprzez zastosowanie funkcji tanh do komórki. Następnie informacja jest regulowana za pomocą funkcji sigmoidalnej i filtrowana według wartości do zapamiętania na wejściach h_{t-1} Ix_t. Na koniec wartości wektora i wartości regulowane są mnożone i wysyłane jako dane wyjściowe i wejściowe do następnej komórki. Równanie bramki wyjściowej jest następujące:

o_t = σ(W_o · [h_{t-1}, x_t] + b_o)

Zastosowania LSTM

Niektóre ze znanych zastosowań LSTM obejmują:

  • Modelowanie języka: LSTM były wykorzystywane do zadań związanych z przetwarzaniem języka naturalnego, takich jak modelowanie języka, tłumaczenie maszynowe i podsumowywanie tekstu. Można je przeszkolić w zakresie tworzenia spójnych i poprawnych gramatycznie zdań, ucząc się zależności między słowami w zdaniu.
  • Rozpoznawanie mowy: LSTM były wykorzystywane do zadań rozpoznawania mowy, takich jak transkrypcja mowy na tekst i rozpoznawanie poleceń mówionych. Można je przeszkolić w zakresie rozpoznawania wzorców mowy i dopasowywania ich do odpowiedniego tekstu.
  • Prognozowanie szeregów czasowych: LSTM były wykorzystywane do zadań związanych z prognozowaniem szeregów czasowych, takich jak przewidywanie cen akcji, pogody i zużycia energii. Mogą uczyć się wzorców w danych szeregów czasowych i wykorzystywać je do przewidywania przyszłych wydarzeń.
  • Wykrywanie anomalii: LSTM były wykorzystywane do zadań związanych z wykrywaniem anomalii, takich jak wykrywanie oszustw i włamań do sieci. Można ich przeszkolić w zakresie identyfikowania wzorców w danych odbiegających od normy i oznaczania ich jako potencjalnych anomalii.
  • Systemy rekomendujące: LSTM były wykorzystywane do zadań rekomendacyjnych, takich jak polecanie filmów, muzyki i książek. Mogą uczyć się wzorców zachowań użytkowników i wykorzystywać je do tworzenia spersonalizowanych rekomendacji.
  • Analiza wideo: LSTM były wykorzystywane do zadań analizy wideo, takich jak wykrywanie obiektów, rozpoznawanie aktywności i klasyfikacja działań. Można ich używać w połączeniu z innymi architekturami sieci neuronowych, takimi jak konwolucyjne sieci neuronowe (CNN), do analizowania danych wideo i wydobywania przydatnych informacji.

LTSM kontra RNN

Funkcja

LSTM (pamięć długoterminowa)

RNN (rekurencyjna sieć neuronowa)

Pamięć

Posiada specjalną jednostkę pamięci, która pozwala mu uczyć się długoterminowych zależności w danych sekwencyjnych

Nie posiada modułu pamięci

Kierunkowość

Można go przeszkolić w zakresie przetwarzania danych sekwencyjnych zarówno w przód, jak i w tył

Można go wytrenować tylko w zakresie przetwarzania danych sekwencyjnych w jednym kierunku

Szkolenie

Trudniejszy do wytrenowania niż RNN ze względu na złożoność bramek i jednostki pamięci

Łatwiejszy do trenowania niż LSTM

Długoterminowe uczenie się zależności

Tak

Ograniczony

Możliwość uczenia się danych sekwencyjnych

Tak

Tak

Aplikacje

Tłumaczenie maszynowe, rozpoznawanie mowy, podsumowywanie tekstu, przetwarzanie języka naturalnego, prognozowanie szeregów czasowych

Przetwarzanie języka naturalnego, tłumaczenie maszynowe, rozpoznawanie mowy, przetwarzanie obrazu, przetwarzanie wideo

Problem z długoterminowymi zależnościami w RNN

Rekurencyjne sieci neuronowe (RNN) zaprojektowano do obsługi danych sekwencyjnych poprzez utrzymywanie stanu ukrytego, który przechwytuje informacje z poprzednich kroków czasowych. Często jednak napotykają wyzwania związane z uczeniem się zależności długoterminowych, w których informacje z odległych etapów czasowych stają się kluczowe dla dokonywania dokładnych przewidywań. Problem ten nazywany jest problemem zanikającego gradientu lub problemem eksplodującego gradientu.

ciąg i podciąg

Poniżej wymieniono kilka typowych problemów:

Znikający gradient

Podczas propagacji wstecznej w czasie gradienty mogą stać się bardzo małe, gdy są mnożone w łańcuchu powtarzających się połączeń, co powoduje, że model ma trudności z nauką zależności oddzielonych wieloma krokami czasowymi.

Wybuchający gradient

I odwrotnie, gradienty mogą eksplodować podczas propagacji wstecznej, co prowadzi do niestabilności liczbowej i utrudnia zbieżność modelu.

Różne warianty pamięci krótkotrwałej

Z biegiem czasu zaproponowano kilka wariantów i ulepszeń oryginalnej architektury LSTM.

Waniliowy LSTM

Jest to oryginalna architektura LSTM zaproponowana przez Hochreitera i Schmidhubera. Zawiera komórki pamięci z bramkami wejściowymi, zapominającymi i wyjściowymi, które kontrolują przepływ informacji. Kluczową ideą jest umożliwienie sieci selektywnej aktualizacji i zapominania informacji z komórki pamięci.

Połączenia przez wizjer

W wizjerze LSTM bramki mogą oprócz stanu ukrytego sprawdzać stan komórki. Dzięki temu bramki mogą brać pod uwagę stan komórki podczas podejmowania decyzji, dostarczając więcej informacji kontekstowych.

Bramkowana jednostka cykliczna (GRU)

GRU jest alternatywą dla LSTM, zaprojektowaną tak, aby była prostsza i wydajniejsza obliczeniowo. Łączy bramki wejściowe i zapominające w jedną bramkę aktualizacji oraz łączy stan komórki i stan ukryty. Chociaż GRU mają mniej parametrów niż LSTM, wykazano, że w praktyce działają one podobnie.

Wniosek

Long Short-Term Memory (LSTM) to potężny typ rekurencyjnej sieci neuronowej (RNN), który dobrze nadaje się do obsługi danych sekwencyjnych z długotrwałymi zależnościami. Rozwiązuje problem zanikającego gradientu, typowe ograniczenie RNN, wprowadzając mechanizm bramkujący kontrolujący przepływ informacji przez sieć. Dzięki temu LSTM mogą uczyć się i zatrzymywać informacje z przeszłości, dzięki czemu są skuteczne w zadaniach takich jak tłumaczenie maszynowe, rozpoznawanie mowy i przetwarzanie języka naturalnego.

Sprawdź także:

Często zadawane pytania (FAQ)

1. Co to jest LSTM i dlaczego się go stosuje?

LSTM, czyli Long Short-Term Memory, to rodzaj rekurencyjnej sieci neuronowej przeznaczonej do zadań sekwencyjnych, doskonale radzącej sobie z przechwytywaniem i wykorzystywaniem długoterminowych zależności w danych.

2. Jak działa LSTM?

LSTM wykorzystują stan komórki do przechowywania informacji o wcześniejszych danych wejściowych. Ten stan komórki jest aktualizowany na każdym etapie sieci, a sieć wykorzystuje go do przewidywania bieżącego sygnału wejściowego. Stan komórki jest aktualizowany za pomocą szeregu bramek kontrolujących ilość informacji, która może przepływać do i z komórki.

3. Jakie są przykłady LSTM?

Przykłady LSTM (Long Short-Term Memory) obejmują rozpoznawanie mowy, tłumaczenie maszynowe i przewidywanie szeregów czasowych, wykorzystując jego zdolność do przechwytywania długoterminowych zależności w danych sekwencyjnych.

4. Jaka jest różnica pomiędzy LSTM a bramkowaną jednostką powtarzalną (GRU)?

LSTM ma mechanizm stanu komórki i bramkowania, który kontroluje przepływ informacji, podczas gdy GRU ma prostszy mechanizm aktualizacji z pojedynczą bramką. LSTM jest potężniejszy, ale wolniejszy w uczeniu, podczas gdy GRU jest prostszy i szybszy.

5. Jaka jest różnica pomiędzy LSTM i RNN?

  • RNN mają prostą, powtarzalną strukturę z jednokierunkowym przepływem informacji.
  • LSTM mają mechanizm bramkujący, który kontroluje przepływ informacji i stan komórki pamięci długotrwałej.
  • LSTM generalnie przewyższają RNN w zadaniach wymagających uczenia się długotrwałych zależności.

6. Czy LSTM jest szybszy niż CNN?

Nie, LSTM i CNN służą różnym celom. LSTM służą do danych sekwencyjnych; Sieci CNN służą do danych przestrzennych.

7. Czy LSTM jest szybszy niż GRU?

Generalnie tak. GRU mają mniej parametrów, co może prowadzić do szybszego uczenia w porównaniu do LSTM.