Esittelyssä toistuvat hermoverkot (RNN)

Toistuva hermoverkko on yhden tyyppinen keinotekoinen hermoverkko (ANN), ja sitä käytetään luonnollisen kielenkäsittelyn (NLP) ja puheentunnistuksen sovellusalueilla. RNN-malli on suunniteltu tunnistamaan datan peräkkäiset ominaisuudet ja käyttämään sen jälkeen malleja ennustamaan tulevaa skenaariota.

Toistuvien hermoverkkojen toiminta

Kun puhumme perinteisistä hermoverkoista, kaikki ulostulot ja tulot ovat toisistaan ​​riippumattomia, kuten alla olevassa kaaviossa esitetään:

Mutta toistuvien hermoverkkojen tapauksessa edellisten vaiheiden lähtö syötetään nykyisen tilan tuloon. Esimerkiksi minkä tahansa sanan seuraavan kirjaimen ennustamiseksi tai lauseen seuraavan sanan ennustamiseksi on muistettava aiemmat kirjaimet tai sanat ja tallennettava ne jossain muodossa muistiin.

Piilotettu kerros muistaa joitain tietoja sekvenssistä. Yksinkertainen tosielämän esimerkki, johon voimme liittää RNN: n, on, kun katsomme elokuvaa ja monissa tapauksissa pystymme ennustamaan, mitä tapahtuu seuraavaksi, mutta entä jos joku juuri liittyi elokuvaan ja häntä pyydetään ennustamaan, mitä tapahtuu seuraavaksi? Mikä on hänen vastauksensa? Hänellä ei ole aavistustakaan, koska he eivät ole tietoisia elokuvan aikaisemmista tapahtumista eikä heillä ole mitään muistia siitä.

Alla on esimerkki tyypillisestä RNN-mallista:

RNN-malleilla on muisti, joka muistaa aina edellisissä vaiheissa tehdyn ja lasketun. Kaikille tuloille suoritetaan sama tehtävä ja RNN käyttää samaa parametria jokaiselle tulolle. Koska perinteisellä hermostoverkolla on itsenäiset tulo- ja lähtöjoukot, ne ovat monimutkaisempia kuin RNN.

Yritämme nyt ymmärtää toistuvaa hermoverkkoa esimerkin avulla.

Oletetaan, että meillä on hermoverkko, jossa on 1 tulokerros, 3 piilotettua kerrosta ja 1 lähtökerros.

Kun puhumme muista tai perinteisistä hermoverkoista, heillä on omat painotettujen kerrostensa painotukset ja painot, kuten (w1, b1) piilotetulle kerrokselle 1, (w2, b2) piilotetulle kerrokselle 2 ja (w3, b3) ) kolmannelle piilotetulle kerrokselle, missä: w1, w2 ja w3 ovat painoja ja, b1, b2 ja b3 ovat painotuksia.

Tämän perusteella voidaan sanoa, että jokainen kerros ei ole riippuvainen toisistaan ​​ja että he eivät muista mitään edellisestä syötteestä:

Nyt RNN tekee seuraavan:

  • Riippumattomat kerrokset muunnetaan riippuvaiseksi kerrokseksi. Tämä tapahtuu tarjoamalla samat esijännitteet ja painot kaikille tasoille. Tämä vähentää myös parametrien ja kerrosten määrää toistuvassa hermoverkossa ja auttaa RNN: tä muistamaan edellisen ulostulon lähettämällä edellisen ulostulon tulevan piilotetun kerroksen tuloksi.
  • Yhteenvetona voidaan todeta, että kaikki piilotetut kerrokset voidaan yhdistää yhdeksi toistuvaksi kerrokseksi siten, että kaikkien piilotettujen kerrosten painot ja esijännitteet ovat samat.
    Joten toistuva hermoverkko näyttää seuraavalta:

Nyt on aika käsitellä joitain RNN-mallin yhtälöitä.

  • Nykyisen tilan laskemiseksi

h t= f (h t-1, x t ),

Missä:

x t on tulotila
h t-1 on edellinen tila,
h t on nykyinen tila.

  • Aktivointitoiminnon laskemiseksi

h t= tanh (W hh h t-1 +W xh x t ),

Missä:
W xh on syöttöneuronin paino,

Whh on toistuvan neuronin paino.

  • Tuotannon laskemiseksi:

Y t =W hy h t.

Missä,
Y t on lähtö ja
W hy on lähtökerroksen paino.

Vaiheet toistuvan hermoverkon kouluttamiseen

  1. Tulokerroissa alkuperäinen tulo lähetetään kaikilla, joilla on sama paino ja aktivointitoiminto.
  2. Nykyinen tila lasketaan käyttämällä nykyistä tuloa ja edellistä tilan ulostuloa.
  3. Nyt nykyisestä tilasta h t tulee h t-1 toisen kerran.
  4. Tämä jatkaa kaikkien vaiheiden toistamista ja tietyn ongelman ratkaisemiseksi, se voi jatkua niin monta kertaa, että liittyä kaikkien edellisten vaiheiden tietoihin.
  5. Viimeinen vaihe lasketaan sitten lopputilan nykyisen tilan ja kaikkien muiden aikaisempien vaiheiden perusteella.
  6. Nyt syntyy virhe laskemalla ero todellisen ja RNN-mallimme tuottaman tuotoksen välillä.
  7. Viimeinen vaihe on, kun tapahtuu jälkivalmisteluprosessi, jossa virhe propagoidaan painojen päivittämiseksi.

Toistuvien hermoverkkojen edut

  1. RNN voi käsitellä minkä tahansa pituisia tuloja.
  2. RNN-malli on mallinnettu muistamaan kaikki tiedot koko ajan, mikä on erittäin hyödyllistä kaikissa aikasarjojen ennustajissa.
  3. Vaikka syöttökoko olisi suurempi, mallin koko ei kasva.
  4. Painot voidaan jakaa ajan vaiheiden välillä.
  5. RNN voi käyttää sisäistä muistiansa mielivaltaisten sisääntulosarjojen prosessointiin, mikä ei ole tilanne eteenpäin suunnatuissa hermoverkoissa.

Toistuvien hermoverkkojen haitat

  1. Toistuvan luonteensa vuoksi laskenta on hidasta.
  2. RNN-mallien koulutus voi olla vaikeaa.
  3. Jos käytämme aktivointitoimintoina relu- tai tanhia, siitä tulee erittäin vaikeaa prosessoida erittäin pitkiä sekvenssejä.
  4. Alttiita sellaisille ongelmille kuin räjähtäminen ja kaltevuuden häviäminen.

johtopäätös

Tässä artikkelissa olemme oppineet toisen tyyppisen keinotekoisen hermoverkon, nimeltään toistuva hermoverkko, olemme keskittyneet pääeroon, joka tekee RNN: stä erotettavissa muun tyyppisistä hermoverkoista, alueisiin, joissa sitä voidaan käyttää laajasti, kuten puheentunnistuksessa. ja NLP (luonnollinen kielenkäsittely). Lisäksi olemme menneet sellaisten RNN-mallien ja toimintojen takana, joita käytetään rakentamaan vankka RNN-malli.

Suositellut artikkelit

Tämä on opas toistuviin hermoverkkoihin. Tässä keskustellaan RNN: n johdannosta, sen toiminnasta, vaiheista, eduista ja haitoista jne. Voit myös käydä läpi muita ehdottamiasi artikkeleitamme saadaksesi lisätietoja -
  1. Mikä on hermoverkot?
  2. Koneoppiminen
  3. Johdatus tekoälyyn
  4. Johdanto Big Data Analyticsiin
  5. Neuraaliverkkojen toteutus

Luokka: