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:
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.

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:
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.
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
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:
- Pamięć długoterminowa (LSTM) RNN w Tensorflow
- Generowanie tekstu przy użyciu sieci pamięci długoterminowej i krótkotrwałej
- Wyjaśnienie sieci pamięci długoterminowej
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.