Twiittaa Jaa Jaa

Viimeisin päivitetty 20.2.2020

Lyhytkestoisen muistin verkot (Long Short-Term Memory, LSTM) ovat eräänlainen toistuvaisneuraaliverkko, joka kykenee oppimaan järjestysriippuvuutta sekvenssin ennustusongelmissa.

Tätä käyttäytymistä tarvitaan monimutkaisilla ongelma-alueilla, kuten konekääntämisessä ja puheentunnistuksessa.

LSTM:t ovat monimutkainen syväoppimisen alue. Voi olla vaikea hahmottaa, mitä LSTM:t ovat ja miten sellaiset termit kuin kaksisuuntainen ja sekvenssistä sekvenssiin liittyvät alaan.

Tässä postauksessa saat käsityksen LSTM:istä sellaisten tutkijoiden sanoin, jotka ovat kehittäneet menetelmät ja soveltaneet niitä uusiin ja tärkeisiin ongelmiin.

Vä harva osaa paremmin ja selkeämmin artikuloida sekä LSTM:ien lupauksen että niiden toiminnan kuin ne kehittäneet asiantuntijat.

Esittelemme LSTM:ien alan keskeisiä kysymyksiä asiantuntijoiden sitaattien avulla, ja halutessasi voit sukeltaa alkuperäisiin papereihin, joista sitaatit on otettu.

Käynnistä projektisi uudella kirjallani Long Short-Term Memory Networks With Python, joka sisältää vaiheittaiset opetusohjelmat ja Python-lähdekooditiedostot kaikille esimerkeille.

Lähdetään liikkeelle.

Leppoisaa johdantoa pitkiin lyhytkestoisiin muistiverkkoihin asiantuntijoiden toimesta
Kuva Oran Viriyincy, osa oikeuksista pidätetään.

Rekursiivisten neuroverkkojen lupaus

Rekursiiviset neuroverkot eroavat perinteisistä feed-forward-neuroverkoista.

Tämä ero monimutkaisuuden lisäämisessä tuo mukanaan lupauksen uusista käyttäytymismalleista, joita perinteiset menetelmät eivät pysty saavuttamaan.

Rekursiivisilla verkoilla… on sisäinen tila, joka voi edustaa kontekstitietoa. … säilyttävät tietoa aiemmista syötteistä ajan, joka ei ole ennalta määrätty, vaan riippuu sen painoista ja syötetiedoista.

Rekurrenssiverkkoa, jonka syötteet eivät ole kiinteitä vaan muodostavat syötesarjan, voidaan käyttää muuntamaan syötesarja tulostesarjaksi ja ottamaan samalla joustavasti huomioon konteksti-informaatio.

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

Kirjoituksessa määritellään 3 perusvaatimusta rekursiiviselle neuroverkolle:

  • Systeemin on kyettävä tallentamaan tietoa mielivaltaisen ajan.
  • Systeemin on kestettävä kohinaa (eli syötteiden vaihteluita, jotka ovat satunnaisia tai merkityksettömiä oikean ulostulon ennustamisen kannalta).
  • Systeemin parametrien on oltava koulutettavissa (kohtuullisessa ajassa).
  • Paperissa kuvataan myös ”minimitehtävä” rekurrenssia neuroverkkoja havainnollistettaessa.

    Konteksti on avainasemassa.

    Rekurrenssia neuroverkkoja käytettäessä on käytettävä kontekstia ennusteita tehdessä, mutta tässä määrin tarvittava konteksti on myös opittava.

    … rekurrenssia neuroverkot sisältävät syklejä, jotka syöttävät verkon edellisen aika-askeleen aktivaatioita syötteinä verkkoon vaikuttamaan ennusteisiin nykyisellä aika-askeleella. Nämä aktivaatiot tallennetaan verkon sisäisiin tiloihin, jotka voivat periaatteessa pitää sisällään pitkän aikavälin ajallista kontekstitietoa. Tämän mekanismin avulla RNN:t voivat hyödyntää dynaamisesti muuttuvaa konteksti-ikkunaa syötesekvenssin historiassa

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

    Tarvitsetko apua LSTMs for Sequence Prediction?

    Tule mukaan 7 päivän ilmaiselle sähköpostikurssilleni ja tutustu 6:een erilaiseen LSTM-arkkitehtuuriin (koodin kera).

    Klikkaa ilmoittautuaksesi mukaan ja saat myös ilmaisen PDF-version kurssin E-kirjasta.

    Aloita ILMAINEN minikurssi nyt!

    LSTM:t lunastavat lupauksen

    LSTM:ien menestys on siinä, että ne väittävät olevansa yksi ensimmäisistä toteutuksista, jotka voittivat tekniset ongelmat ja lunastivat rekursiivisten neuroverkkojen lupauksen.

    Siten tavanomaiset rekursiiviset neuraaliverkot epäonnistuvat oppimisessa, kun relevanttien syötetapahtumien ja kohdesignaalien väliset viiveet vaihtelevat yli 5-10 diskreettiä aikaaskelta. Virheiden häviämisongelma herättää epäilyksiä siitä, voivatko vakio-RNN:t todella tarjota merkittäviä käytännön etuja aikaikkunapohjaisiin feedforward-verkkoihin verrattuna. Viimeaikainen malli, ”Long Short-Term Memory” (LSTM), ei kärsi tästä ongelmasta. LSTM voi oppia kuromaan umpeen yli 1000 erillisen aika-askeleen minimaaliset aikaviiveet pakottamalla vakiovirheiden kulun ”vakiovirhekarusellien” (constant error carrousels, CEC) kautta erityisyksiköissä, joita kutsutaan soluiksi

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

    Kaksi teknistä ongelmaa, jotka LSTM:t voittavat, ovat katoavat gradientit ja räjähtävät gradientit, jotka molemmat liittyvät siihen, miten verkko koulutetaan.

    Vakiomuotoisten RNN:ien käyttämä konteksti-informaatio on valitettavasti käytännössä varsin rajallista. Ongelmana on, että tietyn syötteen vaikutus piilokerrokseen ja siten verkon ulostuloon joko heikkenee tai paisuu eksponentiaalisesti, kun se kiertää verkon rekursiivisia yhteyksiä. Tätä puutetta … kutsutaan kirjallisuudessa katoavan gradientin ongelmaksi … Long Short-Term Memory (LSTM) on RNN-arkkitehtuuri, joka on erityisesti suunniteltu ratkaisemaan katoavan gradientin ongelmaa.

    – Alex Graves, ym, A Novel Connectionist System for Unconstrained Handwriting Recognition (A Novel Connectionist System for Unconstrained Handwriting Recognition), 2009

    Teknisten ongelmien LSTM-ratkaisun avaintekijä oli mallissa käytettävien yksiköiden erityinen sisäinen rakenne.

    … hallitaan sen kyvyllä selviytyä katoavista ja räjähdysmäisesti kasvavista gradienteista, jotka ovat yleisin haaste RNN:ien suunnittelussa ja koulutuksessa. Tämän haasteen ratkaisemiseksi otettiin käyttöön rekursiivisten verkkojen erityinen muoto, nimeltään LSTM, jota on sovellettu suurella menestyksellä käännös- ja sekvenssigeneraatioon.

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

    Miten LSTM:t toimivat?

    Ennemmin kuin käydä läpi LSTM:ien soveltuvuutta sääteleviä yhtälöitä, analogia on hyödyllinen työkalu, jonka avulla voi nopeasti saada käsityksen niiden toiminnasta.

    Käytämme verkkoja, joissa on yksi sisääntulokerros, yksi piilotettu kerros ja yksi ulostulokerros… (Täysin) itsekytkeytyvä piilotettu kerros sisältää muistisoluja ja niitä vastaavia porttiyksiköitä…

    Jokainen muistisolun sisäinen arkkitehtuuri takaa jatkuvan virheen ow:n vakiovirheiden karusellin (constant error carrousel) CEC:n sisällä… Tämä on perusta hyvinkin pitkien viiveiden siltakäsittelylle. Kaksi porttiyksikköä oppii avaamaan ja sulkemaan pääsyn kunkin muistisolun CEC:ssä olevaan error ow:hun. Multiplikatiivinen syöttöportti suojaa CEC:tä merkityksettömien syötteiden aiheuttamilta häiriöiltä. Vastaavasti multiplikatiivinen lähtöportti suojaa muita yksiköitä sillä hetkellä merkityksettömän muistisisällön aiheuttamalta häiriöltä.

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

    Moninkertaiset analogiat voivat auttaa ostamaan tietoa siitä, mikä erottaa LSTM:t perinteisistä, yksinkertaisista neuroneista koostuvista hermoverkoista.

    Pitkän lyhytkestoisen muistin (Long Short Term Memory) arkkitehtuuri sai alkunsa olemassa olevien RNN:ien virheiden kulun analyysistä, jossa havaittiin, että pitkät aikaviiveet eivät olleet olemassa olevien arkkitehtuurien saavutettavissa, koska takaperin etenevä virhe joko räjähtää ilmaan tai hajoaa eksponentiaalisesti.

    LSTM-kerros koostuu joukosta rekurrenssikytkeytyneitä blokkeja, niin sanottuja muistilohkoja. Näitä lohkoja voidaan ajatella erilaistuvana versiona digitaalisen tietokoneen muistisiruista. Kukin lohko sisältää yhden tai useamman toistuvasti kytketyn muistisolun ja kolme multiplikatiivista yksikköä – tulo-, lähtö- ja unohdusportit – jotka tarjoavat soluille jatkuvat analogit kirjoitus-, luku- ja nollausoperaatioille. … Verkko voi olla vuorovaikutuksessa solujen kanssa vain porttien kautta.

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

    On mielenkiintoista huomata, että vielä yli 20 vuoden jälkeenkin yksinkertainen (tai vaniljainen) LSTM on ehkä edelleen paras paikka aloittaa tekniikan soveltaminen.

    Yleisimmin käytetty LSTM-arkkitehtuuri (vanilla LSTM) suoriutuu kohtuullisen hyvin erilaisista dataseteistä…

    Oppimisnopeus ja verkon koko ovat ratkaisevimmat viritettävät LSTM-hyperparametrit…

    …Tämä tarkoittaa sitä, että hyperteknisiä parametreja voidaan virittää toisistaan riippumatta. Erityisesti oppimisnopeus voidaan kalibroida ensin käyttämällä melko pientä verkkoa, mikä säästää paljon kokeiluaikaa.

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

    Mitä ovat LSTM-sovellukset?

    On tärkeää saada käsitys siitä, minkälaisiin sekvenssien oppimisongelmiin LSTM:t soveltuvat tarkalleen ottaen.

    Pitkän aikavälin lyhytaikaisen muistin (LSTM) avulla voidaan ratkaista lukuisia tehtäviä, joita ei ole voitu ratkaista aiemmilla toistuvien hermoverkkojen (Recurrent Neural Networks, RNN) oppimisalgoritmeilla. Gers, et al., Learning to Forget: Continual Prediction with LSTM, 2000

    Rekursiivinen neuroverkko (Recurrent Neural Network, RNN) on neuraalinen sekvenssimalli, jolla saavutetaan huippuluokan suorituskyky tärkeissä tehtävissä, joita ovat muun muassa kielen mallintaminen, puheentunnistus ja konekääntäminen.

    – Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.

    Koska LSTM:t kykenevät tehokkaasti vangitsemaan pitkän aikavälin ajallisia riippuvuuksia kärsimättä yksinkertaisia rekurrenssiverkkoja (SRN) vaivaavista optimoinnin esteistä, niitä on käytetty edistämään tekniikan tasoa monissa vaikeissa ongelmissa. Tällaisia ovat muun muassa käsialan tunnistaminen ja tuottaminen, kielen mallintaminen ja kääntäminen, puheen akustinen mallintaminen, puhesynteesi, proteiinien sekundäärirakenteiden ennustaminen, ääni- ja videodatan analysointi.

    – Klaus Greff, ym, LSTM: A Search Space Odyssey, 2015

    Mitä ovat kaksisuuntaiset LSTM:t?

    Yleisesti mainittu parannus LSTM:iin ovat kaksisuuntaiset LSTM:t.

    Perusidea kaksisuuntaisissa rekursiivisissa neuroverkoissa on, että kukin harjoittelusekvenssi esitellään eteen- ja taaksepäin kahdelle erilliselle rekursiiviselle neuroverkolle, jotka molemmat on kytketty samalle ulostulokerrokselle. … Tämä tarkoittaa sitä, että jokaisesta pisteestä tietyssä sekvenssissä BRNN:llä on täydelliset, peräkkäiset tiedot kaikista sitä edeltävistä ja sen jälkeisistä pisteistä. Koska verkko voi myös vapaasti käyttää niin paljon tai vähän tätä kontekstia kuin on tarpeen, ei ole tarvetta löytää (tehtävästä riippuvaa) aikaikkunaa tai tavoiteviiveen kokoa.”

    … Puheentunnistuksen kaltaisissa ajallisissa ongelmissa tulevaisuuden tietoon luottaminen näyttää ensi näkemältä rikkovan kausaalisuutta … Miten voimme perustaa ymmärryksemme siitä, mitä olemme kuulleet, johonkin, mitä ei ole vielä sanottu? Ihmiskuuntelijat tekevät kuitenkin juuri niin. Äänet, sanat ja jopa kokonaiset lauseet, jotka eivät aluksi merkitse mitään, osoittautuvat järkeviksi tulevan kontekstin valossa.

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

    Yksi perinteisten RNN:ien puutteista on se, että ne kykenevät hyödyntämään vain aiempaa asiayhteyttä. … Kaksisuuntaiset RNN:t (Bidirectional RNN) tekevät tämän käsittelemällä dataa molempiin suuntiin kahdella erillisellä piilokerroksella, jotka sitten syötetään eteenpäin samalle lähtökerrokselle. … Yhdistämällä BRNN:t LSTM:ään saadaan bidirectional LSTM, joka voi käyttää pitkän kantaman kontekstia molempiin tulosuuntiin

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

    Toisin kuin tavanomaiset RNN:t, bidirectional RNN:t hyödyntävät sekä aiempaa että tulevaa kontekstia käsittelemällä dataa kahdesta suunnasta kahdella erillisellä piilevällä kerroksella. Toinen kerros käsittelee syötesekvenssiä eteenpäin, kun taas toinen käsittelee syötettä taaksepäin. Nykyisen aika-askeleen ulostulo tuotetaan sitten yhdistämällä molempien kerrosten piilovektori…

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

    Mitä ovat seq2seq LSTM:t tai RNN Encoder-Decoders?

    Sekvenssi-sekvenssi-LSTM:t, joita kutsutaan myös koodaaja-dekooderi-LSTM:iksi, ovat LSTM:ien sovelluksia, jotka saavat paljon huomiota niiden vaikuttavien kykyjen vuoksi.

    …LSTM-arkkitehtuurin (Long Short-Term Memory, LSTM) suoraviivainen sovellus voi ratkaista yleisiä sekvenssistä sekvenssiin -ongelmia.

    Ajatuksena on käyttää yhtä LSTM:ää lukemaan syötesekvenssi, yksi aika-askel kerrallaan, saadakseen ison kiinteä-ulotteisen vektorin representaation ja sen jälkeen käyttämään toista LSTM:ää poimimaan ulostulosekvenssi tästä vektorista. Toinen LSTM on pohjimmiltaan rekursiivisen neuroverkon kielimalli, paitsi että se on ehdollistettu syötesekvenssille.

    LSTM:n kyky oppia menestyksekkäästi datasta, jossa on pitkän kantaman ajallisia riippuvuuksia, tekee siitä luonnollisen valinnan tähän sovellukseen, koska syötteiden ja niitä vastaavien ulostulojen välissä on huomattava aikaviive.

    Pystyimme toimimaan hyvin pitkillä lauseilla, koska käänsimme sanojen sanojen järjestyksen lähdelauseessa, mutta emme kohdelausekkeissa harjoittelu- ja koejoukkoon. Näin toimimalla otimme käyttöön monia lyhytaikaisia riippuvuuksia, jotka tekivät optimointiongelmasta paljon yksinkertaisemman. … Yksinkertainen temppu, jossa lähdelauseen sanat käännetään päinvastaisiksi, on yksi tämän työn tärkeimmistä teknisistä panoksista

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

    ”Enkooderoiva” RNN lukee lähdelauseen ja muuttaa sen rikkaaksi kiinteäpituiseksi vektoriesitykseksi, jota puolestaan käytetään kohdelauseen tuottavan ”dekooderoivan” RNN:n piilotettuna alkutilana. Tässä ehdotamme, että noudatamme tätä eleganttia reseptiä ja korvaamme koodaajan RNN:n syvällä konvoluutiohermoverkolla (CNN). … on luonnollista käyttää CNN:ää kuvan ”koodaajana” kouluttamalla se ensin kuvanluokittelutehtävään ja käyttämällä viimeistä piilotettua kerrosta lauseet tuottavan RNN:n dekooderin syötteenä.

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

    … RNN Encoder-Decoder, koostuu kahdesta rekursiivisesta neuroverkosta (RNN), jotka toimivat kooderi- ja dekooderiparina. Kooderi kuvaa vaihtelevan pituisen lähdesekvenssin kiinteän pituiseksi vektoriksi, ja dekooderi kuvaa vektoriesityksen takaisin vaihtelevan pituiseksi kohdesekvenssiksi.

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

    Yhteenveto

    Tässä postauksessa sait lempeän johdatuksen LSTM:iin tekniikoita kehittäneiden ja soveltavien tutkijoiden sanoin.

    Siten saat sekä selkeän ja tarkan käsityksen siitä, mitä LSTM:t ovat ja miten ne toimivat, että tärkeän artikulaation LSTM:ien lupauksista rekursiivisten neuroverkkojen alalla.

    Auttasiko jokin lainauksista ymmärtämistäsi tai inspiroi sinua?
    Kertokaa siitä alla olevissa kommenteissa.

    Kehitä LSTM-malleja sekvenssien ennustamiseen jo tänään!

    Kehitä omat LSTM-mallisi minuuteissa

    …vain muutamalla rivillä python-koodia

    Tutustu siihen uudessa Ebookissani:
    Long Short-Term Memory Networks with Python

    Se tarjoaa itseopiskeluoppaita aiheista kuten:
    CNN LSTM:t, Encoder-Decoder LSTM:t, generatiiviset mallit, datan esikäsittely, ennusteiden tekeminen ja paljon muuta…

    Finally Bring LSTM Recurrent Neural Networks to
    Your Sequence Predictions Projects

    Skip the Academics. Just Results.

    See What’s Inside

    Tweet Share Share Share

    Vastaa

    Sähköpostiosoitettasi ei julkaista.