Få mest mulig ut av LSTM-er på ditt sekvensforutsigelsesproblem

Få mest mulig ut av LSTM-er på ditt sekvensforutsigelsesproblem

Long Short-Term Memory (LSTM) Recurrent Neural Networks er en kraftig type dyp læring som er egnet for sekvensspådommer.

En mulig bekymring når du bruker LSTM er hvis den ekstra kompleksiteten i modellen forbedrer modellens dyktighet eller faktisk resulterer i lavere ferdigheter enn enklere modeller.

I dette innlegget vil du oppdage enkle eksperimenter du kan kjøre for å sikre at du får mest mulig ut av LSTM-er på ditt sekvensforutsigelsesproblem.

Etter å ha lest dette innlegget, vil du vite:

  • Hvordan teste om modellen din utnytter ordreavhengighet i inndataene dine.
  • Hvordan teste om modellen din utnytter minne i LSTM-modellen.
  • Hvordan teste om modellen din benytter BPTT når den monteres.

Start prosjektet ditt med min nye bok Long Short-Term Memory Networks With Python, inkludert trinnvise veiledninger og Python kildekode filer for alle eksemplene.

La oss dykke inn.

Få mest mulig ut av LSTM-er på ditt sekvensforutsigelsesproblem

Få mest mulig ut av LSTM-er på ditt sekvensforutsigelsesproblem
Foto av DoD News, noen rettigheter forbeholdt.

3 evner til LSTMS

Det tilbakevendende nevrale nettverket i LSTM har noen få viktige funksjoner som gir metoden sin imponerende effekt på et bredt spekter av sekvensforutsigelsesproblemer.

Uten å dykke inn i teorien om LSTM-er, kan vi oppsummere noen diskrete atferd av LSTM-er som vi kan konfigurere i modellene våre:

  • Bestill avhengighet. Forutsigelsesproblemer for sekvenser krever en ordning mellom observasjonene, mens enklere overvåket læringsproblemer ikke gjør det, og denne rekkefølgen kan randomiseres før trening og prediksjon. Et sekvensforutsigelsesproblem kan transformeres til en enklere form ved å randomisere rekkefølgen på observasjoner.
  • Hukommelse. LSTM har et internt minne på tvers av observasjoner i inngangssekvenser, mens enkle nevrale nettverk som Multilayer Perceptrons ikke gjør det. LSTM-er kan miste dette minnet ved å tilbakestille den interne tilstanden etter hver inngangsobservasjon.
  • BPTT. Tilbakevendende nevrale nettverk bruker en treningsalgoritme som estimerer retningen på vektoppdateringer over alle tidstrinn i en inngangssekvens, mens andre typer nettverk er begrenset til enkeltprøver (unntatt gjennomsnittsverdier for grupper av innganger i begge tilfeller). LSTM kan se bort fra feilbidraget fra tidligere tidssprang i gradientestimater ved å jobbe med sekvenser av en observasjon i lengde.

Disse tre funksjonene og deres konfigurerbarhet til en enklere form gir grunnlaget for 3 eksperimenter du kan utføre for å se nøyaktig hvilke egenskaper til LSTM-ene du kan og utnytter på ditt sekvensforutsigelsesproblem.

Trenger du hjelp med LSTMs for Sequence Prediction?

Ta mitt gratis 7-dagers e-postkurs og oppdag 6 forskjellige LSTM-arkitekturer (med kode).

Klikk for å registrere deg og få også en gratis PDF-bokversjon av kurset.

Start ditt GRATIS minikurs nå!

1. Bruker du ordreavhengighet?

Et sentralt trekk ved problemer med forutsigelse av sekvenser er at det er en ordreavhengighet mellom observasjoner.

Det vil si rekkefølgen på observasjoner.

Antagelse: Det er forventet at rekkefølgen på observasjoner vil være viktig for å komme med spådommer om sekvensforutsigelsesproblemer.

Du kan sjekke om denne antagelsen er sant ved å utvikle en basislinje for ytelse med en modell som bare tar den tidligere observasjonen som input og blander trenings- og testdatasettene.

Dette kan oppnås på flere måter. To eksempler på implementeringer inkluderer:

  • En multilayer Perceptron (MLP) med blandet trening og testsett.
  • En LSTM med blandet opplæring og testsett med oppdateringer og tilbakestillinger etter hver prøve (batchstørrelse 1).

Test: Hvis ordreavhengighet er viktig for prediksjonsproblemet, bør en modell som utnytter orden mellom observasjoner i hver inngangssekvens og på tvers av inngangssekvenser oppnå bedre ytelse enn en modell som ikke gjør det.

2. Bruker du LSTM-minne?

En nøkkelegenskap for LSTM er at de kan huske over lange inngangssekvenser.

Det vil si at hver minneenhet opprettholder en intern tilstand som kan betraktes som lokale variabler som brukes når man forutsier.

Antagelse: Den interne tilstanden til modellen forventes å være viktig for modellkompetansen.

Du kan sjekke om denne antagelsen stemmer ved å utvikle en basislinje for ytelse med en modell som ikke har noe minne fra en prøve til den neste.

Dette kan oppnås ved å tilbakestille den interne tilstanden til LSTM etter hver observasjon.

Test: Hvis internt minne er viktig for prediksjonsproblemet, bør en modell som har minne på tvers av observasjoner i en inngangssekvens oppnå bedre ytelse enn en modell som ikke gjør det.

3. Benytter du Backpropagation Through Time?

En nøkkel til måten tilbakevendende nevrale nettverk blir trent opp er Backpropagation Through Time (BPTT) algoritmen.

Denne algoritmen gjør det mulig å estimere gradienten av vektoppdateringer fra alle observasjoner i sekvensen (eller en delmengde i tilfelle avkortet BPTT).

Antagelse: BPTT-vekttoppdateringsalgoritmen forventes å være viktig for å modellere ferdigheter på sekvensforutsigelsesproblemer.

Du kan sjekke om denne antagelsen stemmer ved å utvikle en basislinje for ytelse der gradientestimater er basert på et enkelt tidspunkt.

Dette kan oppnås ved å dele inngangssekvenser slik at hver observasjon representerer en enkelt inngangssekvens. Dette ville være uavhengig av når vektoppdateringer er planlagt, og når den interne tilstanden tilbakestilles.

Test: Hvis BPTT er viktig for prediksjonsproblemet, bør en modell som estimerer gradienten for vektoppdateringer for flere trinn, oppnå bedre ytelse enn en modell som bruker et enkelt tidstrinn.

Sammendrag

I dette innlegget oppdaget du tre viktige funksjoner i LSTM-er som gir teknikken sin kraft og hvordan du kan teste disse egenskapene på dine egne sekvensforutsigelsesproblemer.

Nærmere bestemt:

  • Hvordan teste om modellen din utnytter ordreavhengighet i inndataene dine.
  • Hvordan teste om modellen din utnytter minne i LSTM-modellen.
  • Hvordan teste om modellen din benytter BPTT når den monteres.

Har du noen spørsmål?
Legg inn spørsmålene dine til kommentarene nedenfor, så vil jeg gjøre mitt beste for å svare.

Utvikle LSTM-er for sekvensforutsigelse i dag!

Lange kortsiktige minnenettverk med Python

Utvikle dine egne LSTM-modeller på få minutter

... med bare noen få linjer med python-kode

Oppdag hvordan i min nye eBok:
Lange kortsiktige minnenettverk med Python

Det gir selvstudier om emner som:
CNN LSTM, Encoder-Decoder LSTM, generative modeller, dataklargjøring, forutsigelser og mye mer...

Endelig ta LSTM tilbakevendende nevrale nettverk til
Dine sekvensforutsigelsesprosjekter

Hopp over akademikerne. Bare resultater.

Se hva som er inne

Możesz być również zainteresowany