Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Toistuvat Neuroverkot (RNN:t) ja Sekvenssien Generointi | Teoreettiset Perusteet
Syvät Generatiiviset Mallit Pythonilla

Toistuvat Neuroverkot (RNN:t) ja Sekvenssien Generointi

Pyyhkäise näyttääksesi valikon

Johdanto toistuviin neuroverkkoihin (RNN)

Toistuvat neuroverkot (Recurrent Neural Networks, RNN) ovat neuroverkkojen luokka, joka on suunniteltu erityisesti jaksollisen datan käsittelyyn. Toisin kuin perinteisissä syötteestä tulokseen -verkoissa, RNN:issä on yhteyksiä, jotka mahdollistavat tiedon säilymisen aikavälien yli. Tämä tekee niistä erityisen hyödyllisiä tehtävissä, joissa aiempi tieto vaikuttaa tuleviin ennusteisiin, kuten kielimallinnuksessa, puheentunnistuksessa ja sekvenssien generoinnissa.

RNN

RNN:ien toimintaperiaate

RNN käsittelee sekvenssejä askel kerrallaan ja ylläpitää piilotilaa, joka tallentaa tietoa aiemmista syötteistä. Jokaisella aikavälillä:

  • Verkko vastaanottaa nykyisen syötteen ja edellisen piilotilan.
  • Se laskee uuden piilotilan painotetun muunnoksen ja epälineaarisen aktivointifunktion avulla.
  • Piilotilaa käytetään seuraavan aikavälin syötteenä ja siitä voidaan myös tuottaa ulostulo.

Matemaattisesti RNN määritellään seuraavasti:

ht=σ(Whht1+Wxxt+b)h_t=\sigma\left( W_hh_{t-1}+W_xx_t+b \right)

missä:

  • hth_t on piilotila ajanhetkellä tt;
  • xtx_t on syöte ajanhetkellä tt;
  • WhW_h ja WxW_x ovat painomatriiseja;
  • bb on bias-termi;
  • σ\sigma on epälineaarinen aktivointifunktio (yleensä tanh tai ReLU).

RNN:t mallintavat riippuvuuksia sekventiaalisessa datassa, mutta niillä on ongelmia kuten häviävän gradientin ongelma, mikä rajoittaa niiden kykyä oppia pitkän aikavälin riippuvuuksia.

RNN-muunnelmat: LSTM:t ja GRU:t

Tavalliset RNN:t kohtaavat vaikeuksia pitkän aikavälin riippuvuuksien kanssa häviävän gradientin ongelman vuoksi. Tämän ratkaisemiseksi kehitettiin kehittyneempiä arkkitehtuureja, kuten Long Short-Term Memory (LSTM) ja Gated Recurrent Unit (GRU).

Long Short-Term Memory (LSTM:t)

LSTM

LSTM-verkot esittelevät muistiyksiköt ja porttimekanismit tiedon kulun hallintaan:

  • Unohtamisportti: määrittää, mikä aiempi tieto poistetaan;
  • Syöttöportti: päättää, mitä uutta tietoa tallennetaan muistiin;
  • Ulostuloportti: hallitsee, mitä tietoa lähetetään ulostulona.

LSTM-yhtälöt:

ft=σ(Wfxt+Ufht1+bf)f_t=\sigma(W_f x_t + U_f h_{t-1} + b_f) it=σ(Wixt+Uiht1+bj)i_t = \sigma (W_i x_t + U_i h_{t-1} + b_j) ot=σ(Woxt+Uoht1+bo)o_t = \sigma (W_o x_t + U_o h_{t-1} + b_o) ct=ftct1+ittanh(Wcxt+Ucht1+bc)c_t = f_t \odot c_{t-1} + i_t \odot \tanh (W_c x_t + U_c h_{t-1} + b_c)

missä:

  • ftf_t, iti_t ja oto_t ovat vastaavasti unohtamis-, syöttö- ja ulostuloportit;
  • ctc_t on muistiyksikkö, joka säilyttää pitkäaikaista tietoa;
  • σ\sigma tarkoittaa sigmoidifunktiota, joka tuottaa arvoja välillä 0 ja 1 mahdollistaen valikoivan tiedonkulun;
  • tanh\tanh on hyperbolinen tangenttifunktio, joka pitää arvot välillä -1 ja 1 päivityksen normalisoimiseksi.

LSTM:t säilyttävät tehokkaasti pitkäaikaisia riippuvuuksia, mikä tekee niistä erittäin tehokkaita sekventiaalisissa tehtävissä, kuten puheentunnistuksessa ja tekstin generoinnissa.

Gated Recurrent Units (GRU:t)

GRU

GRU:t yksinkertaistavat LSTM-verkkoja vähentämällä porttien määrää säilyttäen silti vahvan suorituskyvyn. Ne käyttävät:

  • Päivitysportti: säätelee, kuinka paljon aiemmasta tiedosta säilytetään;
  • Nollausportti: määrittää, kuinka paljon aiemmasta tiedosta jätetään huomiotta.

GRU-yhtälöt:

zt=σ(Wzxt+Uzht1+bz)z_t = \sigma (W_z x_t + U_z h_{t-1} + b_z) rt=σ(Wrxt+Urht1+br)r_t = \sigma(W_r x_t + U_r h_{t-1} + b_r) ht=(1zt)ht1+zttanh(Whxt+Uc(rtht1)+bh)h_t = (1 - z_t) \odot h_{t-1} + z_t \odot \tanh(W_h x_t + U_c (r_t \odot h_{t-1}) + b_h)

missä:

  • ztz_t (päivitysportti) tasapainottaa vanhan piilotilan ja uuden informaation välillä;
  • rtr_t (nollausportti) auttaa poistamaan epäolennaista aiempaa tietoa;
  • hth_t on päivitetty piilotila ajanhetkellä tt;
  • WW ja UU ovat painomatriiseja, ja bb on bias-termi;
  • \odot tarkoittaa elementtikohtaista kertolaskua.

GRU-verkot vaativat vähemmän parametreja kuin LSTM:t ja ovat laskennallisesti tehokkaita, mutta pystyvät silti käsittelemään pitkän aikavälin riippuvuuksia tehokkaasti.

Sekvenssien generointi RNN:illä

RNN-verkkoja käytetään laajasti sekvenssien generoinnissa, jossa verkko ennustaa seuraavan alkion sekvenssissä aiemman kontekstin perusteella. Yleisiä esimerkkejä ovat:

  • Tekstigenerointi: seuraavan sanan ennustaminen lauseessa;
  • Musiikin säveltäminen: melodioiden luominen annetun tyylin pohjalta;
  • Kuvatekstitys: kuvailevan tekstin tuottaminen kuville.

Esimerkki: Tekstigenerointi RNN:illä

  1. Koulutetaan RNN-verkko suurella tekstiaineistolla;
  2. Annetaan alkuun sana tai lause syötteenä;
  3. RNN ennustaa seuraavan sanan aiemman kontekstin perusteella;
  4. Ennustettu sana syötetään takaisin verkkoon seuraavaa ennustetta varten;
  5. Tätä prosessia toistetaan, kunnes muodostuu yhtenäinen sekvenssi;

Tätä tekniikkaa hyödynnetään sovelluksissa kuten chatbotit, tekoälypohjainen tarinankerronta ja automaattinen täydennys.

RNN-verkkojen sovellukset generatiivisessa tekoälyssä

RNN-verkkoja hyödynnetään useissa generatiivisen tekoälyn sovelluksissa:

  • Konekäännös: käytetty Google Translate -palvelun varhaisissa malleissa;
  • Puheentunnistus: muuntaa puhutun kielen tekstiksi (esim. Siri, Google Assistant);
  • Tekoälypohjainen sisällöntuotanto: generatiivisten tekoälymallien varhaiset versiot ennen transformereita;
  • Musiikin ja runojen generointi: tekoälymallit kuten OpenAI:n MuseNet tuottavat sävellyksiä eri tyyleissä.

Yhteenveto

RNN-verkot ovat keskeisiä jaksollisen datan käsittelyssä, mutta ne kohtaavat haasteita pitkän aikavälin riippuvuuksien kanssa johtuen häviävän gradientin ongelmasta. LSTM- ja GRU-verkot lieventävät tätä ongelmaa, mikä tekee RNN-verkoista tehokkaita generatiivisissa sovelluksissa kuten teksti, puhe ja musiikki. Kuitenkin nykyaikaiset arkkitehtuurit, kuten Transformerit, ovat suurelta osin korvanneet RNN-verkot huipputason generatiivisissa tekoälymalleissa niiden kyvyn ansiosta käsitellä pitkiä riippuvuuksia tehokkaammin.

1. Miten RNN eroaa syötteestä etenevästä neuroverkosta?

2. Miksi LSTM:t ja GRU:t ovat suositumpia kuin tavalliset RNN:t pitkillä sekvensseillä?

question mark

Miten RNN eroaa syötteestä etenevästä neuroverkosta?

Valitse oikea vastaus

question mark

Miksi LSTM:t ja GRU:t ovat suositumpia kuin tavalliset RNN:t pitkillä sekvensseillä?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

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

Osio 2. Luku 5
some-alt