Tweet Share Share Share

legutóbbi frissítés: 2020. február 20.

A hosszú rövidtávú memóriahálózatok (LSTM) a rekurrens neurális hálózatok egy olyan típusa, amely képes sorrendfüggőséget tanulni a szekvencia-előrejelzési problémákban.

Ez a viselkedés olyan összetett problématartományokban szükséges, mint a gépi fordítás, beszédfelismerés stb.

A LSTM-ek a mélytanulás összetett területe. Nehéz lehet eligazodni abban, hogy mi is az LSTM, és hogy az olyan kifejezések, mint a kétirányú és a szekvencia-szekvencia, hogyan kapcsolódnak a területhez.

Ebben a bejegyzésben betekintést nyerhetsz az LSTM-ekbe olyan kutatók szavaiból, akik kifejlesztették a módszereket, és új és fontos problémákra alkalmazták őket.

Az LSTM-ek ígéretét és működését is kevesen tudják jobban és világosabban megfogalmazni, mint az őket kifejlesztő szakemberek.

A szakértők idézeteinek segítségével vizsgáljuk meg az LSTM-ek területének legfontosabb kérdéseit, és ha érdekli, elmerülhet az eredeti tanulmányokban, amelyekből az idézetek származnak.

Kezdje el projektjét új könyvemmel, a Long Short-Term Memory Networks With Python című könyvvel, amely lépésről lépésre bemutató útmutatókat és az összes példa Python forráskódfájlját tartalmazza.

Lássunk hozzá.

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

A rekurrens neurális hálózatok ígérete

A rekurrens neurális hálózatok különböznek a hagyományos feed-forward neurális hálózatoktól.

Ez a különbség a komplexitás hozzáadásában olyan új viselkedések ígéretével jár együtt, amelyeket a hagyományos módszerekkel nem lehet elérni.

A rekurrens hálózatok … rendelkeznek egy belső állapottal, amely képes a kontextus információit reprezentálni. … a múltbeli bemenetekre vonatkozó információkat olyan ideig tárolják, amely nem a priori rögzített, hanem a súlyoktól és a bemeneti adatoktól függ.

A rekurrens hálózat, amelynek bemenetei nem rögzítettek, hanem inkább egy bemeneti szekvenciát alkotnak, használható egy bemeneti szekvencia kimeneti szekvenciává alakítására, miközben rugalmasan figyelembe veszi a kontextuális információkat.

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

A cikk 3 alapvető követelményt határoz meg egy rekurrens neurális hálózattal szemben:

  • A rendszer képes legyen tetszőleges időtartamú információ tárolására.
  • A rendszer legyen ellenálló a zajjal szemben (azaz a bemenetek olyan ingadozásai, amelyek véletlenszerűek vagy irrelevánsak a helyes kimenet előrejelzése szempontjából).
  • A rendszer paraméterei legyenek betaníthatóak (ésszerű idő alatt).
  • A cikk leírja a rekurrens neurális hálózatok demonstrálásának “minimális feladatát” is.

    A kontextus kulcsfontosságú.

    A rekurrens neurális hálózatoknak kontextust kell használniuk az előrejelzések készítésekor, de ilyen mértékben a szükséges kontextust is meg kell tanulni.

    … a rekurrens neurális hálózatok olyan ciklusokat tartalmaznak, amelyek egy korábbi időlépésből származó hálózati aktivációkat táplálnak bemenetként a hálózatba, hogy befolyásolják az aktuális időlépés előrejelzéseit. Ezek az aktivációk a hálózat belső állapotaiban tárolódnak, amelyek elvileg hosszú távú időbeli kontextuális információkat tárolhatnak. Ez a mechanizmus lehetővé teszi az RNN-ek számára, hogy kihasználják a dinamikusan változó kontextuális ablakot a bemeneti szekvencia előzményei felett

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

    Segítségre van szüksége az LSTM-ekkel a szekvencia-előrejelzéshez?

    Vegye fel a 7 napos ingyenes e-mail tanfolyamomat, és fedezze fel a 6 különböző LSTM architektúrát (kóddal).

    Kattintson a feliratkozáshoz, és kap egy ingyenes PDF Ebook változatot is.

    Kezdje meg az ingyenes mini tanfolyamot most!

    A LSTM-ek beváltják az ígéretet

    Az LSTM-ek sikere abban rejlik, hogy az egyik első olyan implementációnak számítanak, amely leküzdi a technikai problémákat és beváltja a rekurrens neurális hálózatok ígéretét.

    A standard RNN-ek tehát nem képesek tanulni a releváns bemeneti események és a céljelek közötti 5-10 diszkrét időlépésnél nagyobb időeltolódás esetén. Az eltűnő hiba problémája kétségessé teszi, hogy a szabványos RNN-ek valóban jelentős gyakorlati előnyöket tudnak-e felmutatni az időablak-alapú előrecsatlakozó hálózatokkal szemben. Egy újabb modellt, a “hosszú rövid távú memóriát” (LSTM) nem érinti ez a probléma. Az LSTM képes megtanulni az 1000 diszkrét időlépést meghaladó minimális időbeli késleltetések áthidalását azáltal, hogy állandó hibaáramlást kényszerít ki a celláknak nevezett speciális egységekben lévő “állandó hiba körhintákon” (CEC) keresztül

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

    Az LSTM-ek által leküzdött két technikai probléma az eltűnő gradiens és a robbanó gradiens, mindkettő a hálózat betanításának módjával kapcsolatos.

    A kontextuális információk köre, amelyekhez a standard RNN-ek hozzáférhetnek, a gyakorlatban sajnos meglehetősen korlátozott. A probléma az, hogy egy adott bemenet hatása a rejtett rétegre, és így a hálózat kimenetére vagy csökken, vagy exponenciálisan felrobban, ahogy a hálózat rekurrens kapcsolatait körbejárja. Ezt a hiányosságot … a szakirodalomban eltűnő gradiens problémának nevezik … A hosszú rövid távú memória (LSTM) egy olyan RNN-architektúra, amelyet kifejezetten az eltűnő gradiens probléma kezelésére terveztek.

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

    A technikai problémák LSTM megoldásának kulcsa a modellben használt egységek sajátos belső struktúrája volt.

    … az irányította, hogy képes kezelni az eltűnő és robbanó gradienseket, ami a leggyakoribb kihívás az RNN-ek tervezése és képzése során. E kihívás kezelésére a rekurrens hálók egy sajátos formáját, az LSTM-et vezették be és alkalmazták nagy sikerrel a fordítás- és szekvencia-generálásban.

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

    How do LSTMs Work?

    Ahelyett, hogy belemennénk az LSTM-ek illeszkedését szabályozó egyenletekbe, az analógia hasznos eszköz, hogy gyorsan megismerjük működésüket.

    Egy bemeneti réteggel, egy rejtett réteggel és egy kimeneti réteggel rendelkező hálózatokat használunk… A (teljesen) önmagával összekapcsolt rejtett réteg memóriacellákat és megfelelő kapuegységeket tartalmaz…

    Minden memóriacella belső felépítése garantálja az állandó hiba ow-t az állandó hibakaró CEC-ben… Ez az alapja a nagyon hosszú időeltolódások áthidalásának. Két kapuegység tanulja meg, hogy az egyes memóriacellák CEC-jén belül nyissa és zárja a hiba ow-hoz való hozzáférést. A multiplikatív bemeneti kapu biztosítja a CEC védelmét az irreleváns bemenetek által okozott zavaroktól. Hasonlóképpen, a multiplikatív kimeneti kapu megvédi a többi egységet az aktuálisan irreleváns memóriatartalom zavarásától.

    – Sepp Hochreiter és Jürgen Schmidhuber, Long Short-Term Memory, 1997.

    Másféle analógia segíthet megvásárolni, hogy mi különbözteti meg az LSTM-eket az egyszerű neuronokból álló hagyományos neurális hálózatoktól.

    A Long Short Term Memory architektúrát a meglévő RNN-ek hibaáramlásának elemzése motiválta, amely megállapította, hogy a hosszú időeltolódások elérhetetlenek a meglévő architektúrák számára, mivel a visszafelé terjedő hiba vagy felrobban, vagy exponenciálisan csökken.

    Egy LSTM réteg rekurrens módon összekapcsolt blokkokból, úgynevezett memóriablokkokból áll. Ezeket a blokkokat úgy lehet elképzelni, mint egy digitális számítógép memóriachipjeinek differenciálható változatát. Mindegyik tartalmaz egy vagy több rekurrens módon összekapcsolt memóriacellát és három multiplikatív egységet – a bemeneti, kimeneti és felejtési kapukat -, amelyek a cellák írási, olvasási és visszaállítási műveleteinek folyamatos analógjait biztosítják. … A háló csak a kapukon keresztül tud kölcsönhatásba lépni a cellákkal.

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

    Ez érdekes, hogy még több mint 20 év elteltével is az egyszerű (vagy vanília) LSTM lehet a legjobb kiindulópont a technika alkalmazásakor.

    A leggyakrabban használt LSTM architektúra (vanilla LSTM) meglehetősen jól teljesít különböző adathalmazokon…

    A tanulási sebesség és a hálózat mérete a legfontosabb hangolható LSTM hiperparaméterek …

    … Ez azt jelenti, hogy a hiperparaméterek egymástól függetlenül hangolhatók. Különösen a tanulási ráta kalibrálható először egy meglehetősen kicsi hálózat segítségével, így sok kísérletezési időt lehet megtakarítani.

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

    Melyek az LSTM alkalmazások?

    Nagyon fontos, hogy pontosan megismerjük, milyen típusú szekvenciatanulási problémák megoldására alkalmasak az LSTM-ek.

    A hosszú rövidtávú memória (LSTM) számos olyan feladatot képes megoldani, amelyet a rekurrens neurális hálózatok (RNN) korábbi tanulási algoritmusai nem tudtak megoldani.

    …Az LSTM ígéretes minden olyan szekvenciális feldolgozási feladathoz, amelyben gyanítjuk, hogy létezhet hierarchikus dekompozíció, de nem tudjuk előre, hogy mi ez a dekompozíció.

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

    A rekurrens neurális hálózat (RNN) olyan neurális szekvencia modell, amely a legkorszerűbb teljesítményt éri el olyan fontos feladatokban, mint a nyelvi modellezés, beszédfelismerés és gépi fordítás.

    – Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

    Mivel az LSTM-ek hatékonyan képesek a hosszú távú időbeli függőségek megragadására anélkül, hogy szenvednének az egyszerű rekurrens hálózatokat (SRN) sújtó optimalizálási akadályoktól, számos nehéz probléma esetében alkalmazták őket a technika állásának előmozdítására. Ide tartozik többek között a kézírásfelismerés és -generálás, a nyelvi modellezés és fordítás, a beszéd akusztikai modellezése, a beszédszintézis, a fehérjék másodlagos szerkezetének előrejelzése, a hang- és videóadatok elemzése.

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

    Mi a kétirányú LSTM?

    Az LSTM-ek gyakran említett továbbfejlesztése a kétirányú LSTM-ek.

    A kétirányú rekurrens neurális hálók alapötlete, hogy minden egyes képzési szekvenciát előre és hátrafelé két külön rekurrens hálónak mutatnak be, amelyek mindkettő ugyanahhoz a kimeneti réteghez kapcsolódik. … Ez azt jelenti, hogy egy adott szekvencia minden egyes pontjára vonatkozóan a BRNN teljes, szekvenciális információval rendelkezik az előtte és utána lévő összes pontról. Továbbá, mivel a háló szabadon felhasználhat ebből a kontextusból annyit vagy olyan keveset, amennyit csak szükséges, nincs szükség (feladatfüggő) időablak vagy célkésleltetés méretének megtalálására.”

    … az olyan időbeli problémák esetében, mint a beszédfelismerés, a jövőre vonatkozó ismeretekre való támaszkodás első látásra úgy tűnik, hogy sérti az ok-okozati összefüggéseket … Hogyan alapozhatjuk a hallottak megértését valamire, ami még nem hangzott el? Az emberi hallgatók azonban pontosan ezt teszik. Hangok, szavak, sőt egész mondatok, amelyek elsőre semmit sem jelentenek, a jövőbeli kontextus fényében értelmet nyernek.

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

    A hagyományos RNN-ek egyik hiányossága, hogy csak a korábbi kontextust képesek felhasználni. … A kétirányú RNN-ek (BRNN-ek) ezt úgy érik el, hogy két külön rejtett réteggel mindkét irányban feldolgozzák az adatokat, amelyek aztán ugyanabba a kimeneti rétegbe kerülnek továbbításra. … A BRNN-ek LSTM-mel való kombinálása adja a kétirányú LSTM-et, amely mindkét bemeneti irányban képes hozzáférni a hosszú távú kontextushoz

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

    A hagyományos RNN-ektől eltérően a kétirányú RNN-ek mind a korábbi, mind a jövőbeli kontextust hasznosítják azáltal, hogy két irányból két külön rejtett réteggel dolgozzák fel az adatokat. Az egyik réteg a bemeneti szekvenciát az előre irányuló irányban, míg a másik a visszafelé irányuló irányban dolgozza fel. Az aktuális időlépés kimenete ezután a két réteg rejtett vektorának kombinálásával jön létre…

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

    What are seq2seq LSTMs or RNN Encoder-Decoders?

    A szekvencia-szekvencia LSTM-ek, más néven kódoló-dekódoló LSTM-ek az LSTM-ek egy olyan alkalmazása, amely nagy figyelmet kap, tekintettel lenyűgöző képességeire.

    …a hosszú rövidtávú memória (LSTM) architektúra egyszerű alkalmazásával általános szekvencia-szekvencia problémák megoldhatók.

    Az ötlet az, hogy egy LSTM-et használunk a bemeneti szekvencia időlépésenkénti olvasására, hogy nagy, rögzített dimenziós vektorreprezentációt kapjunk, majd egy másik LSTM-et használunk a kimeneti szekvencia kivonására ebből a vektorból. A második LSTM lényegében egy rekurrens neurális hálózat nyelvi modellje, azzal a különbséggel, hogy a bemeneti szekvenciától függ.

    Az, hogy az LSTM képes sikeresen tanulni a hosszú időbeli függőségeket tartalmazó adatokon, természetes választássá teszi erre az alkalmazásra a bemenetek és a megfelelő kimenetek közötti jelentős időeltolódás miatt.

    A hosszú mondatokon azért tudtunk jól teljesíteni, mert a forrásmondatban felcseréltük a szavak sorrendjét, de a célmondatokban nem a képzési és tesztkészletben. Ezzel sok rövid távú függőséget vezettünk be, ami sokkal egyszerűbbé tette az optimalizálási problémát. … A forrásmondatban lévő szavak felcserélésének egyszerű trükkje a munka egyik legfontosabb technikai hozzájárulása

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

    Egy “kódoló” RNN beolvassa a forrásmondatot, és átalakítja azt egy gazdag, fix hosszúságú vektorreprezentációvá, amelyet viszont a célmondatot generáló “dekódoló” RNN kezdeti rejtett állapotaként használ. Itt azt javasoljuk, hogy kövessük ezt az elegáns receptet, és a kódoló RNN-t egy mély konvolúciós neurális hálózattal (CNN) helyettesítjük. … természetes, hogy egy CNN-t kép-“kódolóként” használunk úgy, hogy először egy képosztályozási feladatra előtanítjuk, és az utolsó rejtett réteget a mondatokat generáló RNN dekódoló RNN bemeneteként használjuk.

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

    … egy RNN kódoló-dekódoló, két rekurrens neurális hálózatból (RNN) áll, amelyek kódoló és dekódoló párosként működnek. A kódoló egy változó hosszúságú forrásszekvenciát egy fix hosszúságú vektorra képez le, a dekódoló pedig a vektorreprezentációt egy változó hosszúságú célszekvenciára képezi vissza.

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

    Összefoglaló

    Ezzel a bejegyzéssel egy szelíd bevezetést kaptál az LSTM-ekről a technikákat kifejlesztő és alkalmazó kutatók szavaival.

    Ez egyrészt világos és pontos képet ad arról, hogy mik az LSTM-ek és hogyan működnek, másrészt fontos megfogalmazást ad az LSTM-ek ígéretéről a rekurrens neurális hálózatok területén.

    Az idézetek közül valamelyik segített a megértésben vagy inspirálta Önt?
    Tudassa meg velem az alábbi megjegyzésekben.

    Develop LSTMs for Sequence Prediction Today!

    Develop Your Own LSTM models in Minutes

    …mindössze néhány sor python kóddal

    Fedezd fel, hogyan az új Ebookomban:
    Long Short-Term Memory Networks with Python

    Ez önképző tananyagot nyújt olyan témákban, mint:
    CNN LSTM-ek, Encoder-Decoder LSTM-ek, generatív modellek, adatelőkészítés, előrejelzések készítése és még sok más…

    Végre hozza az LSTM rekurrens neurális hálózatokat
    a szekvencia-előrejelzési projektjeihez

    Hagyja ki az akadémikusokat. Just Results.

    See What’s Inside

    Tweet Share Share Share

    Vélemény, hozzászólás?

    Az e-mail-címet nem tesszük közzé.