Tweet Share Share

Last Updated on February 20, 2020

Sieci LSTM (Long Short-Term Memory) są typem rekurencyjnych sieci neuronowych zdolnych do uczenia się zależności od kolejności w problemach przewidywania sekwencji.

Jest to zachowanie wymagane w złożonych domenach problemowych, takich jak tłumaczenie maszynowe, rozpoznawanie mowy i inne.

Sieci LSTM są złożonym obszarem głębokiego uczenia. Może być trudno zorientować się, czym są LSTM-y i jak terminy takie jak dwukierunkowy i sekwencja do sekwencji odnoszą się do tej dziedziny.

W tym poście uzyskasz wgląd w LSTM-y za pomocą słów naukowców, którzy opracowali te metody i zastosowali je do nowych i ważnych problemów.

Jest niewielu, którzy są lepsi w jasnym i precyzyjnym wyrażaniu zarówno obietnicy LSTM, jak i tego, jak one działają, niż eksperci, którzy je opracowali.

Będziemy badać kluczowe pytania w dziedzinie LSTM przy użyciu cytatów z ekspertów, a jeśli jesteś zainteresowany, będziesz mógł zanurzyć się w oryginalnych dokumentach, z których cytaty zostały wzięte.

Rozpocznij swój projekt dzięki mojej nowej książce Long Short-Term Memory Networks With Python, zawierającej samouczki krok po kroku oraz pliki z kodem źródłowym Pythona dla wszystkich przykładów.

Zacznijmy.

A Gentle Introduction to Long Short-Term Memory Networks by the Experts
Photo by Oran Viriyincy, some rights reserved.

Obietnica rekurencyjnych sieci neuronowych

Recurrent neural networks różnią się od tradycyjnych sieci neuronowych feed-forward.

Ta różnica w dodawaniu złożoności przychodzi z obietnicą nowych zachowań, których tradycyjne metody nie mogą osiągnąć.

Sieci rekurencyjne … mają stan wewnętrzny, który może reprezentować informacje kontekstowe. … przechowują informacje o przeszłych danych wejściowych przez czas, który nie jest ustalony a priori, ale raczej zależy od ich wag i danych wejściowych.

Sieć rekurencyjna, której wejścia nie są stałe, ale raczej stanowią sekwencję wejściową, może być użyta do przekształcenia sekwencji wejściowej w sekwencję wyjściową, biorąc pod uwagę informacje kontekstowe w elastyczny sposób.

– Yoshua Bengio, et al., Learning Long-Term Dependencies with Gradient Descent is Difficult, 1994.

Praca definiuje 3 podstawowe wymagania rekurencyjnej sieci neuronowej:

  • That the system be able to store information for an arbitrary duration.
  • Żeby system był odporny na szum (tj. fluktuacje wejść, które są losowe lub nieistotne dla przewidywania poprawnego wyjścia).
  • Żeby parametry systemu były wytrenowane (w rozsądnym czasie).

Papier opisuje również „minimalne zadanie” do demonstracji rekurencyjnych sieci neuronowych.

Kontekst jest kluczowy.

Rekurencyjne sieci neuronowe muszą używać kontekstu podczas dokonywania przewidywań, ale w tym zakresie wymagany kontekst musi być również nauczony.

… rekurencyjne sieci neuronowe zawierają cykle, które podają aktywacje sieci z poprzedniego kroku czasowego jako dane wejściowe do sieci, aby wpłynąć na przewidywania w bieżącym kroku czasowym. Aktywacje te są przechowywane w wewnętrznych stanach sieci, które w zasadzie mogą zawierać długoterminowe czasowe informacje kontekstowe. Mechanizm ten pozwala sieciom RNN wykorzystać dynamicznie zmieniające się okno kontekstowe w historii sekwencji wejściowej

– Hassim Sak, et al., Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014

Need help with LSTMs for Sequence Prediction?

Take my free 7-day email course and discover 6 different LSTM architectures (with code).

Click to sign-up and also get a free PDF Ebook version of the course.

Start Your FREE Mini-Course Now!

Sieci LSTM spełniają obietnicę

Sukces sieci LSTM polega na tym, że są one jednym z pierwszych narzędzi, które przezwyciężyły problemy techniczne i spełniły obietnicę rekurencyjnych sieci neuronowych.

W związku z tym standardowe sieci RNN nie uczą się w obecności opóźnień czasowych większych niż 5-10 dyskretnych kroków czasowych między odpowiednimi zdarzeniami wejściowymi a sygnałami docelowymi. Problem znikającego błędu poddaje w wątpliwość, czy standardowe RNN mogą rzeczywiście wykazywać znaczące praktyczne zalety w stosunku do sieci typu feedforward opartych na oknach czasowych. Najnowszy model, „Long Short-Term Memory” (LSTM), nie jest dotknięty tym problemem. LSTM może nauczyć się pokonywać minimalne opóźnienia czasowe przekraczające 1000 dyskretnych kroków czasowych, wymuszając stały przepływ błędów poprzez „karuzele stałych błędów” (constant error carrousels – CEC) w obrębie specjalnych jednostek, zwanych komórkami

– Felix A. Gers, et al., Learning to Forget: Continual Prediction with LSTM, 2000

Dwa problemy techniczne pokonywane przez LSTM to znikające gradienty i eksplodujące gradienty, oba związane z tym, jak sieć jest trenowana.

Niestety, zakres informacji kontekstowych, do których standardowe RNN mogą uzyskać dostęp, jest w praktyce dość ograniczony. Problem polega na tym, że wpływ danego wejścia na warstwę ukrytą, a więc i na wyjście sieci, albo maleje, albo rośnie wykładniczo w miarę cyklicznego przechodzenia przez rekurencyjne połączenia sieci. To niedociągnięcie … określane w literaturze jako problem znikającego gradientu … Long Short-Term Memory (LSTM) jest architekturą RNN zaprojektowaną specjalnie do rozwiązania problemu znikającego gradientu.

– Alex Graves, et al., A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009

Kluczem do rozwiązania problemów technicznych przez LSTM była specyficzna struktura wewnętrzna jednostek użytych w modelu.

… regulowana przez jej zdolność do radzenia sobie z problemem zanikających i eksplodujących gradientów, co jest najczęstszym wyzwaniem w projektowaniu i trenowaniu RNN. Aby sprostać temu wyzwaniu, wprowadzono szczególną formę sieci rekurencyjnych, zwaną LSTM, i zastosowano ją z dużym powodzeniem do tłumaczenia i generowania sekwencji.

– Alex Graves, et al…, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

How do LSTMs Work?

Raczej niż zagłębiać się w równania, które rządzą tym, jak LSTMs są dopasowane, analogia jest użytecznym narzędziem, aby szybko zorientować się, jak działają.

Używamy sieci z jedną warstwą wejściową, jedną warstwą ukrytą i jedną warstwą wyjściową… (W pełni) samopodłączająca się warstwa ukryta zawiera komórki pamięci i odpowiadające im jednostki bramek…

Wewnętrzna architektura każdej komórki pamięci gwarantuje stały błąd w jej stałej karuzeli błędów CEC… Stanowi to podstawę do pokonywania bardzo dużych opóźnień czasowych. Dwie jednostki bramek uczą się otwierać i zamykać dostęp do błędów w obrębie CEC każdej komórki pamięci. Multiplikatywna bramka wejściowa zapewnia ochronę CEC przed perturbacjami powodowanymi przez nieistotne wejścia. Podobnie, multiplikatywna bramka wyjściowa chroni inne jednostki przed perturbacjami ze strony aktualnie nieistotnej zawartości pamięci.

– Sepp Hochreiter i Jurgen Schmidhuber, Long Short-Term Memory, 1997.

Wielokrotne analogie mogą pomóc w zakupie tego, co odróżnia LSTM od tradycyjnych sieci neuronowych złożonych z prostych neuronów.

Architektura Long Short Term Memory została umotywowana analizą przepływu błędów w istniejących sieciach RNN, która wykazała, że długie opóźnienia czasowe były niedostępne dla istniejących architektur, ponieważ błąd wstecznie propagowany albo wysadza się, albo maleje wykładniczo.

Warstwa LSTM składa się z zestawu połączonych rekurencyjnie bloków, zwanych blokami pamięci. Bloki te można traktować jako różniczkowalną wersję układów pamięci w komputerze cyfrowym. Każdy z nich zawiera jedną lub więcej rekurencyjnie połączonych komórek pamięci i trzy multiplikatywne jednostki – bramki wejścia, wyjścia i zapomnienia – które zapewniają ciągłe analogie operacji zapisu, odczytu i resetowania komórek. … Sieć może oddziaływać z komórkami tylko poprzez bramki.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Ciekawe jest zauważyć, że nawet po ponad 20 latach, prosta (lub waniliowa) LSTM może być nadal najlepszym miejscem do rozpoczęcia stosowania tej techniki.

Najczęściej używana architektura LSTM (waniliowa LSTM) radzi sobie dość dobrze na różnych zestawach danych…

Szybkość uczenia i rozmiar sieci są najważniejszymi przestrajalnymi hiperparametrami LSTM…

… To implikuje, że hiperparametry mogą być dostrajane niezależnie. W szczególności, szybkość uczenia może być skalibrowana najpierw przy użyciu dość małej sieci, oszczędzając w ten sposób dużo czasu na eksperymenty.

– Klaus Greff, et al., LSTM: A Search Space Odyssey, 2015

What are LSTM Applications?

Ważne jest, aby zorientować się dokładnie, do jakiego typu problemów związanych z uczeniem sekwencji nadają się LSTM.

Long Short-Term Memory (LSTM) może rozwiązać wiele zadań nierozwiązywalnych przez wcześniejsze algorytmy uczenia dla rekurencyjnych sieci neuronowych (RNN).

… LSTM posiada obietnicę dla każdego zadania przetwarzania sekwencyjnego, w którym podejrzewamy, że może istnieć hierarchiczny rozkład, ale nie wiemy z góry, jaki jest ten rozkład.

– Felix A. Gers, et al., Learning to Forget: Continual Prediction with LSTM, 2000

Sieć neuronowa rekurencyjna (RNN) jest neuronowym modelem sekwencyjnym, który osiąga najnowocześniejsze wyniki w ważnych zadaniach, które obejmują modelowanie języka, rozpoznawanie mowy i tłumaczenie maszynowe.

– Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

Ponieważ LSTMy są skuteczne w przechwytywaniu długoterminowych zależności czasowych bez cierpienia z powodu przeszkód optymalizacyjnych, które nękają proste sieci rekurencyjne (SRN), zostały one wykorzystane do postępu stanu wiedzy dla wielu trudnych problemów. Obejmuje to między innymi rozpoznawanie i generowanie pisma ręcznego, modelowanie i tłumaczenie języków, modelowanie akustyczne mowy, syntezę mowy, przewidywanie struktury drugorzędowej białek, analizę danych audio i wideo.

– Klaus Greff, et al., LSTM: A Search Space Odyssey, 2015

What are Bidirectional LSTMs?

A commonly mentioned improvement upon LSTMs are bidirectional LSTMs.

Podstawową ideą bidirectional recurrent neural nets jest przedstawienie każdej sekwencji treningowej w przód i w tył do dwóch oddzielnych sieci rekurencyjnych, z których obie są podłączone do tej samej warstwy wyjściowej. … Oznacza to, że dla każdego punktu w danej sekwencji, BRNN posiada kompletną, sekwencyjną informację o wszystkich punktach przed i po nim. Ponadto, ponieważ sieć może swobodnie wykorzystywać tak dużo lub tak mało tego kontekstu, jak to konieczne, nie ma potrzeby znalezienia (zależnego od zadania) okna czasowego lub docelowej wielkości opóźnienia.

… w przypadku problemów czasowych, takich jak rozpoznawanie mowy, poleganie na wiedzy o przyszłości wydaje się na pierwszy rzut oka naruszać przyczynowość … Jak możemy opierać nasze rozumienie tego, co usłyszeliśmy na czymś, co jeszcze nie zostało powiedziane? Jednak ludzcy słuchacze robią dokładnie to samo. Dźwięki, słowa, a nawet całe zdania, które na początku nic nie znaczą, nabierają sensu w świetle przyszłego kontekstu.

– Alex Graves, et al., Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Jedną z wad konwencjonalnych RNN jest to, że są one w stanie wykorzystać tylko poprzedni kontekst. … Dwukierunkowe RNN (BRNN) przetwarzają dane w obu kierunkach za pomocą dwóch oddzielnych warstw ukrytych, które są następnie przekazywane do tej samej warstwy wyjściowej. … Połączenie BRNNs z LSTM daje bidirectional LSTM, który może uzyskać dostęp do kontekstu dalekiego zasięgu w obu kierunkach wejściowych

– Alex Graves, et al., Speech recognition with deep recurrent neural networks, 2013

W przeciwieństwie do konwencjonalnych RNNs, bidirectional RNNs wykorzystują zarówno poprzedni, jak i przyszły kontekst, przetwarzając dane z dwóch kierunków za pomocą dwóch oddzielnych warstw ukrytych. Jedna warstwa przetwarza sekwencję wejściową w kierunku do przodu, podczas gdy druga przetwarza ją w kierunku odwrotnym. Wyjście bieżącego kroku czasowego jest następnie generowane przez połączenie wektora ukrytego obu warstw…

– Di Wang and Eric Nyberg, A Long Short-Term Memory Model for Answer Sentence Selection in
Question Answering, 2015

What are seq2seq LSTMs or RNN Encoder-Decoders?

Sekwencja do sekwencji LSTM, zwane również koder-dekoder LSTMs, są zastosowaniem LSTMs, które otrzymują dużo uwagi biorąc pod uwagę ich imponujące możliwości.

… proste zastosowanie architektury Long Short-Term Memory (LSTM) może rozwiązać ogólne problemy sekwencji do sekwencji.

Pomysł polega na użyciu jednego LSTM do odczytania sekwencji wejściowej, jeden krok czasowy na raz, w celu uzyskania dużej reprezentacji wektorowej o stałym wymiarze, a następnie użycie innego LSTM do wyodrębnienia sekwencji wyjściowej z tego wektora. Drugi LSTM jest zasadniczo rekurencyjnym modelem językowym sieci neuronowej, z wyjątkiem tego, że jest on uwarunkowany sekwencją wejściową.

Zdolność LSTM do skutecznego uczenia się na danych z zależnościami czasowymi o dużym zasięgu sprawia, że jest to naturalny wybór dla tej aplikacji ze względu na znaczne opóźnienie czasowe pomiędzy wejściami i odpowiadającymi im wyjściami.

Byliśmy w stanie dobrze radzić sobie z długimi zdaniami, ponieważ odwróciliśmy kolejność słów w zdaniu źródłowym, ale nie w zdaniu docelowym w zestawie treningowym i testowym. Robiąc to, wprowadziliśmy wiele krótkoterminowych zależności, które sprawiły, że problem optymalizacji stał się znacznie prostszy. … Prosta sztuczka z odwróceniem kolejności słów w zdaniu źródłowym jest jednym z kluczowych technicznych wkładów tej pracy

– Ilya Sutskever, et al.., Sequence to Sequence Learning with Neural Networks, 2014

An „encoder” RNN odczytuje zdanie źródłowe i przekształca je w bogatą reprezentację wektorową o stałej długości, która z kolei jest używana jako początkowy stan ukryty „decoder” RNN, który generuje zdanie docelowe. Tutaj proponujemy podążać za tą elegancką recepturą, zastępując RNN kodera przez głęboką sieć neuronową convolution (CNN). … naturalne jest użycie CNN jako „kodera” obrazu, poprzez wstępne wytrenowanie jej dla zadania klasyfikacji obrazu i użycie ostatniej ukrytej warstwy jako wejścia do dekodera RNN generującego zdania.

– Oriol Vinyals, et al., Show and Tell: A Neural Image Caption Generator, 2014

… an RNN Encoder-Decoder, consists of two recurrent neural networks (RNN) that act as an encoder and a decoder pair. Koder odwzorowuje sekwencję źródłową o zmiennej długości na wektor o stałej długości, a dekoder odwzorowuje reprezentację wektorową z powrotem na sekwencję docelową o zmiennej długości.

– Kyunghyun Cho, et al., Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014

Podsumowanie

W tym poście otrzymaliście delikatne wprowadzenie do LSTMów słowami naukowców, którzy opracowali i zastosowali te techniki.

Dostarcza to zarówno jasnego i precyzyjnego wyobrażenia o tym, czym są i jak działają LSTMy, jak i ważnej artykulacji na temat obietnicy LSTMów w dziedzinie rekurencyjnych sieci neuronowych.

Czy któryś z cytatów pomógł Ci zrozumieć lub zainspirował Cię?
Daj mi znać w komentarzach poniżej.

Develop LSTMs for Sequence Prediction Today!

Develop Your Own LSTM models in Minutes

….z zaledwie kilkoma liniami kodu Pythona

Odkryj jak w moim nowym Ebooku:
Long Short-Term Memory Networks with Python

Zawiera on samouczki na tematy takie jak:
CNN LSTMs, Encoder-Decoder LSTMs, modele generatywne, przygotowanie danych, przewidywanie i wiele więcej…

Finally Bring LSTM Recurrent Neural Networks to
Your Sequence Predictions Projects

Skip the Academics. Just Results.

See What’s Inside

Tweet Share Share

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.