CNN pikaajalised lühiajalised mäluvõrgud

CNN pikaajalised lühiajalised mäluvõrgud

Õrn sissejuhatus korduvatesse närvivõrkudesse CNN LSTM
koos Pythoni koodiga.

Ruumilise struktuuriga sisendit, nagu ka pilte, ei saa Vanilla LSTM-i abil hõlpsasti modelleerida.

CNN lühiajaline lühivõrk ehk CNN LSTM on LSTM-i arhitektuur, mis on spetsiaalselt ette nähtud ruumiliste sisendite, näiteks piltide või videote, järjestuse ennustamiseks.

Selles postituses avastate CNN LSTM-i arhitektuuri järjestuse ennustamiseks.

Pärast selle postituse lõpetamist saate teada:

  • CNN LSTM mudeli arhitektuuri väljatöötamisest järjestuse ennustamiseks.
  • Näited probleemide tüüpidest, millele CNN LSTM-i mudel sobib.
  • Kuidas rakendada CNN-i LSTM-i arhitektuuri Pythonis koos Kerasega.

Alustage oma projekti minu uue raamatuga Long Short-Term Memory Networks With Python, sh samm-sammult õpetused ja Pythoni lähtekood failid kõigi näidete jaoks.

Alustame.

Konvolutsiooniline närvivõrgu lühiajaline mäluvõrk

Konvolutsiooniline närvivõrgu lühiajaline mäluvõrk
Foto autor: Yair Aronshtam, mõned õigused on reserveeritud.

CNN LSTM arhitektuur

CNN LSTM-i arhitektuur hõlmab sisendandmete funktsioonide eraldamiseks konvolutsioonilise närvivõrgu (CNN) kihte koos LSTM-idega, et toetada järjestuse ennustamist.

CNN-i LSTM-id töötati välja visuaalsete aegridade ennustamisprobleemide jaoks ja tekstijärgsete kirjelduste genereerimise rakendamiseks piltide jadadest (nt videod). Täpsemalt, probleemid:

  • Tegevuse tunnustamine: Piltide järjestuses näidatud tegevuse tekstikirjelduse genereerimine.
  • Pildi kirjeldus: Ühe pildi tekstilise kirjelduse genereerimine.
  • Video kirjeldus: Piltide jada tekstilise kirjelduse genereerimine.

[CNN LSTMs are] mudelite klass, mis on nii ruumiliselt kui ka ajaliselt sügav ja mida saab paindlikult rakendada mitmesuguste nägemisülesannete jaoks, mis hõlmavad järjestikuseid sisendeid ja väljundeid

- pikaajalised korduvad konvolutsioonilised võrgud visuaalseks tuvastamiseks ja kirjeldamiseks, 2015.

Seda arhitektuuri nimetati algselt pikaajaliseks korduvaks konvolutsioonivõrguks või LRCN-i mudeliks, ehkki me kasutame üldisemat nime “CNN LSTM”, et viidata LSTM-idele, mis kasutavad CNN-i selles õppetükis esiotsa.

Seda arhitektuuri kasutatakse piltide tekstikirjelduste loomiseks. Peamine on CNN-i kasutamine, mis on eelnevalt koolitatud väljakutsuva pildi klassifitseerimise ülesande jaoks ja mis on uuesti ülesande genereerimise probleemi funktsioonide ekstraktoriks.

... on loomulik kasutada CNN-i pildi „kooderina“, koolitades seda esmalt pildi klassifitseerimise ülesandeks ja kasutades viimast peidetud kihti sisendina lauseid genereerivale RNN-dekooderile

- Näita ja räägi: Neuraalse pildi pealkirjade generaator, 2015.

Seda arhitektuuri on kasutatud ka kõnetuvastuse ja loomuliku keele töötlemise probleemide puhul, kus CNN-sid kasutatakse heli- ja tekstisisestusandmete LSTM-ide funktsioonide väljatõmbamisena.

See arhitektuur sobib probleemide jaoks, mis:

  • Sisestage ruumiline struktuur, näiteks 2D struktuur või pikslid pildil või 1D sõnade struktuur lauses, lõigus või dokumendis.
  • Sisendil peab olema ajaline struktuur, näiteks videote piltide järjestus või tekstis olevad sõnad, või on vaja väljundi genereerimist ajalise struktuuriga, näiteks sõnad tekstikirjelduses.
Konvolutsiooniline närvivõrgu lühiajaline mäluvõrgu arhitektuur

Konvolutsiooniline närvivõrgu lühiajaline mäluvõrgu arhitektuur

Vajad abi järjestuse ennustamiseks mõeldud LSTM-ide kohta?

Osale minu tasuta 7-päevasele e-posti kursusele ja avastage 6 erinevat LSTM-i arhitektuuri (koos koodiga).

Klõpsake registreerumiseks ja hankige ka kursuse tasuta PDF-i e-raamatu versioon.

Alustage oma TASUTA minikursust kohe!

Rakendage CNAS LSTM Keras

Saame määratleda CNN-i LSTM-mudeli, mida Kerasis ühiselt koolitada.

CNN-i LSTM-i saab määratleda, lisades CNN-i kihid esiosale, millele järgnevad LSTM-i kihid, mille väljundil on tihe kiht.

Kasulik on mõelda sellele arhitektuurile kui kahe alamudeli määratlemisele: CNN-funktsioon funktsioonide väljavõtmiseks ja LSTM-mudel funktsioonide interpreteerimiseks ajasammude kaupa.

Vaatame mõlemaid neid alamudeleid 2D sisendite järjestuse kontekstis, mis eeldame, et need on pildid.

CNN mudel

Uuendusena saame määratleda 2D konvolutsioonivõrgu, mis koosneb nõutava sügavusega virnadesse järjestatud Conv2D ja MaxPooling2D kihtidest.

Conv2D tõlgendab pildi pilte (nt väikesed ruudud) ja valimiskihid konsolideerivad või abstraktselt tõlgendavad.

Näiteks loodab allolev koodilõik lugeda 10x10 pikslist pilti ühe kanaliga (nt mustvalge). Conv2D loeb pilti 2 × 2 hetktõmmisena ja väljastab pildile ühe uue 10 × 10 tõlgenduse. MaxPooling2D koondab tõlgenduse 2 × 2 plokiks, vähendades väljundi 5 × 5 konsolideerimiseni. Tasandatud kiht võtab ühe 5 × 5 kaardi ja teisendab selle 25-elemendiliseks vektoriks, mis on valmis mõne muu kihi jaoks käsitsema, näiteks Tihedaks ennustuse väljastamiseks.

See on mõistlik piltide klassifitseerimise ja muude arvutinägemisülesannete jaoks.

LSTM-i mudel

Ülaltoodud CNN-i mudel on võimeline töötlema ainult ühte pilti, teisendades selle sisendpikslitest sisemiseks maatriksiks või vektoriks.

Peame seda toimingut kordama mitme pildi peal ja võimaldama LSTM-il sisendsignaalide sisemise vektori kujutiste järjestuses BPTT-d kasutades üles ehitada sisemine olek ja uuendada kaalu.

CNN-i saaks fikseerida juhul, kui piltide funktsioonide väljavõtmiseks kasutatakse olemasolevat eelnevalt koolitatud mudelit, näiteks VGG. CNN-i ei pruugi välja õpetada ja me võime soovida seda koolitada, lisades LSTM-i vea mitme sisendpildi korral CNN-i mudelile.

Mõlemal juhul on kontseptuaalselt olemas üks CNN-mudel ja LSTM-mudelite jada, üks iga ajaetapi jaoks. Soovime rakendada CNN-i mudelit igale sisendkujutisele ja edastada iga sisendpildi väljund LSTM-ile ühe aja sammuna.

Selle saavutame kogu CNN-i sisendmudeli (ühe või enama kihi) pakkimisega TimeDistributed kihti. See kiht saavutab sama kihi või kihtide mitmekordse pealekandmise soovitud tulemuse. Sellisel juhul rakendades seda mitu korda mitme sisendaja sammu jaoks ja pakkudes omakorda LSTM-i mudelile töötamiseks "pildi tõlgendamise" või "pildi funktsioonide" jada.

Nüüd on meil mudeli kaks elementi; paneme need kokku.

CNN LSTM-i mudel

CNN-i LSTM-mudeli saab defineerida Kerasis, määratledes kõigepealt CNN-i kihi või kihid, pakkides need TimeDistributed kihti ning määrates seejärel LSTM- ja väljundkihid.

Meil on mudeli määratlemiseks kaks võimalust, mis on samaväärsed ja erinevad ainult maitse järgi.

Kõigepealt saate määratleda CNN-mudeli ja seejärel lisada selle LSTM-i mudelisse, pakkides kogu CNN-i kihtide järjestuse TimeDistributed kihti järgmiselt:

Alternatiivne ja võib-olla hõlpsamini loetav lähenemisviis on mähkida iga CNN-mudeli kiht põhimudelile lisamisel TimeDistributed-kihti.

Selle teise lähenemise eeliseks on see, et kõik kihid ilmuvad mudeli kokkuvõttes ja on sellisena praegu eelistatud.

Võite valida meetodi, mida eelistate.

Lisalugemist

Selles jaotises on antud teema kohta rohkem ressursse, kui otsite süvitsi.

Ettekanded CNN LSTM-is

Kerase API

Postitused

Kokkuvõte

Selles postituses avastasite CNN LSTN-i mudeli arhitektuuri.

Täpsemalt õppisite:

  • CNN LSTM mudeli arhitektuuri väljatöötamisest järjestuse ennustamiseks.
  • Näited probleemide tüüpidest, millele CNN LSTM-i mudel sobib.
  • Kuidas rakendada CNN-i LSTM-i arhitektuuri Pythonis koos Kerasega.

Kas teil on küsimusi?
Esitage oma küsimused allpool toodud kommentaarides ja annan endast parima, et vastata.

Arendage LSTM-e järjestuse ennustamiseks juba täna!

Pikaaegsed lühiajalised mäluvõrgud Pythoniga

Arendage oma LSTM-i mudelid minutite jooksul

... ainult mõne rea Pythoni koodiga

Uurige, kuidas minu uues e-raamatus:
Pikaaegsed lühiajalised mäluvõrgud Pythoniga

See pakub iseõppimise õpetused järgmistel teemadel:
CNN LSTM-id, Encoder-Decoder LSTM-id, generatiivsed mudelid, andmete ettevalmistamine, ennustuste tegemine ja palju muud ...

Lõpuks tooge LSTM-i korduvad närvivõrgud
Teie järjestuse ennustuse projektid

Jätke akadeemikud vahele. Lihtsalt tulemused.

Vaadake, mis on sees

Samuti võite olla huvitatud