Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Hvordan RNN Fungerer? | Introduksjon til RNN-er
Rekursive Nevrale Nettverk med Python

Hvordan RNN Fungerer?

Sveip for å vise menyen

Note
Definisjon

Rekurrente nevrale nettverk (RNN-er) er utviklet for å håndtere sekvensielle data ved å beholde informasjon fra tidligere input i sine interne tilstander. Dette gjør dem ideelle for oppgaver som språkmodellering og sekvensprediksjon.

Distance measures
  • Sekvensiell prosessering: RNN behandler data steg for steg, og holder oversikt over hva som har kommet tidligere;
  • Setningsfullføring: gitt den ufullstendige setningen "My favourite dish is sushi. So, my favourite cuisine is _____." behandler RNN ordene ett etter ett. Etter å ha sett "sushi", forutsier den neste ord som "Japanese" basert på tidligere kontekst;
  • Minne i RNN-er: ved hvert steg oppdaterer RNN sin interne tilstand (minne) med ny informasjon, slik at den beholder kontekst for fremtidige steg;
  • Trening av RNN: RNN-er trenes ved hjelp av tilbakepropagering gjennom tid (BPTT), der feil sendes bakover gjennom hvert tidssteg for å justere vekter for bedre prediksjoner.

Fremoverpropagasjon

Under fremoverpropagasjon behandler RNN inngangsdataene steg for steg:

  1. Inndata ved tidsskritt tt: nettverket mottar en inndata xtx_t ved hvert tidsskritt;

  2. Oppdatering av skjult tilstand: den nåværende skjulte tilstanden hth_t oppdateres basert på forrige skjulte tilstand ht1h_{t-1} og nåværende inndata xtx_t ved å bruke følgende formel:

    ht=f(W[ht1,xt]+b)
    • Hvor:
      • WW er vektmatrisen;
      • bb er bias-vektoren;
      • ff er aktiveringsfunksjonen.
  3. Generering av utdata: utdata yty_t genereres basert på den nåværende skjulte tilstanden hth_t ved å bruke formelen:

    yt=g(Vht+c)

    • Hvor:
      • VV er utdata-vektmatrisen;
      • cc er utdata-bias;
      • gg er aktiveringsfunksjonen brukt i utdata-laget.

Tilbakepropagasjon

Tilbakepropagasjon i RNN-er er avgjørende for å oppdatere vektene og forbedre modellen. Prosessen er tilpasset for å ta hensyn til den sekvensielle naturen til RNN-er gjennom tilbakepropagasjon gjennom tid (BPTT):

  1. Feilberegning: det første steget i BPTT er å beregne feilen ved hvert tidsskritt. Denne feilen er vanligvis forskjellen mellom den predikerte utdataen og det faktiske målet;

  2. Gradientberegning: i rekurrente nevrale nettverk beregnes gradientene til tapsfunksjonen ved å derivere feilen med hensyn til nettverksparametrene og propagere bakover i tid fra siste til første steg, noe som kan føre til forsvinnende eller eksploderende gradienter, spesielt i lange sekvenser;

  3. Vektoppdatering: når gradientene er beregnet, oppdateres vektene ved hjelp av en optimaliseringsteknikk som stokastisk gradientnedstigning (SGD). Vektene justeres slik at feilen minimeres i fremtidige iterasjoner. Formelen for å oppdatere vektene er:

    W:=WηLossW

    • Hvor:
      • η\eta er læringsraten;
      • LossW er gradienten til tapsfunksjonen med hensyn til vektmatrisen.

Oppsummert er RNN-er kraftige fordi de kan huske og bruke tidligere informasjon, noe som gjør dem egnet for oppgaver som involverer sekvenser.

question mark

Hva er rollen til funksjonen gg i utgangslikningen yt=g(Vht+c)y_t = g(V \cdot h_t+ c)

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 2

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Hvordan RNN Fungerer?

Note
Definisjon

Rekurrente nevrale nettverk (RNN-er) er utviklet for å håndtere sekvensielle data ved å beholde informasjon fra tidligere input i sine interne tilstander. Dette gjør dem ideelle for oppgaver som språkmodellering og sekvensprediksjon.

Distance measures
  • Sekvensiell prosessering: RNN behandler data steg for steg, og holder oversikt over hva som har kommet tidligere;
  • Setningsfullføring: gitt den ufullstendige setningen "My favourite dish is sushi. So, my favourite cuisine is _____." behandler RNN ordene ett etter ett. Etter å ha sett "sushi", forutsier den neste ord som "Japanese" basert på tidligere kontekst;
  • Minne i RNN-er: ved hvert steg oppdaterer RNN sin interne tilstand (minne) med ny informasjon, slik at den beholder kontekst for fremtidige steg;
  • Trening av RNN: RNN-er trenes ved hjelp av tilbakepropagering gjennom tid (BPTT), der feil sendes bakover gjennom hvert tidssteg for å justere vekter for bedre prediksjoner.

Fremoverpropagasjon

Under fremoverpropagasjon behandler RNN inngangsdataene steg for steg:

  1. Inndata ved tidsskritt tt: nettverket mottar en inndata xtx_t ved hvert tidsskritt;

  2. Oppdatering av skjult tilstand: den nåværende skjulte tilstanden hth_t oppdateres basert på forrige skjulte tilstand ht1h_{t-1} og nåværende inndata xtx_t ved å bruke følgende formel:

    ht=f(W[ht1,xt]+b)
    • Hvor:
      • WW er vektmatrisen;
      • bb er bias-vektoren;
      • ff er aktiveringsfunksjonen.
  3. Generering av utdata: utdata yty_t genereres basert på den nåværende skjulte tilstanden hth_t ved å bruke formelen:

    yt=g(Vht+c)

    • Hvor:
      • VV er utdata-vektmatrisen;
      • cc er utdata-bias;
      • gg er aktiveringsfunksjonen brukt i utdata-laget.

Tilbakepropagasjon

Tilbakepropagasjon i RNN-er er avgjørende for å oppdatere vektene og forbedre modellen. Prosessen er tilpasset for å ta hensyn til den sekvensielle naturen til RNN-er gjennom tilbakepropagasjon gjennom tid (BPTT):

  1. Feilberegning: det første steget i BPTT er å beregne feilen ved hvert tidsskritt. Denne feilen er vanligvis forskjellen mellom den predikerte utdataen og det faktiske målet;

  2. Gradientberegning: i rekurrente nevrale nettverk beregnes gradientene til tapsfunksjonen ved å derivere feilen med hensyn til nettverksparametrene og propagere bakover i tid fra siste til første steg, noe som kan føre til forsvinnende eller eksploderende gradienter, spesielt i lange sekvenser;

  3. Vektoppdatering: når gradientene er beregnet, oppdateres vektene ved hjelp av en optimaliseringsteknikk som stokastisk gradientnedstigning (SGD). Vektene justeres slik at feilen minimeres i fremtidige iterasjoner. Formelen for å oppdatere vektene er:

    W:=WηLossW

    • Hvor:
      • η\eta er læringsraten;
      • LossW er gradienten til tapsfunksjonen med hensyn til vektmatrisen.

Oppsummert er RNN-er kraftige fordi de kan huske og bruke tidligere informasjon, noe som gjør dem egnet for oppgaver som involverer sekvenser.

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 1. Kapittel 2
some-alt