tynkä Mitä ovat muuntajahermoverkot? - Unite.AI
Liity verkostomme!

AI 101

Mitä ovat muuntajahermoverkot?

mm
Päivitetty on

Muuntajan hermoverkot kuvattu

Muuntajat ovat eräänlainen koneoppimismalli, joka on erikoistunut peräkkäisten tietojen käsittelyyn ja tulkintaan, mikä tekee niistä optimaaliset luonnollisen kielen käsittelytehtäviin. Ymmärtääksemme paremmin, mitä koneoppiva muuntaja on ja miten ne toimivat, katsotaanpa tarkemmin muuntajamalleja ja niitä käyttäviä mekanismeja.

Tämä artikkeli kattaa:

  • Jaksosta sekvenssiin -mallit
  • Muuntajan hermoverkkoarkkitehtuuri
  • Huomiomekanismi
  • Erot muuntajien ja RNN:iden/LSTM:ien välillä

Jaksosta sekvenssiin -mallit

Sekvenssistä sekvenssiin -mallit ovat eräänlainen NLP-malli, jota käytetään muuntamaan yhden tyyppiset sekvenssit toisen tyyppisiksi sarjoiksi. Sarjasta sekvenssiin -malleja on erilaisia, kuten Toistuva hermoverkko malleja ja Pitkä lyhytaikainen muisti (LSTM) malleja.

Perinteiset sekvenssistä sekvenssiin -mallit, kuten RNN:t ja LSTMS, eivät ole tämän artikkelin keskipisteessä, mutta niiden ymmärtäminen on välttämätöntä, jotta voidaan ymmärtää, kuinka muuntajamallit toimivat ja miksi ne ovat parempia kuin perinteiset sekvenssistä sekvenssiin -mallit.

Lyhyesti sanottuna RNN-mallit ja LSTM-mallit koostuvat enkooderi- ja dekooderiverkoista, jotka analysoivat tulodataa eri aikavaiheissa. Enkooderimalli on vastuussa syötetietojen sanojen koodatun esityksen muodostamisesta. Joka aikavaiheessa enkooderiverkko ottaa syöttösekvenssin ja piilotetun tilan sarjan edellisestä aikavaiheesta. Piilotetun tilan arvot päivitetään tiedon edetessä verkon läpi viimeiseen aikavaiheeseen asti, jossa luodaan "kontekstivektori". Kontekstivektori välitetään sitten dekooderiverkkoon, jota käytetään kohdesekvenssin luomiseen ennustamalla todennäköisin sana, joka pariutuu syöttösanan kanssa vastaaville aikavaiheille.

Näitä malleja voidaan laajentaa käyttämällä "huomiomekanismi”. Huomiomekanismi määrittää, mihin tulovektorin osiin verkon tulisi keskittyä oikean lähdön luomiseksi. Toisin sanoen huomiomekanismi antaa muuntajamallin käsitellä yhtä syöttösanaa samalla kun se huolehtii muiden syöttösanojen sisältämistä oleellisista tiedoista. Huomiomekanismit peittävät myös sanat, jotka eivät sisällä oleellista tietoa.

Muuntajan hermoverkkoarkkitehtuuri

Käsittelemme huomiomekanismia tarkemmin myöhemmin, mutta nyt katsotaanpa sitä muuntajan hermoverkon arkkitehtuuri korkeammalla tasolla.

Yleensä muuntajan neuroverkko näyttää tältä:

Vaikka tämä yleinen rakenne voi vaihdella verkkojen välillä, ydinkappaleet pysyvät samoina: sijaintikoodaukset, sanavektorit, huomiomekanismi, eteenpäin syöttöhermoverkko.

Paikkakoodaukset ja sanavektorit

Muuntaja neuroverkko toimii ottamalla syötteiden sarja ja muuntamalla nämä syötteet kahdeksi muuksi sekvenssiksi. Muuntaja tuottaa sarjan sanavektorin upotuksia ja paikkakoodauksia.

Word-vektori upotukset ovat vain tekstiä, joka esitetään numeerisessa muodossa, jonka hermoverkko voi käsitellä. Samaan aikaan sijaintikoodaukset ovat vektoroituja esityksiä, jotka sisältävät tietoa nykyisen sanan sijainnista syöttölauseessa suhteessa muihin sanoihin.

Muut tekstipohjaiset hermoverkkomallit, kuten RNN:t ja LSTM:t, käyttävät vektoreita kuvaamaan syöttötiedon sanoja. Nämä vektori upotukset yhdistävät sanat vakioarvoihin, mutta tämä on rajoittavaa, koska sanoja voidaan käyttää eri yhteyksissä. Muuntajaverkko ratkaisee tämän ongelman tekemällä sanaarvoista joustavampia, käyttämällä sinimuotoisia funktioita, jotta sanavektorit saavat eri arvoja riippuen sanan sijainnista lauseessa.

Tämä mahdollistaa hermoverkkomallin säilyttämisen tiedon tulosanojen suhteellisesta sijainnista, vaikka vektorit liikkuvat muuntajaverkon kerrosten läpi.

Paikkakoodaukset ja sanavektorin upotukset lasketaan yhteen ja siirretään sitten sekä kooderi- että dekooderiverkkoihin. Vaikka muuntajahermoverkot käyttävät kooderi/dekooderiskeemoja aivan kuten RNN:t ja LSTM:t, yksi suuri ero niiden välillä on, että kaikki tulodata syötetään verkkoon samanaikaisesti, kun taas RNN:issä/LSTM:issä tiedot välitetään peräkkäin.

Enkooderiverkot ovat vastuussa syötteiden muuntamisesta esityksiksi, joista verkko voi oppia, kun taas dekooderiverkot tekevät päinvastoin ja muuntavat koodaukset todennäköisyysjakaumaksi, jota käytetään tuottamaan todennäköisimpiä sanoja ulostulolauseessa. Ratkaisevaa on, että sekä kooderi- että dekooderiverkoissa on huomiomekanismi.

Koska GPU:t pystyvät rinnakkaiseen prosessointiin, useita huomiomekanismeja käytetään rinnakkain, jotka laskevat kaikkien syöttösanojen olennaiset tiedot. Tämä kyky kiinnittää huomiota useisiin sanoihin, jota kutsutaan "monipääksi" huomioimiseksi, auttaa hermoverkkoa oppimaan lauseessa olevan sanan kontekstin, ja se on yksi muuntajaverkkojen tärkeimmistä eduista RNN- ja LSTM-verkkoihin verrattuna.

Huomiomekanismi

Huomiomekanismi on muuntajaverkon tärkein osa. Huomiomekanismi on se, mikä mahdollistaa muuntajamallien ylittämisen tyypillisen RNN- tai LSTM-mallin huomiorajan. Perinteiset sekvenssistä sekvenssiin -mallit hylkäävät kaikki välitilat ja käyttävät vain lopullista tila/kontekstivektoria dekooderiverkkoa alustettaessa ennusteiden tuottamiseksi tulosekvenssistä.

Kaiken paitsi lopullisen kontekstivektorin hylkääminen toimii hyvin, kun syöttösekvenssit ovat melko pieniä. Mutta kun syöttösekvenssin pituus kasvaa, mallin suorituskyky heikkenee tätä menetelmää käytettäessä. Tämä johtuu siitä, että pitkän syötesekvenssin yhteenveto yhdeksi vektoriksi tulee melko vaikeaksi. Ratkaisu on lisätä mallin "huomiota" ja hyödyntää kooderin välitiloja kontekstivektoreiden rakentamiseen dekooderille.

Huomiomekanismi määrittää, kuinka tärkeitä muut syöttötunnukset ovat mallille, kun mille tahansa tunnukselle luodaan koodauksia. Esimerkiksi "se" on yleinen pronomini, jota käytetään usein viittaamaan eläimiin, kun niiden sukupuolta ei tiedetä. Huomiomekanismi antaisi muuntajamallin määrittää, että nykyisessä kontekstissa "se" viittaa oravaan, koska se pystyy tutkimaan kaikkia syöttölauseen merkityksellisiä sanoja.

Huomiomekanismia voidaan käyttää kolmella eri tavalla: enkooderista dekooderille, vain enkooderille ja vain dekooderille.

Enkooderi-dekooderi huomio sallii dekooderin ottaa huomioon syöttösekvenssit tuottaessaan lähtöä, kun taas vain kooderi- ja vain dekooderi -tarkistusmekanismit sallivat verkkojen ottaa huomioon edellisen ja nykyisen sekvenssin kaikki osat.

Huomiomekanismin rakentaminen voidaan jakaa viiteen vaiheeseen:

  1. Pisteiden laskeminen kaikille kooderin tiloille.
  2. Huomiopainojen laskeminen
  3. Kontekstivektorien laskeminen
  4. Päivitetään kontekstivektoria edellisellä aikaaskeltulolla
  5. Tuotteiden tuottaminen dekooderilla

Ensimmäinen vaihe on saada dekooderi laskemaan pisteet kaikille kooderin tiloille. Tämä tehdään kouluttamalla dekooderiverkko, joka on perussyöttöinen neuroverkko. Kun dekooderi on opetettu syöttösekvenssin ensimmäiselle sanalle, sisäistä/piilotettua tilaa ei ole vielä luotu, joten kooderin viimeistä tilaa käytetään tyypillisesti dekooderin edellisenä tilana.

Huomiopainojen laskemiseksi käytetään softmax-funktiota todennäköisyysjakauman luomiseen huomiopainoille.

Kun huomiopainot on laskettu, kontekstivektori on laskettava. Tämä tehdään kertomalla huomiopainot ja piilotila yhdessä jokaisessa aikavaiheessa.

Kun kontekstivektori on laskettu, sitä käytetään edellisessä aikavaiheessa luodun sanan rinnalla tulossekvenssin seuraavan sanan luomiseen. Koska dekooderilla ei ole aikaisempaa lähtöä, johon viitata ensimmäisessä aikavaiheessa, sen sijaan käytetään usein erityistä "aloitus" -tunnusta.

Erot muuntajien ja RNN:iden/LSTM:ien välillä

Selvitetään nopeasti joitain eroja RNN:iden ja LSTM:ien välillä.

RNN:t käsittelevät syötteitä peräkkäin, kun taas syöttösanat ylläpitävät ja muuttavat piilotilavektoria niiden liikkuessa verkon läpi. RNN:n piilotilat sisältävät tyypillisesti hyvin vähän relevanttia tietoa aikaisemmista tuloista. Uudet tulot korvaavat usein nykyisen tilan, mikä aiheuttaa tietojen menetyksen ja heikentää suorituskykyä ajan myötä.

Sitä vastoin muuntajamallit käsittelevät koko tulosekvenssin kerralla. Huomiomekanismi mahdollistaa jokaisen ulostulosanan ilmoittamisen jokaisesta syötteestä ja piilotilasta, mikä tekee verkosta luotettavamman pitkille tekstinpäille.

LSTM:t ovat muunneltuja versioita RNN:istä, jotka on säädetty käsittelemään pidempiä syöttösarjoja. LSTM-arkkitehtuuri käyttää rakennetta nimeltä "portit", jossa on "tuloportit", "lähtöportit" ja "unohda portit". Aidattu malli käsittelee RNN-malleille yhteistä tiedonhäviötä. Dataa käsitellään edelleen peräkkäin, ja arkkitehtuurin toistuva suunnittelu vaikeuttaa LSTM-mallien harjoittelua rinnakkaislaskennan avulla, mikä pidentää harjoitusaikaa kokonaisuudessaan.

LSTM-insinöörit lisäsivät verkkoon usein huomiomekanismeja, joiden tiedettiin parantavan mallin suorituskykyä. Lopulta kuitenkin havaittiin, että huomiomekanismi yksin paransi tarkkuutta. Tämä löytö johti muuntajaverkkojen luomiseen, jotka käyttivät huomiomekanismeja ja rinnakkaislaskentaa GPU:iden ansiosta.