Connect with us

AI 101

Vad är Transformer Neurala Nätverk?

mm

Transformer Neurala Nätverk Beskrivna

Transformers är en typ av maskinlärningsmodell som specialiserar sig på att bearbeta och tolka sekventiell data, vilket gör dem optimala för uppgifter inom naturligt språkbehandling. För att bättre förstå vad en maskinlärningstransformator är och hur de fungerar, låt oss ta en närmare titt på transformermodeller och de mekanismer som driver dem.

Denna artikel kommer att täcka:

  • Sekvens-till-Sekvens-Modeller
  • Transformer Neurala Nätverksarkitektur
  • Uppmärksamhetsmekanismen
  • Skillnader Mellan Transformers och RNNs/LSTMs

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, såsom Recurrent Neural Network-modeller och Long Short-Term Memory (LSTM)-modeller.

Traditionella sekvens-till-sekvens-modeller som RNNs och LSTMs är inte fokus för denna artikel, men en förståelse för dem är nödvändig för att uppskatta hur transformermodeller fungerar och varför de är överlägsna traditionella sekvens-till-sekvens-modeller.

I korthet består RNN-modeller och LSTM-modeller av encoder- och decoder-nätverk som analyserar indata vid olika tidspunkter. Encoder-modellen är ansvarig för att bilda en kodad representation av orden i indata. Vid varje tidpunkt tar encoder-nätverket en indatasekvens och en dold tillstånd från den föregående tidpunkten i serien. De dolda tillstånds-värdena uppdateras när data förs genom nätverket, tills den sista tidpunkten, där en “kontextvektor” genereras. Kontextvektorn skickas sedan till decoder-nätverket, som används för att generera en målsekvens genom att förutsäga det mest sannolika ordet som parar med indataordet för respektive tidspunkter.

Dessa modeller kan utökas genom användning av en “uppmärksamhetsmekanism”. En uppmärksamhetsmekanism definierar vilka delar av indatavektorn nätverket ska fokusera på för att generera rätt utdata. Med andra ord låter en uppmärksamhetsmekanism transformermodellen bearbeta ett indataord medan den också uppmärksammar relevant information som innehålls av andra indataord. Uppmärksamhetsmekanismer maskerar också ut ord som inte innehåller relevant information.

Transformer Neurala Nätverksarkitektur

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

I allmänhet ser ett transformer neurala nätverk ut så här:

Medan denna allmänna struktur kan ändras mellan nätverk, kommer de grundläggande delarna att förbli desamma: positionskodningar, ordvektorer, uppmärksamhetsmekanism, feed-forward neurala nätverk.

Positionskodningar och Ordvektorer

Ett transformer neurala nätverk fungerar genom att ta en sekvens av indata och konvertera dessa indata till två andra sekvenser. Transformatorn producerar en sekvens av ordvektorinbäddningar och positionskodningar.

Ordvektorinbäddningar är bara texten representerad i ett numeriskt format som neurala nätverket kan bearbeta. Medan positionskodningarna är vektoriserade representationer som innehåller information om den aktuella ordets position i indata-meningen, i förhållande till andra ord.

Andra textbaserade neurala nätverksmodeller som RNNs och LSTMs använder vektorer för att representera orden i indata. Dessa vektorinbäddningar kartlägger ord till konstanta värden, men detta är begränsande eftersom ord kan användas i olika sammanhang. Ett transformer-nätverk löser detta problem genom att göra ordvärdena mer flexibla, med hjälp av sinusformade funktioner för att låta ordvektorerna ta på sig olika värden beroende på ordets position i meningen.

Detta tillåter det neurala nätverksmodellen att bevara information om den relativa positionen för indataorden, även efter att vektorerna har passerat genom transformer-nätverkets lager.

Positionskodningarna och ordvektorinbäddningarna adderas samman och skickas sedan till både encoder- och decoder-nätverken. Medan transformer neurala nätverk använder encoder/decoder-scheman liknande RNNs och LSTMs, är en av de stora skillnaderna mellan dem att all indata matas in i nätverket samtidigt, till skillnad från RNNs/LSTMs, där data matas in sekventiellt.

Encoder-nätverken är ansvariga för att konvertera indata till representationer som nätverket kan lära sig från, medan decoder-nätverken gör det omvända och konverterar kodningarna till en sannolikhetsfördelning som används för att generera de mest sannolika orden i utdata-meningen. Avgörande är att både encoder- och decoder-nätverken har en uppmärksamhetsmekanism.

Eftersom GPU:er kan utföra parallell bearbetning, används flera uppmärksamhetsmekanismer parallellt, beräknar relevant information för alla indataord. Denna förmåga att uppmärksamma flera ord, kallad “multi-head”-uppmärksamhet, vid en tidpunkt hjälper det neurala nätverket att lära sig ordets sammanhang i en mening, och det är en av de primära fördelarna som transformer-nätverk har över RNNs och LSTMs.

Uppmärksamhetsmekanismen

Uppmärksamhetsmekanismen är den viktigaste delen av ett transformer-nätverk. Uppmärksamhetsmekanismen är vad som möjliggör transformer-modeller att gå utöver uppmärksamhetsgränsen för en typisk RNN eller LSTM-modell. Traditionella sekvens-till-sekvens-modeller kastar bort alla mellanliggande tillstånd och använder endast det sista tillståndet/kontextvektorn när de initierar decoder-nätverket för att generera förutsägelser om en indatasekvens.

Att kasta bort allt utom den sista kontextvektorn fungerar bra när indatasekvenserna är ganska små. Men när längden på en indatasekvens ökar, kommer modellens prestanda att försämras med denna metod. Detta beror på att det blir ganska svårt att sammanfatta en lång indatasekvens som en enda vektor. Lösningen är att öka “uppmärksamheten” hos modellen och använda de mellanliggande encoder-tillstånden för att konstruera kontextvektorer för decoder.

Uppmärksamhetsmekanismen definierar hur viktiga andra indata-token är för modellen när kodningar skapas för ett visst token. Till exempel är “det” ett allmänt pronomen, 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 ett transformer-modell bestämma att i den aktuella kontexten “det” hänvisar till en ekorre, eftersom den kan undersöka alla relevanta ord i indata-meningen.

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

Encoder-decoder-uppmärksamhet låter decoder överväga indatasekvenser när den genererar en utdata, medan encoder-endast och decoder-endast uppmärksamhetsmekanismer låter nätverken överväga alla delar av de föregående och nuvarande sekvenserna.

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

  1. Beräkna en poäng för alla encoder-tillstånd.
  2. Beräkna uppmärksamhetsviktningarna
  3. Beräkna kontextvektorer
  4. Uppdatera kontextvektorn med tidigare tidstegs utdata
  5. Generera utdata med decoder

Det första steget är att låta decoder beräkna en poäng för alla encoder-tillstånd. Detta görs genom att träna decoder-nätverket, som är ett grundläggande feed-forward neurala nätverk. När decoder tränas på det första ordet i indatasekvensen, har inget internt/dolt tillstånd skapats ännu, så encoderns sista tillstånd används vanligtvis som decoders föregående tillstånd.

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

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

Efter att kontextvektorn har beräknats, används den tillsammans med ordet som genererades i den föregående tidpunkten för att generera nästa ord i utdatasekvensen. Eftersom decoder inte har någon tidigare utdata att hänvisa till i den första tidpunkten, används ofta ett särskilt “start”-token istället.

Skillnader Mellan Transformers & RNNs/LSTMs

Låt oss snabbt täcka några av de skillnaderna mellan RNNs och LSTMs.

RNNs bearbetar indata sekventiellt, medan ett dolt tillståndsvektor underhålls och ändras av indataorden när de passerar genom nätverket. De dolda tillstånden i en RNN innehåller vanligtvis mycket lite relevant information om tidigare indata. Nya indata skriver ofta över det aktuella tillståndet, vilket orsakar informationsförlust och försämrar prestanda över tid.

I kontrast bearbetar transformer-modeller hela indatasekvensen på en gång. Uppmärksamhetsmekanismen låter varje utdataord informeras av varje indata och dolt tillstånd, vilket gör nätverket mer tillförlitligt för långa textstycken.

LSTMs är modifierade versioner av RNNs, justerade för att hantera längre indatasekvenser. LSTM-arkitekturen använder en struktur som kallas “gates”, med “input gates”, “output gates” och “forget gates”. Den gated-designen hanterar den informationsförlust som är vanlig för RNN-modeller. Data bearbetas fortfarande sekventiellt, och arkitekturens återkommande design gör det svårt att träna LSTM-modeller med parallell datorbearbetning, vilket gör tränings-tiden längre totalt sett.

LSTM-ingenjörer skulle ofta lägga till uppmärksamhetsmekanismer i nätverket, vilket visade sig förbättra modellens prestanda. Men det upptäcktes så småningom att uppmärksamhetsmekanismen ensam förbättrade noggrannheten. Denna upptäckt ledde till skapandet av transformer-nätverk som använde uppmärksamhetsmekanismer och parallell datorbearbetning tack vare GPU:er.

Blogger och programmerare med specialområden inom Machine Learning och Deep Learning ämnen. Daniel hoppas på att hjälpa andra att använda kraften från AI för socialt väl.