Jaký je rozdíl mezi dopřednou neuronovou sítí a LSTM ? Jak se liší svou architekturou?

Odpověď

Dopředná neuronová síť vypadá takto:

vstup -> skrytá vrstva 1 -> skrytá vrstva 2 -> … -> skrytá vrstva k -> výstup.

Každá vrstva může mít jiný počet neuronů, ale to je architektura .

LSTM (buňka s dlouhodobou krátkodobou pamětí) je speciální druh uzlu v neurální síti. Může být vložen do dopředné neurální sítě a obvykle je . Když k tomu dojde, dopředná neuronová síť se označuje jako LSTM (matoucí!).

Jak tedy funguje LSTM? Podívejte se na mou odpověď zde: Zapomeňte na vrstvu v rekurentní neuronové síti (RNN) –

tl; dr: buňka LSTM má tři brány, z nichž každá se nějakým způsobem používá k modulaci jejího vstupu: vstupní brána, zapomenutá brána a výstupní brána. Má „paměť“ a výstup, který se upravuje branami. To znamená v rámci jedné buňky LSTM:

(vstup předchozí stav buňky) -> (vstup & zapomenout brány) -> (aktualizovat stav buňky)

(vstup & předchozí stav buňky & aktualizovaný stav buňky) -> (výstupní brána)

Tyto buňky můžete skládat do mnoha různých konfigurací. Neexistuje tedy žádná „síť LSTM“ – spíše sada mnoha možných architektur, které lze z těchto základních uzlů vytvořit.

Doufám, že vás to naštartuje!

Komentáře

  • Mnohokrát děkuji za vaši odpověď, ale můžete přidat nějaké obrázky, které mi pomohou lépe porozumět architektuře?
  • Co se týče zpětného šíření v síti dopředného přenosu feed forward network
  • Ahoj @codezcar, v mé odpovědi jsou obrázky LSTM, které jsem propojil. Pro dopřednou neuronovou síť je zde obrázek: medium.com/random-techpark/… Ano, vy může použít backpropagation k nalezení optimální váhy v jakémkoli typu neuronové sítě (feed forward, LSTM, GRU, … vůbec nic!).

Odpověď

Jak uvedl Philipp, sítě se smyčkami zpětné vazby pomáhají modelovat čas v datech.

Chcete se podívat na přehled různých architektur NN: https://i.stack.imgur.com/LgmYv.png

Odpověď

Sítě zpětného přenosu jsou sítě, kde je každý uzel propojen pouze s uzly z následující vrstvy. Nemají „kruhové“ připojení. Data mohou cestovat pouze ze vstupu na výstup bez smyček. Příkladem může být Simple Layer Perceptron nebo Multilayer Perceptrion. Konvoluční neuronové sítě jsou také čistě dopředné sítě

Na rozdíl od což jsou rekurentní neuronové sítě. LSTM je jednou z nich. Tyto RNN lze také připojit „do strany“. To znamená, že vaše data mohou cestovat nejen vpřed do další vrstvy, ale také do dalších uzlů ve stejné vrstvě nebo zpět. Z architektury stanovisko, které znamená, že i když máte síť s možná pouze jednou skrytou vrstvou, získáte „hloubku“ přidáním smyček k uzlům v této vrstvě. Obvykle to představuje „čas“ v datech.

Tento obrázek ukazuje co mám na mysli pod pojmem „hloubka“ prostřednictvím smyček zpětné vazby: https://en.wikipedia.org/wiki/Recurrent_neural_network#/media/File:Recurrent_neural_network_unfold.svg

Ačkoli je to technicky jeden uzel v architektuře vrstev, čím hlouběji a hlouběji přidáte více smyček

Odpovědět

Chci diskutovat o nějaké intuici na vysoké úrovni za sítěmi LSTM. Tady je několik otázek, které vám pomohou prozkoumat aspekty proč :

  • Proč / kdy bychom použili LSTM přes neuronovou síť s předáváním dopředu (FFNN)?
  • Jaké jsou klady a zápory LSTM a jak se porovnávají s FFNN?
  • Jak se liší od tradičních rekurentních neuronových sítí (RNN)?

Feed Forward Neural Networks (FFNN)

Nejprve zvažte standardní FFNN s architekturou: Směrem k Data Science Image: * Ruční počítání parametrů v modelech hlubokého učení *

Jak asi víte, tato FFNN má tři vstupy, zpracovává je pomocí skryté vrstvy a vytváří dva výstupy. Tuto architekturu můžeme rozšířit tak, aby zahrnovala více skrytých vrstev, ale základní koncept stále platí: vstupy přicházejí, jsou zpracovávány v jednom směru a na konci jsou vydávány.

Tento koncept je velmi dobře vysvětlen jinými články, takže se nebudu podrobněji zabývat.Klíčové řešení je:

Primární podmínkou, která odděluje FFNN od opakujících se architektur, je to, že vstupy do neuronu musí pocházet z vrstvy před tímto neuronem.

FFNN Wikipedia

Rekurentní neuronové sítě (RNN)

Rekurentní neuronové sítě jsou matematicky docela podobné modelům FFNN. Jejich hlavní rozdíl spočívá v tom, že omezení na FFNN již není použito:

Vstupy do neuronu mohou pocházet z jakékoli jiné vrstvy.

Průzkum o aplikaci opakujících se neuronových sítí na statistické modelování jazyků

Často uvidíte, že tato architektura je často „vrácena“ do opakující se jednotky, například následující:

Střední článek: Vše, co potřebujete vědět o rekurentních neuronových sítích

Proto mohou být „válcované“ jednotky, které můžete vidět v diagramech architektury klamně malá. Když je rozbalíte, síť bude často docela hluboká!

RNN Wikipedia

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

LSTM jsou speciální typ RNN, které jsou určeny k řešení problému s mizejícím / explodujícím přechodem.

Když trénujete tradiční RNN, síť často trpí mizejícími / explodujícími přechody: rozvinutí opakující se jednotky má za následek velmi hlubokou síť! Pokud projdete algoritmem zpětného šíření pomocí tradičních architektur RNN, dřívější vrstvy budou s šířením sítí stále méně a méně významné. Díky tomu jsou tradiční RNN náchylné k zapomínání informací, zejména dat, která se objeví mnoho časových kroků před aktuálním časem.

Příklad buňky LSTM je ilustrován jako takový:

LSTM buněčná architektura

Tato struktura je podobná tradiční rozvinuté jednotce RNN, ale klíčový rozdíl oproti LSTM jsou brány: vstupní brána, výstupní brána a brána zapomenout. Funkce těchto bran jsou dobře popsány jejich názvy:

  • vstupní brána řídí data, která vstupují do buňky
  • brána pro zapomenutí řídí, do jaké míry zůstávají data v buňce
  • výstupní brána řídí výstup buňky prostřednictvím aktivační funkce

Tento příspěvek IO github je skvělým úvodem do základů LSTM. Také skvěle vysvětluje intuici matematiky LSTM.

LSTM Wikipedia

Vlastnosti a příklad použití RNN

Zpětnovazební smyčky propůjčují rekurentní neuronové sítě lépe časovým výzvám. Do jejich architektury je zapracován čas!

Prozkoumejme příklad:

Možná používáte síť k předpovídání dalšího slova ve větě. Řekněme, že máte zadané vstupy:

Hladoví, Alice jede do nejbližšího obchodu a nakoupí [předpověď]

Rekurentní neurální síť může zapomenout na první slovo „hladovějící“, zatímco LSTM by to v ideálním případě šířil. LSTM by proto použil kontext, který předtím slyšel ve větě, k uhodnutí „jídla“, zatímco RNN by mohl uhodnout cokoli, co je zakoupeno v obchodě, zejména vzhledem k dlouhé větě nebo více větám.

Vratové mechanismy které umožňují tento typ paměti, dobře vysvětluje @StatsSorceress zde: Zapomeňte na vrstvu v opakující se neurální síti (RNN) –

RNN jsou navrženy pro zpracování sekvencí. To lze použít k analýze videa (sekvence obrázků), psaní / řeči (sekvence slov) atd.

LSTM jsou navrženy tak, aby důležité informace přetrvávaly v čase. RNN často časem „zapomenou“.

FFNN jsou systémy bez paměti; po zpracování nějakého vstupu zapomenou na tento vstup. Řekněme například, že trénujeme FFNN, který jako vstupy přijímá 5 slov a předpovídá další výstup. Tento model by poté obdržel vstup z výše uvedeného příkladu:

nejbližší obchod, který chcete koupit [předpověď] .

To zjevně ztrácí kontext a my by dosáhlo špatného výsledku.

Nyní se můžete zeptat, co kdybychom vytvořili FFNN, která by brala mnoho vstupů tak, aby obsahovala slovo „hladovějící“? Jinými slovy, nemohli bychom zvýšit počet vstupů na FFNN, abychom dostatečně reprezentovali předchozí data?

Odpověď je ano, ale tato metoda je neúčinná a často nepraktická. Řekněme například, že si musíme pamatovat kontext celého odstavce zpět. Potřebovali bychom velmi velkou FFNN! Kromě toho, jak víme, kolik slov zpět chceme jako kontext? Stačilo by 20? 30? 100? Architektura LSTM tyto problémy zcela eliminuje tím, že umožňuje síti spravovat přechodnou paměť. Tento problém se zhoršuje výzvami zpracování videa, protože každý snímek bude vyžadovat podstatně více vstupů než úkoly NLP.

Upozorňujeme však, že jednotky LSTM jsou ze své podstaty výpočetně složitější než jednotky FFNN, takže jejich trénink je často obtížnější a vyžaduje více času. Navzdory těmto nevýhodám jejich úspěch v časových výzvách dat jasně zaručuje jejich použití nad FFNN.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *