stub Kas yra transformatorių neuroniniai tinklai? - Vienykitės.AI
Susisiekti su mumis
AI meistriškumo klasė:

AI 101 m

Kas yra transformatorių neuroniniai tinklai?

mm
Atnaujinta on

Aprašyti transformatorių neuroniniai tinklai

transformeriai yra mašininio mokymosi modelio tipas, kurio specializacija yra nuoseklių duomenų apdorojimas ir interpretavimas, todėl jie yra optimalūs natūralios kalbos apdorojimo užduotims. Norėdami geriau suprasti, kas yra mašininio mokymosi transformatorius ir kaip jie veikia, atidžiau pažvelkime į transformatorių modelius ir juos valdančius mechanizmus.

Šis straipsnis apims:

  • Sekos prie sekos modeliai
  • Transformatoriaus neuroninio tinklo architektūra
  • Dėmesio mechanizmas
  • Skirtumai tarp transformatorių ir RNN / LSTM

Sekos prie sekos modeliai

Sekos į seką modeliai yra NLP modelio tipas, naudojamas konvertuoti vieno tipo sekas į kito tipo sekas. Yra įvairių tipų sekos į seką modeliai, pvz Pasikartojantis neuroninis tinklas modeliai ir Ilgalaikė trumpalaikė atmintis (LSTM) modeliai.

Šiame straipsnyje pagrindinis dėmesys skiriamas tradiciniams iš sekos į seką modeliams, tokiems kaip RNN ir LSTMS, tačiau norint suprasti, kaip veikia transformatorių modeliai ir kodėl jie yra pranašesni už tradicinius iš sekos į seką modelius, būtina juos suprasti.

Trumpai tariant, RNN modeliai ir LSTM modeliai susideda iš kodavimo ir dekodavimo tinklų, kurie analizuoja įvesties duomenis įvairiais laiko etapais. Kodavimo modelis yra atsakingas už koduoto žodžių atvaizdo formavimą įvesties duomenyse. Kiekviename laiko žingsnyje koduotuvo tinklas perima įvesties seką ir paslėptą būseną iš ankstesnio serijos laiko žingsnio. Paslėptos būsenos reikšmės atnaujinamos, kai duomenys perduodami tinkle, iki paskutinio laiko etapo, kai sugeneruojamas „konteksto vektorius“. Tada konteksto vektorius perduodamas dekoderio tinklui, kuris naudojamas tikslinei sekai sugeneruoti, numatant labiausiai tikėtiną žodį, susijusį su įvesties žodžiu atitinkamais laiko žingsniais.

Šiuos modelius galima papildyti naudojant „dėmesio mechanizmas“. Dėmesio mechanizmas apibrėžia, į kurias įvesties vektoriaus dalis tinklas turėtų sutelkti dėmesį, kad generuotų tinkamą išvestį. Kitaip tariant, dėmesio mechanizmas leidžia transformatoriaus modeliui apdoroti vieną įvesties žodį, o taip pat atsižvelgti į atitinkamą informaciją, esančią kituose įvesties žodžiuose. Dėmesio mechanizmai taip pat užmaskuoja žodžius, kuriuose nėra svarbios informacijos.

Transformatoriaus neuroninio tinklo architektūra

Išsamiau pakalbėsime apie dėmesio mechanizmą, bet dabar pažvelkime į jį transformatoriaus neuroninio tinklo architektūra aukštesniame lygyje.

Apskritai transformatoriaus neuroninis tinklas atrodo maždaug taip:

Nors ši bendra struktūra gali keistis tarp tinklų, pagrindinės dalys išliks tokios pačios: padėties kodavimas, žodžių vektoriai, dėmesio mechanizmas, nukreipimo į priekį neuroninis tinklas.

Pozicijos kodavimas ir žodžių vektoriai

Veikia transformatorius neuroniniai tinklai imdami įvesties seką ir konvertuodami šias įvestis į dvi kitas sekas. Transformatorius sukuria žodžių vektorių įterpimų ir padėties kodavimo seką.

Žodžių vektorinis įterpimas yra tik tekstas, pateiktas skaitmeniniu formatu, kurį neuroninis tinklas gali apdoroti. Tuo tarpu padėties kodavimas yra vektorizuotas vaizdas, kuriame yra informacija apie dabartinio žodžio padėtį įvesties sakinyje, palyginti su kitais žodžiais.

Kiti tekstu pagrįsti neuroninių tinklų modeliai, tokie kaip RNN ir LSTM, naudoja vektorius, kad atvaizduotų žodžius įvesties duomenyse. Šie vektoriniai įterpimai susieja žodžius su pastoviomis reikšmėmis, tačiau tai riboja, nes žodžiai gali būti naudojami skirtinguose kontekstuose. Transformatorių tinklas išsprendžia šią problemą, padarydamas žodžių reikšmes lankstesnes, naudodamas sinusoidines funkcijas, kad žodžių vektoriai įgytų skirtingas reikšmes, priklausomai nuo žodžio padėties sakinyje.

Tai leidžia neuroninio tinklo modeliui išsaugoti informaciją apie santykinę įvesties žodžių padėtį, net ir vektoriams judant transformatoriaus tinklo sluoksniuose.

Padėties kodavimas ir žodžių vektoriaus įterpimas sumuojami, tada perduodami tiek kodavimo, tiek dekoderio tinklui. Nors transformatorių neuroniniai tinklai naudoja kodavimo / dekodavimo schemas, kaip ir RNN ir LSTM, vienas esminis skirtumas tarp jų yra tas, kad visi įvesties duomenys į tinklą įvedami tuo pačiu metu, o RNN / LSTM duomenys perduodami nuosekliai.

Kodavimo tinklai yra atsakingi už įvesties konvertavimą į reprezentacijas, iš kurių tinklas gali mokytis, o dekodavimo tinklai elgiasi priešingai ir konvertuoja koduotes į tikimybių skirstinį, naudojamą generuojant labiausiai tikėtinus žodžius išvesties sakinyje. Svarbiausia, kad tiek kodavimo, tiek dekoderio tinklai turi dėmesio mechanizmą.

Kadangi GPU gali lygiagrečiai apdoroti, lygiagrečiai naudojami keli dėmesio mechanizmai, apskaičiuojant atitinkamą informaciją apie visus įvesties žodžius. Ši galimybė vienu metu atkreipti dėmesį į kelis žodžius, vadinama kelių galvų dėmesiu, padeda neuroniniam tinklui išmokti žodžio kontekstą sakinyje, ir tai yra vienas iš pagrindinių transformatorių tinklų pranašumų, palyginti su RNN ir LSTM.

Dėmesio mechanizmas

Dėmesio mechanizmas yra svarbiausia transformatorių tinklo dalis. Dėmesio mechanizmas yra tai, kas leidžia transformatorių modeliams peržengti įprasto RNN arba LSTM modelio dėmesio ribą. Tradiciniai iš sekos į seką modeliai atmeta visas tarpines būsenas ir naudoja tik galutinę būseną / konteksto vektorių, kai inicijuoja dekoderio tinklą, kad sukurtų prognozes apie įvesties seką.

Visko, išskyrus galutinį konteksto vektorių, atmetimas veikia gerai, kai įvesties sekos yra gana mažos. Tačiau didėjant įvesties sekos trukmei, naudojant šį metodą modelio našumas pablogės. Taip yra todėl, kad tampa gana sunku apibendrinti ilgą įvesties seką kaip vieną vektorių. Sprendimas yra padidinti modelio „dėmesį“ ir panaudoti tarpines kodavimo būsenas, kad būtų sukurti dekoderio konteksto vektoriai.

Dėmesio mechanizmas apibrėžia, kiek modeliui svarbūs kiti įvesties žetonai, kai kuriamos bet kurio duoto žetono koduotės. Pavyzdžiui, „tai“ yra bendras įvardis, dažnai vartojamas kalbant apie gyvūnus, kai jų lytis nežinoma. Dėmesio mechanizmas leistų transformatoriaus modeliui nustatyti, kad dabartiniame kontekste „jis“ reiškia voverę, nes jis gali ištirti visus atitinkamus žodžius įvesties sakinyje.

Dėmesio mechanizmas gali būti naudojamas trimis skirtingais būdais: kodavimo į dekoderis, tik koduotuvas, tik dekoderis.

Encoder-decoder dėmesys leidžia dekoderiui atsižvelgti į įvesties sekas generuodamas išvestį, o tik kodavimo ir tik dekoderio dėmesio mechanizmai leidžia tinklams atitinkamai atsižvelgti į visas ankstesnių ir dabartinių sekų dalis.

Dėmesio mechanizmo konstravimą galima suskirstyti į penkis etapus:

  1. Apskaičiuojamas visų koduotuvo būsenų balas.
  2. Dėmesio svarmenų skaičiavimas
  3. Konteksto vektorių skaičiavimas
  4. Atnaujinamas konteksto vektorius su ankstesnio laiko žingsnio išvestimi
  5. Išvesties generavimas naudojant dekoderį

Pirmiausia reikia, kad dekoderis apskaičiuotų visų kodavimo būsenų balą. Tai atliekama mokant dekoderio tinklą, kuris yra pagrindinis nukreipiamasis neuroninis tinklas. Kai dekoderis išmokomas naudoti pirmąjį įvesties sekos žodį, vidinė / paslėpta būsena dar nesukurta, todėl paskutinė kodavimo įrenginio būsena paprastai naudojama kaip ankstesnė dekoderio būsena.

Norint apskaičiuoti dėmesio svorius, naudojama softmax funkcija, kuri sukuria tikimybinį dėmesio svorių skirstinį.

Apskaičiavus dėmesio svarmenis, reikia apskaičiuoti konteksto vektorių. Tai daroma padauginus dėmesio svorius ir paslėptą būseną kiekvienam laiko žingsniui.

Apskaičiavus konteksto vektorių, jis naudojamas kartu su žodžiu, sugeneruotu ankstesniame laiko veiksme, kad būtų sugeneruotas kitas žodis išvesties sekoje. Kadangi dekoderis neturi ankstesnės išvesties, kuria būtų galima remtis pirmą kartą, vietoj jos dažnai naudojamas specialus „pradžios“ prieigos raktas.

Skirtumai tarp transformatorių ir RNN / LSTM

Greitai apžvelgsime kai kuriuos skirtumus tarp RNN ir LSTM.

RNN apdoroja įvestis nuosekliai, o paslėptą būsenos vektorių palaiko ir keičia įvesties žodžiai, kai jie juda tinkle. Paslėptose RNN būsenose paprastai yra labai mažai svarbios informacijos apie ankstesnes įvestis. Naujos įvesties dažnai perrašo esamą būseną, todėl laikui bėgant prarandama informacija ir pablogėja našumas.

Priešingai, transformatorių modeliai apdoroja visą įvesties seką vienu metu. Dėmesio mechanizmas leidžia informuoti kiekvieną išvesties žodį pagal kiekvieną įvestį ir paslėptą būseną, todėl tinklas yra patikimesnis ilgoms teksto dalims.

LSTM yra modifikuota RNN versija, pritaikyta tvarkyti ilgesnes įvesties sekas. LSTM architektūra naudoja struktūrą, vadinamą „vartais“, su „įvesties vartais“, „išvesties vartais“ ir „pamiršti vartais“. Apribotas dizainas susijęs su informacijos praradimu, būdingu RNN modeliams. Duomenys vis dar apdorojami nuosekliai, o dėl pasikartojančios architektūros konstrukcijos LSTM modelius sunku treniruoti naudojant lygiagretųjį skaičiavimą, todėl bendras mokymo laikas pailgėja.

LSTM inžinieriai dažnai įtraukdavo dėmesį į tinklą, o tai, kaip žinoma, pagerino modelio veikimą. Tačiau galiausiai buvo nustatyta, kad vien dėmesio mechanizmas pagerino tikslumą. Šis atradimas paskatino sukurti transformatorių tinklus, kuriuose GPU dėka buvo naudojami dėmesio mechanizmai ir lygiagretus skaičiavimas.