Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Miten RNN Toimii? | Johdanto RNN-verkkoihin
Johdanto Toistoverkkoihin

bookMiten RNN Toimii?

Toistuvat neuroverkot (RNN:t) on suunniteltu käsittelemään sekventiaalista dataa säilyttämällä tietoa aiemmista syötteistä niiden sisäisissä tiloissa. Tämä tekee niistä ihanteellisia tehtäviin, kuten kielimallinnukseen ja sekvenssien ennustamiseen.

  • Sekventiaalinen käsittely: RNN käsittelee dataa askel askeleelta, pitäen kirjaa aiemmasta tiedosta;
  • Lauseen täydentäminen: kun annetaan keskeneräinen lause "My favourite dish is sushi. So, my favourite cuisine is _____.", RNN käsittelee sanat yksi kerrallaan. Kun se näkee sanan "sushi", se ennustaa seuraavaksi sanaksi "Japanese" aiemman kontekstin perusteella;
  • Muisti RNN:issä: jokaisessa vaiheessa RNN päivittää sisäistä tilaansa (muistia) uudella tiedolla, varmistaen kontekstin säilymisen tulevia askeleita varten;
  • RNN:n koulutus: RNN:t koulutetaan käyttämällä takaisinkytkentää ajan yli (BPTT), jossa virheet viedään taaksepäin jokaisen aikavälin läpi painojen säätämiseksi parempia ennusteita varten.

Eteenpäinlevitys

Eteenpäinlevityksen aikana RNN käsittelee syötteen vaihe vaiheelta:

  1. Syöte ajanhetkellä tt: verkko vastaanottaa syötteen xtx_t jokaisella ajanhetkellä;

  2. Piilotilan päivitys: nykyinen piilotila hth_t päivitetään edellisen piilotilan ht1h_{t-1} ja nykyisen syötteen xtx_t perusteella seuraavan kaavan mukaisesti:

    ht=f(W[ht1,xt]+b)
    • Missä:
      • WW on painomatriisi;
      • bb on bias-vektori;
      • ff on aktivointifunktio.
  3. Ulostulon muodostus: ulostulo yty_t muodostetaan nykyisen piilotilan hth_t perusteella seuraavan kaavan mukaisesti:

    yt=g(Vht+c)

    • Missä:
      • VV on ulostulon painomatriisi;
      • cc on ulostulon bias;
      • gg on ulostulokerroksen aktivointifunktio.

Takaisinkytkentäprosessi

Takaisinkytkentä (backpropagation) RNN:issä on olennainen painojen päivittämiseksi ja mallin parantamiseksi. Prosessia muokataan huomioimaan RNN:ien sekventiaalinen luonne käyttämällä aikaan ulottuvaa takaisinkytkentää (BPTT, backpropagation through time):

  1. Virheen laskeminen: Ensimmäinen vaihe BPTT:ssä on laskea virhe jokaisessa aikavälissä. Tämä virhe on tyypillisesti ennustetun tuloksen ja todellisen tavoitteen välinen ero;

  2. Gradientin laskeminen: Toistuvissa neuroverkoissa (Recurrent Neural Networks) häviöfunktion gradientit lasketaan derivoimalla virhe verkon parametrien suhteen ja propagaatio tapahtuu ajassa taaksepäin viimeisestä vaiheesta alkuun, mikä voi johtaa katoaviin tai räjähtäviin gradientteihin erityisesti pitkillä sekvensseillä;

  3. Painojen päivitys: Kun gradientit on laskettu, painot päivitetään käyttämällä optimointimenetelmää, kuten stokastista gradienttilaskeumaa (SGD, stochastic gradient descent). Painoja säädetään siten, että virhe pienenee tulevissa iteraatioissa. Painojen päivityksen kaava on:

    W:=WηLossW

    • Missä:
      • η\eta on oppimisnopeus;
      • LossW on häviöfunktion gradientti painomatriisin suhteen.

Yhteenvetona RNN:t ovat tehokkaita, koska ne voivat muistaa ja hyödyntää aiempaa tietoa, mikä tekee niistä sopivia tehtäviin, jotka sisältävät sekvenssejä.

question mark

Mikä on funktion gg rooli ulostuloyhtälössä yt=g(Vht+c)y_t = g(V \cdot h_t+ c)

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain the difference between RNNs and other neural networks?

How does backpropagation through time (BPTT) work in more detail?

What are some common applications of RNNs in real-world scenarios?

Awesome!

Completion rate improved to 4.55

bookMiten RNN Toimii?

Pyyhkäise näyttääksesi valikon

Toistuvat neuroverkot (RNN:t) on suunniteltu käsittelemään sekventiaalista dataa säilyttämällä tietoa aiemmista syötteistä niiden sisäisissä tiloissa. Tämä tekee niistä ihanteellisia tehtäviin, kuten kielimallinnukseen ja sekvenssien ennustamiseen.

  • Sekventiaalinen käsittely: RNN käsittelee dataa askel askeleelta, pitäen kirjaa aiemmasta tiedosta;
  • Lauseen täydentäminen: kun annetaan keskeneräinen lause "My favourite dish is sushi. So, my favourite cuisine is _____.", RNN käsittelee sanat yksi kerrallaan. Kun se näkee sanan "sushi", se ennustaa seuraavaksi sanaksi "Japanese" aiemman kontekstin perusteella;
  • Muisti RNN:issä: jokaisessa vaiheessa RNN päivittää sisäistä tilaansa (muistia) uudella tiedolla, varmistaen kontekstin säilymisen tulevia askeleita varten;
  • RNN:n koulutus: RNN:t koulutetaan käyttämällä takaisinkytkentää ajan yli (BPTT), jossa virheet viedään taaksepäin jokaisen aikavälin läpi painojen säätämiseksi parempia ennusteita varten.

Eteenpäinlevitys

Eteenpäinlevityksen aikana RNN käsittelee syötteen vaihe vaiheelta:

  1. Syöte ajanhetkellä tt: verkko vastaanottaa syötteen xtx_t jokaisella ajanhetkellä;

  2. Piilotilan päivitys: nykyinen piilotila hth_t päivitetään edellisen piilotilan ht1h_{t-1} ja nykyisen syötteen xtx_t perusteella seuraavan kaavan mukaisesti:

    ht=f(W[ht1,xt]+b)
    • Missä:
      • WW on painomatriisi;
      • bb on bias-vektori;
      • ff on aktivointifunktio.
  3. Ulostulon muodostus: ulostulo yty_t muodostetaan nykyisen piilotilan hth_t perusteella seuraavan kaavan mukaisesti:

    yt=g(Vht+c)

    • Missä:
      • VV on ulostulon painomatriisi;
      • cc on ulostulon bias;
      • gg on ulostulokerroksen aktivointifunktio.

Takaisinkytkentäprosessi

Takaisinkytkentä (backpropagation) RNN:issä on olennainen painojen päivittämiseksi ja mallin parantamiseksi. Prosessia muokataan huomioimaan RNN:ien sekventiaalinen luonne käyttämällä aikaan ulottuvaa takaisinkytkentää (BPTT, backpropagation through time):

  1. Virheen laskeminen: Ensimmäinen vaihe BPTT:ssä on laskea virhe jokaisessa aikavälissä. Tämä virhe on tyypillisesti ennustetun tuloksen ja todellisen tavoitteen välinen ero;

  2. Gradientin laskeminen: Toistuvissa neuroverkoissa (Recurrent Neural Networks) häviöfunktion gradientit lasketaan derivoimalla virhe verkon parametrien suhteen ja propagaatio tapahtuu ajassa taaksepäin viimeisestä vaiheesta alkuun, mikä voi johtaa katoaviin tai räjähtäviin gradientteihin erityisesti pitkillä sekvensseillä;

  3. Painojen päivitys: Kun gradientit on laskettu, painot päivitetään käyttämällä optimointimenetelmää, kuten stokastista gradienttilaskeumaa (SGD, stochastic gradient descent). Painoja säädetään siten, että virhe pienenee tulevissa iteraatioissa. Painojen päivityksen kaava on:

    W:=WηLossW

    • Missä:
      • η\eta on oppimisnopeus;
      • LossW on häviöfunktion gradientti painomatriisin suhteen.

Yhteenvetona RNN:t ovat tehokkaita, koska ne voivat muistaa ja hyödyntää aiempaa tietoa, mikä tekee niistä sopivia tehtäviin, jotka sisältävät sekvenssejä.

question mark

Mikä on funktion gg rooli ulostuloyhtälössä yt=g(Vht+c)y_t = g(V \cdot h_t+ c)

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2
some-alt