stub Vad är transformatorneurala nätverk? - Unite.AI
Anslut dig till vårt nätverk!

AI 101

Vad är transformatorneurala nätverk?

mm
Uppdaterad on

Transformatorneurala nätverk beskrivs

Transformatorer är en typ av maskininlärningsmodell som är specialiserad på att bearbeta och tolka sekventiell data, vilket gör dem optimala för bearbetningsuppgifter för naturligt språk. För att bättre förstå vad en maskininlärningstransformator är och hur de fungerar, låt oss titta närmare på transformatormodeller och mekanismerna som driver dem.

Denna artikel kommer att omfatta:

  • Sekvens-till-sekvens-modeller
  • The Transformer Neural Network Architecture
  • Uppmärksamhetsmekanismen
  • Skillnader mellan transformatorer och RNN/LSTM

Sekvens-till-sekvens-modeller

Sekvens-till-sekvens-modeller är en typ av NLP-modell som används för att konvertera sekvenser av en typ till en sekvens av en annan typ. Det finns olika typer av sekvens-till-sekvens-modeller, som t.ex Återkommande neuralt nätverk modeller och Långt korttidsminne (LSTM) modeller.

Traditionella sekvens-till-sekvens-modeller som RNN och LSTMS är inte i fokus för den här artikeln, men en förståelse av dem är nödvändig för att förstå hur transformatormodeller fungerar och varför de är överlägsna traditionella sekvens-till-sekvens-modeller.

I korthet består RNN-modeller och LSTM-modeller av kodar- och avkodarnätverk som analyserar indata vid olika tidssteg. Kodarmodellen är ansvarig för att bilda en kodad representation av orden i indata. Vid varje tidssteg tar kodarnätverket en ingångssekvens och ett dolt tillstånd från föregående tidssteg i serien. De dolda tillståndsvärdena uppdateras allt eftersom data fortsätter genom nätverket, tills det sista tidssteget, där en "kontextvektor" genereras. Kontextvektorn skickas sedan till avkodarnätverket, vilket används för att generera en målsekvens genom att förutsäga det mest sannolika ordet som parar sig med inmatningsordet för respektive tidssteg.

Dessa modeller kan utökas genom att använda en "uppmärksamhetsmekanism”. En uppmärksamhetsmekanism definierar vilka delar av indatavektorn nätverket ska fokusera på för att generera rätt utdata. För att uttrycka det på ett annat sätt låter en uppmärksamhetsmekanism transformatormodellen bearbeta ett inmatningsord samtidigt som den tar hand om den relevanta informationen som finns i de andra inmatningsorden. Uppmärksamhetsmekanismer maskerar också ord som inte innehåller relevant information.

Transformator neural nätverksarkitektur

Vi kommer att gå in på uppmärksamhetsmekanismen mer i detalj senare, men låt oss nu ta en titt på arkitekturen hos ett transformatorneurala nätverk på en högre nivå.

I allmänhet ser ett transformatorneurala nätverk ut ungefär så här:

Även om denna allmänna struktur kan ändras mellan nätverk, kommer kärndelarna att förbli desamma: positionskodningar, ordvektorer, uppmärksamhetsmekanism, neurala nätverk för feed-forward.

Positionella kodningar och ordvektorer

En transformator neurala nätverk fungerar genom att ta en sekvens av ingångar och omvandla dessa ingångar till två andra sekvenser. Transformatorn producerar en sekvens av ordvektorinbäddningar och positionskodningar.

Word vektor inbäddningar är bara texten representerad i ett numeriskt format som det neurala nätverket kan bearbeta. Samtidigt är positionskodningarna vektoriserade representationer som innehåller information om positionen för det aktuella ordet var i inmatningsmeningen, i förhållande till andra ord.

Andra textbaserade neurala nätverksmodeller som RNN och LSTM använder vektorer för att representera orden i indata. Dessa vektorinbäddningar mappar ord till konstanta värden, men detta är begränsande eftersom ord kan användas i olika sammanhang. Ett transformatornätverk löser detta problem genom att göra ordvärden mer flexibla, genom att använda sinusformade funktioner för att låta ordvektorerna anta olika värden beroende på ordets position i meningen.

Detta tillåter den neurala nätverksmodellen att bevara information om den relativa positionen för inmatningsorden, även efter att vektorerna rör sig genom lagren i transformatornätverket.

Positionskodningarna och ordvektorinbäddningarna summeras och skickas sedan till både kodar- och avkodarnätverken. Medan transformatorns neurala nätverk använder kodnings-/avkodarscheman precis som RNN:er och LSTM:er, är en stor skillnad mellan dem att all indata matas in i nätverket samtidigt, medan i RNN:er/LSTM:er skickas data in sekventiellt.

Kodarnätverken ansvarar för att omvandla indata till representationer som nätverket kan lära sig av, medan avkodarnätverken gör tvärtom och omvandlar kodningarna till en sannolikhetsfördelning som används för att generera de mest sannolika orden i utmatningsmeningen. Avgörande är att både kodar- och avkodarnätverket har en uppmärksamhetsmekanism.

Eftersom GPU:er är kapabla till parallell bearbetning, används flera uppmärksamhetsmekanismer parallellt, som beräknar relevant information för alla inmatningsord. Denna förmåga att uppmärksamma flera ord, kallad "multi-head" uppmärksamhet, samtidigt hjälper det neurala nätverket att lära sig sammanhanget för ett ord i en mening, och det är en av de främsta fördelarna som transformatornätverk har jämfört med RNN:er och LSTM:er.

Uppmärksamhetsmekanismen

Uppmärksamhetsmekanismen är den viktigaste delen av ett transformatornätverk. Uppmärksamhetsmekanismen är det som gör det möjligt för transformatormodeller att gå utöver uppmärksamhetsgränsen för en typisk RNN- eller LSTM-modell. Traditionella sekvens-till-sekvens-modeller förkastar alla mellantillstånd och använder endast den slutliga tillstånds-/kontextvektorn vid initialisering av avkodarnätverket för att generera förutsägelser om en ingångssekvens.

Att kassera allt utom den slutliga kontextvektorn fungerar okej när inmatningssekvenserna är ganska små. Men när längden på en ingångssekvens ökar, kommer modellens prestanda att försämras när den här metoden används. Detta beror på att det blir ganska svårt att sammanfatta en lång ingångssekvens som en enda vektor. Lösningen är att öka modellens "uppmärksamhet" och använda de mellanliggande kodartillstånden för att konstruera kontextvektorer för avkodaren.

Uppmärksamhetsmekanismen definierar hur viktiga andra inmatningstoken är för modellen när kodningar skapas för en given token. Till exempel är "det" ett allmänt pronomen som ofta används för att hänvisa till djur när deras kön inte är känt. En uppmärksamhetsmekanism skulle låta en transformatormodell avgöra att i det aktuella sammanhanget "det" hänvisar till en ekorre, eftersom den kan undersöka alla relevanta ord i inmatningsmeningen.

En uppmärksamhetsmekanism kan användas på tre olika sätt: kodare-till-avkodare, endast kodare, endast avkodare.

Kodar-avkodaruppmärksamhet låter avkodaren överväga ingångssekvenser när den genererar en utdata, medan uppmärksamhetsmekanismerna endast för kodare och endast avkodare låter nätverken beakta alla delar av föregående respektive aktuella sekvenser.

Konstruktionen av en uppmärksamhetsmekanism kan delas in i fem steg:

  1. Beräknar en poäng för alla kodartillstånd.
  2. Beräkna uppmärksamhetsvikterna
  3. Beräkna kontextvektorer
  4. Uppdaterar kontextvektorn med föregående tidsstegsutgång
  5. Generera utdata med avkodare

Det första steget är att låta avkodaren beräkna en poäng för alla kodartillstånden. Detta görs genom att träna avkodarnätverket, som är ett grundläggande neuralt nätverk för feed-forward. När avkodaren tränas på det första ordet i inmatningssekvensen har inget internt/dolt tillstånd skapats ännu, så kodarens sista tillstånd används vanligtvis som avkodarens tidigare tillstånd.

För att beräkna uppmärksamhetsvikterna används en softmax-funktion för att generera en probabilistisk fördelning för uppmärksamhetsvikterna.

När uppmärksamhetsvikterna väl har beräknats måste kontextvektorn beräknas. Detta görs genom att multiplicera uppmärksamhetsvikterna och det dolda tillståndet tillsammans för varje tidssteg.

Efter att kontextvektorn har beräknats används den tillsammans med ordet som genererades i föregående tidssteg för att generera nästa ord i utdatasekvensen. Eftersom avkodaren inte har någon tidigare utmatning att referera till i det första tidssteget, används ofta en speciell "start"-token istället.

Skillnader mellan transformatorer och RNN/LSTM

Låt oss snabbt täcka några av skillnaderna mellan RNN och LSTM.

RNN:er bearbetar ingångar sekventiellt, medan en dold tillståndsvektor bibehålls och ändras av inmatningsorden när de rör sig genom nätverket. De dolda tillstånden för en RNN innehåller vanligtvis mycket lite relevant information om de tidigare ingångarna. Nya ingångar skriver ofta över det nuvarande tillståndet, vilket orsakar informationsförlust och försämrar prestandan med tiden.

Däremot behandlar transformatormodeller hela ingångssekvensen på en gång. Uppmärksamhetsmekanismen gör att varje utmatat ord kan informeras av varje inmatning och dolt tillstånd, vilket gör nätverket mer tillförlitligt för långa textstycken.

LSTM:er är modifierade versioner av RNN:er, justerade för att hantera längre inmatningssekvenser. LSTM-arkitekturen använder en struktur som kallas "gates", med "ingångsgrindar", "utgångsgrindar" och "glömgrindar". Den gated designen hanterar informationsförlusten som är vanlig för RNN-modeller. Data bearbetas fortfarande sekventiellt, och arkitekturens återkommande design gör LSTM-modeller svåra att träna med hjälp av parallell beräkning, vilket gör träningstiden totalt sett längre.

LSTM-ingenjörer lade ofta till uppmärksamhetsmekanismer till nätverket, vilket var känt för att förbättra modellens prestanda. Emellertid upptäcktes det så småningom att uppmärksamhetsmekanismen ensam förbättrade noggrannheten. Denna upptäckt ledde till skapandet av transformatornätverk som använde uppmärksamhetsmekanismer och parallell beräkning tack vare GPU:er.

Bloggare och programmerare med specialiteter inom Maskininlärning och Deep Learning ämnen. Daniel hoppas kunna hjälpa andra att använda kraften i AI för socialt bästa.