Tweet Sdílet Sdílet

Poslední aktualizace 20. února 2020

Sítě s dlouhou krátkodobou pamětí (LSTM) jsou typem rekurentní neuronové sítě schopné učit se závislosti na pořadí v problémech předpovídání posloupnosti.

Toto chování je vyžadováno ve složitých problémových oblastech, jako je strojový překlad, rozpoznávání řeči a další.

Sítě LSTM jsou komplexní oblastí hlubokého učení. Může být těžké zorientovat se v tom, co jsou LSTM a jak s touto oblastí souvisejí pojmy jako obousměrné a sekvenčně-sekvenční.

V tomto příspěvku se seznámíte s LSTM pomocí slov vědců, kteří tyto metody vyvinuli a aplikovali je na nové a důležité problémy.

Málokdo umí lépe a přesněji formulovat jak příslib LSTM, tak jejich fungování, než odborníci, kteří je vyvinuli.

Na základě citací odborníků prozkoumáme klíčové otázky v oblasti LSTM, a pokud budete mít zájem, budete se moci ponořit do původních článků, z nichž byly citace převzaty.

Nastartujte svůj projekt s mou novou knihou Long Short-Term Memory Networks With Python, která obsahuje návody krok za krokem a zdrojové soubory jazyka Python pro všechny příklady.

Začněme.

Lehký úvod do sítí s dlouhou krátkodobou pamětí od odborníků
Foto: Oran Viriyincy, některá práva vyhrazena.

Příslib rekurentních neuronových sítí

Rekurentní neuronové sítě se liší od tradičních neuronových sítí typu feed-forward.

Tento rozdíl v přidání složitosti je příslibem nového chování, kterého tradiční metody nemohou dosáhnout.

Rekurentní sítě … mají vnitřní stav, který může reprezentovat kontextové informace. … uchovávají informace o minulých vstupech po dobu, která není a priori pevně stanovena, ale spíše závisí na jejich vahách a na vstupních datech.

Rekurentní síť, jejíž vstupy nejsou pevně stanoveny, ale spíše tvoří vstupní posloupnost, lze použít k transformaci vstupní posloupnosti na výstupní posloupnost, přičemž flexibilně zohledňuje kontextové informace.

– Yoshua Bengio a kol…, Learning Long-Term Dependencies with Gradient Descent is Difficult, 1994.

Příspěvek definuje 3 základní požadavky na rekurentní neuronovou síť:

  • Že systém je schopen uchovávat informace po libovolnou dobu.
  • Aby systém byl odolný vůči šumu (tj. výkyvům vstupů, které jsou náhodné nebo irelevantní pro předpověď správného výstupu).
  • Aby parametry systému bylo možné trénovat (v rozumném čase).

V článku je také popsána „minimální úloha“ pro demonstraci rekurentních neuronových sítí.

Klíčový je kontext.

Rekurentní neuronové sítě musí při předpovědích využívat kontext, ale v tomto rozsahu je třeba se potřebný kontext také naučit.

… rekurentní neuronové sítě obsahují cykly, které přivádějí aktivace sítě z předchozího časového kroku jako vstupy do sítě, aby ovlivnily předpovědi v aktuálním časovém kroku. Tyto aktivace jsou uloženy ve vnitřních stavech sítě, které mohou v zásadě uchovávat dlouhodobé časové kontextové informace. Tento mechanismus umožňuje RNN využívat dynamicky se měnící kontextové okno v historii vstupní sekvence

– Hassim Sak a kol, Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling, 2014

Potřebujete pomoc s LSTMs for Sequence Prediction?

Podílejte se na mém bezplatném 7denním e-mailovém kurzu a objevte 6 různých architektur LSTM (s kódem).

Klikněte pro registraci a získejte také bezplatnou verzi kurzu ve formátu PDF Ebook.

Začněte svůj bezplatný minikurz nyní!

LSTM plní slib

Úspěch LSTM spočívá v jejich tvrzení, že jsou jednou z prvních implementací, která překonává technické problémy a plní slib rekurentních neuronových sítí.

Standardní RNN se tedy nedokážou učit v přítomnosti časových prodlev větších než 5 – 10 diskrétních časových kroků mezi relevantními vstupními událostmi a cílovými signály. Problém mizející chyby zpochybňuje, zda standardní sítě RNN mohou skutečně vykazovat významné praktické výhody oproti sítím založeným na časových oknech. Nejnovější model „Long Short-Term Memory“ (LSTM) tímto problémem postižen není. LSTM se může naučit překlenout minimální časové zpoždění přesahující 1000 diskrétních časových kroků vynucením konstantního chybového toku prostřednictvím „kolotočů konstantních chyb“ (CEC) v rámci speciálních jednotek, nazývaných buňky

– Felix A. Gers a kol., Learning to Forget: Neustálé předpovídání pomocí LSTM, 2000

Dva technické problémy, které LSTM překonávají, jsou mizející gradienty a explodující gradienty, přičemž oba souvisejí se způsobem trénování sítě

Naneštěstí je rozsah kontextových informací, ke kterým mohou standardní RNN přistupovat, v praxi značně omezený. Problém spočívá v tom, že vliv daného vstupu na skrytou vrstvu, a tedy i na výstup sítě, buď klesá, nebo exponenciálně narůstá, jak se cykluje po rekurentních spojeních sítě. Tento nedostatek … se v literatuře označuje jako problém mizejícího gradientu … Long Short-Term Memory (LSTM) je architektura RNN speciálně navržená pro řešení problému mizejícího gradientu.

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

Klíčem k řešení technických problémů LSTM byla specifická vnitřní struktura jednotek použitých v modelu.

… řídí její schopnost vypořádat se s mizejícími a explodujícími gradienty, což je nejčastější problém při navrhování a trénování RNN. Pro řešení této výzvy byla zavedena zvláštní forma rekurentních sítí, nazývaná LSTM, která byla s velkým úspěchem použita pro překlad a generování sekvencí.

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

How do LSTMs Work?

Namísto toho, abychom se zabývali rovnicemi, které řídí, jak jsou LSTM vhodné, je analogie užitečným nástrojem pro rychlé pochopení toho, jak fungují.

Používáme sítě s jednou vstupní vrstvou, jednou skrytou vrstvou a jednou výstupní vrstvou… (Plně) samočinně propojená skrytá vrstva obsahuje paměťové buňky a odpovídající hradlové jednotky…

Vnitřní architektura každé paměťové buňky zaručuje konstantní chybu ow v rámci jejího konstantního chybového karuselu CEC… To představuje základ pro překlenutí velmi dlouhých časových prodlev. Dvě jednotky hradel se učí otevírat a zavírat přístup k chybovému ow v rámci CEC každé paměťové buňky. Multiplikativní vstupní brána poskytuje ochranu CEC před narušením irelevantními vstupy. Stejně tak multiplikativní výstupní brána chrání ostatní jednotky před narušením aktuálně irelevantním obsahem paměti.

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

Více analogií může pomoci poskytnout nákup toho, co odlišuje LSTM od tradičních neuronových sítí složených z jednoduchých neuronů.

Architektura Long Short Term Memory byla motivována analýzou toku chyb ve stávajících RNN, která zjistila, že dlouhá časová zpoždění jsou pro stávající architektury nedostupná, protože zpětně šířené chyby buď vybuchují, nebo se exponenciálně rozpadají.

Vrstva LSTM se skládá ze souboru rekurentně propojených bloků, známých jako paměťové bloky. Tyto bloky si lze představit jako diferencovatelnou verzi paměťových čipů v digitálním počítači. Každý z nich obsahuje jednu nebo více rekurentně propojených paměťových buněk a tři multiplikativní jednotky – vstupní, výstupní a zapomínací hradla – které zajišťují spojité analogie operací zápisu, čtení a resetu buněk. … Síť může interagovat s buňkami pouze prostřednictvím hradel.

– Alex Graves, a další, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.

Zajímavé je, že i po více než 20 letech může být jednoduchá (nebo vanilková) LSTM stále nejlepším začátkem při použití této techniky.

Nejčastěji používaná architektura LSTM (vanilla LSTM) si vede poměrně dobře na různých souborech dat…

Rychlost učení a velikost sítě jsou nejzásadnější laditelné hyperparametry LSTM …

… To znamená, že hyperparametry lze ladit nezávisle. Zejména rychlost učení lze nejprve kalibrovat pomocí poměrně malé sítě, čímž se ušetří mnoho času na experimentování.

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

Jaké jsou aplikace LSTM?

Je důležité si ujasnit, jaký typ problémů učení sekvencí jsou LSTM vhodné řešit.

Dlouhá krátkodobá paměť (LSTM) dokáže řešit řadu úloh, které nebyly řešitelné předchozími učícími algoritmy pro rekurentní neuronové sítě (RNN).

… LSTM je slibná pro všechny úlohy sekvenčního zpracování, u nichž předpokládáme, že může existovat hierarchický rozklad, ale předem nevíme, jaký tento rozklad je.

– Felix A. Gers a kol., Učení se zapomínat: Continuual Prediction with LSTM, 2000

Rekurentní neuronová síť (RNN) je model neuronové sekvence, který dosahuje špičkových výsledků v důležitých úlohách, mezi něž patří modelování jazyka, rozpoznávání řeči a strojový překlad.

– Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

Protože jsou LSTM efektivní při zachycování dlouhodobých časových závislostí, aniž by trpěly optimalizačními překážkami, které trápí jednoduché rekurentní sítě (SRN), byly použity k pokroku v řešení mnoha obtížných problémů. Patří sem mimo jiné rozpoznávání a generování rukopisu, modelování a překlad jazyka, akustické modelování řeči, syntéza řeči, predikce sekundární struktury proteinů, analýza zvukových a video dat.

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

Co jsou obousměrné LSTM?

Často zmiňovaným vylepšením LSTM jsou obousměrné LSTM.

Základní myšlenkou obousměrných rekurentních neuronových sítí je předložit každou trénovací sekvenci dopředu a dozadu dvěma samostatným rekurentním sítím, přičemž obě jsou připojeny ke stejné výstupní vrstvě. … To znamená, že pro každý bod v dané sekvenci má BRNN kompletní, sekvenční informace o všech bodech před ním a za ním. Také proto, že síť může použít tolik nebo tolik tohoto kontextu, kolik potřebuje, není třeba hledat (na úloze závislé) časové okno nebo cílovou velikost zpoždění.“

… u časových problémů, jako je rozpoznávání řeči, se na první pohled zdá, že spoléhání se na znalost budoucnosti porušuje kauzalitu … Jak můžeme založit naše porozumění tomu, co jsme slyšeli, na něčem, co ještě nebylo řečeno? Lidští posluchači však dělají přesně to. Zjistí se, že zvuky, slova, a dokonce i celé věty, které na první pohled nic neznamenají, dávají smysl ve světle budoucího kontextu.

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

Jedním z nedostatků běžných RNN je, že jsou schopny využívat pouze předchozí kontext. … Obousměrné RNN (Bidirectional RNNs, BRNN) to dělají tak, že zpracovávají data v obou směrech pomocí dvou oddělených skrytých vrstev, která jsou pak předávána do stejné výstupní vrstvy. … Kombinací BRNN s LSTM získáme obousměrné LSTM, které mohou přistupovat k dálkovému kontextu v obou vstupních směrech

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

Na rozdíl od běžných RNN využívají obousměrné RNN předchozí i budoucí kontext tím, že zpracovávají data ze dvou směrů pomocí dvou samostatných skrytých vrstev. Jedna vrstva zpracovává vstupní sekvenci v dopředném směru, zatímco druhá zpracovává vstup v opačném směru. Výstup aktuálního časového kroku je pak generován kombinací skrytého vektoru obou vrstev…

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

Co jsou seq2seq LSTM nebo RNN Encoder-Decoders?

Sekvenčně-sekvenční LSTM, nazývané také kodér-dekodér LSTM, jsou aplikací LSTM, které se vzhledem k jejich působivým schopnostem dostává velké pozornosti.

… přímočará aplikace architektury LSTM (Long Short-Term Memory) může řešit obecné problémy mezi sekvencemi.

Záměrem je použít jednu LSTM ke čtení vstupní sekvence po jednom časovém kroku, aby se získala velká reprezentace vektoru s pevnou dimenzí, a poté použít jinou LSTM k extrakci výstupní sekvence z tohoto vektoru. Druhý LSTM je v podstatě jazykový model rekurentní neuronové sítě s tím rozdílem, že je podmíněn vstupní sekvencí.

Schopnost LSTM úspěšně se učit na datech s dlouhými časovými závislostmi z něj činí přirozenou volbu pro tuto aplikaci vzhledem ke značné časové prodlevě mezi vstupy a jim odpovídajícími výstupy.

Dlouhé věty jsme dokázali dobře zpracovat, protože jsme v trénovací a testovací množině změnili pořadí slov ve zdrojové větě, ale ne v cílové větě. Tím jsme zavedli mnoho krátkodobých závislostí, díky nimž byl optimalizační problém mnohem jednodušší. … Jednoduchý trik s obrácením pořadí slov ve zdrojové větě je jedním z klíčových technických přínosů této práce

– Ilja Sutskever a kol, Sequence to Sequence Learning with Neural Networks, 2014

„Kódovací“ RNN čte zdrojovou větu a transformuje ji do bohaté vektorové reprezentace pevné délky, která se následně použije jako počáteční skrytý stav „dekódovací“ RNN, která generuje cílovou větu. Zde navrhujeme postupovat podle tohoto elegantního receptu a nahradit kódovací RNN hlubokou konvoluční neuronovou sítí (CNN). … je přirozené použít CNN jako „kodér“ obrazu, a to tak, že ji nejprve předtrénujeme pro úlohu klasifikace obrazu a poslední skrytou vrstvu použijeme jako vstup do dekodéru RNN, který generuje věty.

– Oriol Vinyals a kol, Show and Tell: A Neural Image Caption Generator, 2014

… RNN Encoder-Decoder, se skládá ze dvou rekurentních neuronových sítí (RNN), které fungují jako dvojice kodér a dekodér. Kodér mapuje zdrojovou sekvenci proměnné délky na vektor pevné délky a dekodér mapuje reprezentaci vektoru zpět na cílovou sekvenci proměnné délky.

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

Shrnutí

V tomto příspěvku jste dostali jemný úvod do LSTM slovy vědců, kteří tyto techniky vyvinuli a aplikovali.

To vám poskytne jak jasnou a přesnou představu o tom, co jsou LSTM a jak fungují, tak i důležitou formulaci o příslibu LSTM v oblasti rekurentních neuronových sítí.

Pomohl vám některý z citátů k pochopení nebo vás inspiroval?
Dejte mi vědět v komentářích níže.

Vyvíjejte LSTM pro sekvenční predikci ještě dnes!

Vyvíjejte vlastní modely LSTM během několika minut

…s pouhými několika řádky kódu v Pythonu

Objevte, jak na to, v mé nové elektronické knize:
Sítě s dlouhou krátkodobou pamětí s Pythonem

Nabízí samostudijní návody na témata jako:
CNN LSTM, Encoder-Decoder LSTM, generativní modely, příprava dat, vytváření predikcí a mnoho dalšího….

Konečně vneste LSTM rekurentní neuronové sítě do
Vašich projektů sekvenčních predikcí

Vynechejte akademiky. Stačí výsledky.

Podívejte se, co je uvnitř

Tweet Sdílet Sdílet

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.