logo

Co je to LSTM – Long Short Term Memory?

LSTM vyniká v úlohách sekvenční predikce, zachycuje dlouhodobé závislosti. Ideální pro časové řady, strojový překlad a rozpoznávání řeči díky závislosti na pořadí. Článek poskytuje hloubkový úvod do LSTM, zahrnuje model LSTM, architekturu, pracovní principy a kritickou roli, kterou hrají v různých aplikacích.

Co je LSTM?

Dlouhá Krátkodobá Paměť je vylepšená verze rekurentní neuronové sítě navržená společností Hochreiter & Schmidhuber.



Tradiční RNN má jediný skrytý stav, který prochází časem, což může znesnadnit síti naučit se dlouhodobé závislosti. Model LSTM vyřešit tento problém zavedením paměťové buňky, což je kontejner, který může uchovávat informace po delší dobu.

window.open javascript

Architektury LSTM jsou schopné naučit se dlouhodobé závislosti v sekvenčních datech, díky čemuž se dobře hodí pro úkoly, jako je např. jazykový překlad , rozpoznávání řeči a prognózování časových řad .

LSTM lze také použít v kombinaci s jinými architekturami neuronových sítí, jako je např Konvoluční neuronové sítě (CNN) pro analýzu obrazu a videa.



Architektura LSTM

Architektura LSTM zahrnuje paměťovou buňku, která je řízena třemi hradly: vstupní bránou, zapomenutou bránou a výstupní bránou. Tyto brány rozhodují o tom, jaké informace mají být přidány do paměťové buňky, z ní odebrány a jaké jsou výstupy z paměťové buňky.

  • Vstupní brána řídí, jaké informace jsou přidány do paměťové buňky.
  • Brána zapomenutí řídí, jaké informace jsou z paměťové buňky odstraněny.
  • Výstupní brána řídí, jaké informace jsou na výstupu z paměťové buňky.

To umožňuje sítím LSTM selektivně uchovávat nebo vyřazovat informace, když proudí sítí, což jim umožňuje naučit se dlouhodobé závislosti.

LSTM udržuje skrytý stav, který funguje jako krátkodobá paměť sítě. Skrytý stav se aktualizuje na základě vstupu, předchozího skrytého stavu a aktuálního stavu paměťové buňky.



Obousměrný model LSTM

Obousměrný LSTM (Bi LSTM/ BLSTM) je rekurentní neuronová síť (RNN), která je schopna zpracovávat sekvenční data v dopředném i zpětném směru. To umožňuje Bi LSTM naučit se závislosti delšího dosahu v sekvenčních datech než tradiční LSTM, které mohou zpracovávat sekvenční data pouze v jednom směru.

  • Bi LSTM se skládají ze dvou sítí LSTM, jedné, která zpracovává vstupní sekvenci v dopředném směru, a jedné, která zpracovává vstupní sekvenci ve zpětném směru.
  • Výstupy dvou sítí LSTM se pak spojí a vytvoří konečný výstup.

Modely LSTM, včetně Bi LSTM, prokázaly nejmodernější výkon v různých úkolech, jako je strojový překlad, rozpoznávání řeči a sumarizace textu.

Sítě v architektuře LSTM lze skládat na sebe a vytvářet tak hluboké architektury, které umožňují učení se ještě složitějším vzorům a hierarchiím v sekvenčních datech. Každá vrstva LSTM v naskládané konfiguraci zachycuje různé úrovně abstrakce a časové závislosti ve vstupních datech.

LSTM funguje

Architektura LSTM má řetězovou strukturu, která obsahuje čtyři neuronové sítě a různé paměťové bloky tzv buňky .

Informace jsou uchovávány buňkami a manipulace s pamětí jsou prováděny buňkami brány. Jsou tam tři brány -

Zapomeňte na bránu

Informace, které již nejsou užitečné ve stavu buňky, jsou odstraněny pomocí brány zapomenutí. Dva vstupy X t (vstup v konkrétním čase) a h t-1 (předchozí buněčný výstup) jsou přiváděny do hradla a násobeny váhovými maticemi s následným přidáním předpětí. Výsledná hodnota prochází aktivační funkcí, která poskytuje binární výstup. Pokud je pro konkrétní stav buňky výstup 0, informace je zapomenuta a pro výstup 1 je informace uchována pro budoucí použití. Rovnice pro bránu zapomenutí je:

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

  • W_f představuje hmotnostní matici spojenou s bránou zapomenutí.
  • [h_t-1, x_t] označuje zřetězení aktuálního vstupu a předchozího skrytého stavu.
  • b_f je zkreslení s bránou zapomenout.
  • σ je funkce aktivace sigmatu.

Architektura LSTM

Vstupní brána

Přidání užitečných informací ke stavu buňky se provádí vstupní bránou. Nejprve se informace regulují pomocí sigmoidní funkce a filtrují hodnoty, které se mají zapamatovat, podobně jako u brány zapomenutí pomocí vstupů h t-1 a X t .. Poté je vektor vytvořen pomocí rybí funkce, která dává výstup od -1 do +1, který obsahuje všechny možné hodnoty z ht-1a X t . Nakonec se hodnoty vektoru a regulované hodnoty vynásobí, aby se získaly užitečné informace. Rovnice pro vstupní bránu je:

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

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

Předchozí stav vynásobíme ft, bez ohledu na informace, které jsme se dříve rozhodli ignorovat. Dále zařadíme it∗Ct. To představuje aktualizované hodnoty kandidátů upravené o částku, kterou jsme zvolili pro aktualizaci jednotlivých hodnot stavu.

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

kde

  • ⊙ označuje násobení po prvcích
  • tanh je funkce aktivace tanh

Výstupní brána

Úkol extrahovat užitečné informace z aktuálního stavu buňky, které mají být prezentovány jako výstup, provádí výstupní brána. Nejprve se vygeneruje vektor aplikací tanh funkce na buňku. Poté jsou informace regulovány pomocí sigmoidní funkce a filtrovány podle hodnot, které se mají pamatovat pomocí vstupů h_{t-1} ax_t. Nakonec se hodnoty vektoru a regulované hodnoty vynásobí, aby byly odeslány jako výstup a vstup do další buňky. Rovnice pro výstupní bránu je:

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

Aplikace LSTM

Některé ze slavných aplikací LSTM zahrnují:

tisk výpisu v jazyce Java
  • Jazykové modelování: LSTM byly použity pro úlohy zpracování přirozeného jazyka, jako je jazykové modelování, strojový překlad a sumarizace textu. Lze je naučit generovat souvislé a gramaticky správné věty učením se závislostem mezi slovy ve větě.
  • Rozpoznávání řeči: LSTM byly použity pro úlohy rozpoznávání řeči, jako je přepis řeči na text a rozpoznávání mluvených příkazů. Lze je naučit rozpoznávat vzory v řeči a přiřazovat je k odpovídajícímu textu.
  • Předpověď časových řad: LSTM byly použity pro úlohy předpovídání časových řad, jako je předpovídání cen akcií, počasí a spotřeby energie. Mohou se naučit vzory v datech časových řad a použít je k předpovědi budoucích událostí.
  • Detekce anomálií: LSTM byly použity pro úkoly detekce anomálií, jako je detekce podvodů a narušení sítě. Mohou být vycvičeni k identifikaci vzorců v datech, které se odchylují od normy, a označit je jako potenciální anomálie.
  • Doporučující systémy: LSTM byly použity pro úkoly doporučení, jako je doporučování filmů, hudby a knih. Mohou se naučit vzorce chování uživatelů a používat je k vytváření personalizovaných doporučení.
  • Analýza videa: LSTM byly použity pro úlohy video analýzy, jako je detekce objektů, rozpoznávání aktivity a klasifikace akcí. Mohou být použity v kombinaci s jinými architekturami neuronových sítí, jako jsou konvoluční neuronové sítě (CNN), k analýze video dat a získávání užitečných informací.

LTSM vs RNN

Vlastnosti

LSTM (dlouhá krátkodobá paměť)

RNN (rekurentní neuronová síť)

Paměť

Má speciální paměťovou jednotku, která mu umožňuje učit se dlouhodobé závislosti v sekvenčních datech

Nemá paměťovou jednotku

Směrovost

Může být vycvičen ke zpracování sekvenčních dat v dopředném i zpětném směru

Lze natrénovat pouze pro zpracování sekvenčních dat v jednom směru

Výcvik

Náročnější na trénink než RNN kvůli složitosti hradel a paměťové jednotky

nedefinovaný sklon

Jednodušší trénink než LSTM

Dlouhodobé závislostní učení

Ano

Omezený

Schopnost učit se sekvenční data

Ano

Ano

Aplikace

Strojový překlad, rozpoznávání řeči, sumarizace textu, zpracování přirozeného jazyka, prognóza časových řad

Zpracování přirozeného jazyka, strojový překlad, rozpoznávání řeči, zpracování obrazu, zpracování videa

Problém s dlouhodobými závislostmi v RNN

Recurrent Neural Networks (RNN) jsou navrženy tak, aby zpracovávaly sekvenční data udržováním skrytého stavu, který zachycuje informace z předchozích časových kroků. Často však čelí problémům při učení dlouhodobých závislostí, kde se informace ze vzdálených časových kroků stávají zásadními pro vytváření přesných předpovědí. Tento problém je známý jako problém mizejícího gradientu nebo explodujícího gradientu.

Níže je uvedeno několik běžných problémů:

Mizící gradient

Během zpětného šíření v čase se gradienty mohou stát extrémně malými, protože se násobí v řetězci opakujících se spojení, což způsobuje, že model má potíže s učením závislostí, které jsou odděleny mnoha časovými kroky.

rozevírací seznam javascript

Explodující přechod

Naopak gradienty mohou během zpětného šíření explodovat, což vede k numerické nestabilitě a ztěžuje konvergování modelu.

Různé varianty dlouhodobé krátkodobé paměti

Postupem času bylo navrženo několik variant a vylepšení původní architektury LSTM.

Vanilkový LSTM

Toto je původní architektura LSTM navržená Hochreiterem a Schmidhuberem. Zahrnuje paměťové buňky se vstupní, zapomenutou a výstupní bránou pro řízení toku informací. Klíčovou myšlenkou je umožnit síti selektivně aktualizovat a zapomínat informace z paměťové buňky.

Připojení kukátka

V kukátku LSTM mohou brány kromě skrytého stavu sledovat i stav buňky. To umožňuje branám vzít v úvahu stav buňky při rozhodování a poskytnout více kontextových informací.

Gated Recurrent Unit (GRU)

GRU je alternativa k LSTM, navržená tak, aby byla jednodušší a výpočetně efektivnější. Kombinuje vstupní a zapomenutou bránu do jediné aktualizační brány a spojuje stav buňky a skrytý stav. Zatímco GRU mají méně parametrů než LSTM, v praxi se ukázalo, že fungují podobně.

Závěr

Long Short-Term Memory (LSTM) je výkonný typ rekurentní neuronové sítě (RNN), která se dobře hodí pro zpracování sekvenčních dat s dlouhodobými závislostmi. Řeší problém mizejícího gradientu, běžné omezení RNN, zavedením hradlového mechanismu, který řídí tok informací sítí. To umožňuje LSTM učit se a uchovávat si informace z minulosti, což je činí efektivními pro úkoly, jako je strojový překlad, rozpoznávání řeči a zpracování přirozeného jazyka.

Zkontrolujte také:

Často kladené otázky (FAQ)

1. Co je LSTM a proč se používá?

LSTM neboli Long Short-Term Memory je typ rekurentní neuronové sítě navržený pro sekvenční úlohy, vynikající v zachycení a využití dlouhodobých závislostí v datech.

2. Jak funguje LSTM?

LSTM používají stav buňky k ukládání informací o minulých vstupech. Tento stav buňky se aktualizuje v každém kroku sítě a síť jej používá k předpovědi aktuálního vstupu. Stav buňky se aktualizuje pomocí řady bran, které řídí, kolik informací může proudit do buňky a z buňky.

3. Jaké jsou příklady LSTM?

Příklady LSTM (Long Short-Term Memory) zahrnují rozpoznávání řeči, strojový překlad a predikci časových řad, využívající jeho schopnost zachytit dlouhodobé závislosti v sekvenčních datech.

4. Jaký je rozdíl mezi LSTM a Gated Recurrent Unit (GRU)?

LSTM má mechanismus stavu buňky a hradlování, který řídí tok informací, zatímco GRU má jednodušší mechanismus aktualizace s jedním hradlem. LSTM je výkonnější, ale pomalejší na trénink, zatímco GRU je jednodušší a rychlejší.

5. Jaký je rozdíl mezi LSTM a RNN?

  • RNN mají jednoduchou opakující se strukturu s jednosměrným tokem informací.
  • LSTM mají hradlový mechanismus, který řídí tok informací a stav buňky pro dlouhodobou paměť.
  • LSTM obecně překonávají RNN v úkolech, které vyžadují učení se dlouhodobým závislostem.

6. Je LSTM rychlejší než CNN?

Ne, LSTM a CNN slouží různým účelům. LSTM jsou pro sekvenční data; CNN jsou pro prostorová data.

7. Je LSTM rychlejší než GRU?

Obecně ano. GRU mají méně parametrů, což může vést k rychlejšímu tréninku ve srovnání s LSTM.