stomp Wat zijn transformator neurale netwerken? - Verenig AI
Verbind je met ons

AI 101

Wat zijn transformator neurale netwerken?

mm
Bijgewerkt on

Transformator neurale netwerken beschreven

transformers zijn een type machine learning-model dat gespecialiseerd is in het verwerken en interpreteren van sequentiële gegevens, waardoor ze optimaal zijn voor taken op het gebied van natuurlijke taalverwerking. Om beter te begrijpen wat een machine learning-transformator is en hoe deze werkt, gaan we eens nader kijken naar transformatormodellen en de mechanismen die deze aandrijven.

Dit artikel behandelt:

  • Sequence-to-Sequence-modellen
  • De Transformer neurale netwerkarchitectuur
  • Het aandachtsmechanisme
  • Verschillen tussen transformatoren en RNN's / LSTM's

Sequence-to-Sequence-modellen

Sequence-to-sequence-modellen zijn een type NLP-model dat wordt gebruikt om reeksen van het ene type om te zetten in een reeks van een ander type. Er zijn verschillende soorten sequentie-naar-sequentie-modellen, zoals Terugkerend neuraal netwerk modellen en Lang kortetermijngeheugen (LSTM) modellen.

Traditionele sequentie-naar-sequentie-modellen zoals RNN's en LSTMS zijn niet de focus van dit artikel, maar een goed begrip ervan is nodig om te begrijpen hoe transformatormodellen werken en waarom ze superieur zijn aan traditionele sequentie-naar-sequentie-modellen.

Kort gezegd bestaan ​​RNN-modellen en LSTM-modellen uit encoder- en decodernetwerken die invoergegevens in verschillende tijdstappen analyseren. Het encodermodel is verantwoordelijk voor het vormen van een gecodeerde weergave van de woorden in de invoergegevens. Bij elke tijdstap neemt het encodernetwerk een invoerreeks en een verborgen status over van de vorige tijdstap in de reeks. De verborgen statuswaarden worden bijgewerkt naarmate de gegevens door het netwerk gaan, tot aan de laatste tijdstap, waar een ‘contextvector’ wordt gegenereerd. De contextvector wordt vervolgens doorgegeven aan het decodeernetwerk, dat wordt gebruikt om een ​​doelreeks te genereren door het meest waarschijnlijke woord te voorspellen dat paren maakt met het invoerwoord voor de respectieve tijdstappen.

Deze modellen kunnen worden uitgebreid door het gebruik van een "aandachtsmechanisme”. Een aandachtsmechanisme definieert op welke delen van de invoervector het netwerk zich moet concentreren om de juiste uitvoer te genereren. Met andere woorden, een aandachtsmechanisme laat het transformatormodel één invoerwoord verwerken, terwijl het ook aandacht besteedt aan de relevante informatie die de andere invoerwoorden bevatten. Aandachtsmechanismen maskeren ook woorden die geen relevante informatie bevatten.

Transformator neurale netwerkarchitectuur

We zullen later meer in detail ingaan op het aandachtsmechanisme, maar laten we er nu eens naar kijken de architectuur van een neuraal netwerk van een transformator op een hoger niveau.

Over het algemeen ziet een neuraal netwerk van een transformator er ongeveer zo uit:

Hoewel deze algemene structuur tussen netwerken kan veranderen, blijven de kernstukken hetzelfde: positionele coderingen, woordvectoren, aandachtsmechanisme, feed-forward neuraal netwerk.

Positionele coderingen en woordvectoren

Een transformator neurale netwerken werkt door een reeks inputs te nemen en deze inputs om te zetten in twee andere reeksen. De transformator produceert een reeks woordvectorinbeddingen en positionele coderingen.

Word vector inbeddingen zijn slechts de tekst die wordt weergegeven in een numeriek formaat dat het neurale netwerk kan verwerken. Ondertussen zijn de positionele coderingen gevectoriseerde representaties die informatie bevatten over de positie van het huidige woord in de invoerzin, in relatie tot andere woorden.

Andere op tekst gebaseerde neurale netwerkmodellen zoals RNN's en LSTM's gebruiken vectoren om de woorden in invoergegevens weer te geven. Deze vectorinbeddingen wijzen woorden toe aan constante waarden, maar dit is beperkend omdat woorden in verschillende contexten kunnen worden gebruikt. Een transformatornetwerk lost dit probleem op door woordwaarden flexibeler te maken, door gebruik te maken van sinusvormige functies om de woordvectoren verschillende waarden te laten aannemen, afhankelijk van de positie van het woord in de zin.

Hierdoor kan het neurale netwerkmodel informatie behouden over de relatieve positie van de invoerwoorden, zelfs nadat de vectoren door de lagen van het transformatornetwerk zijn gegaan.

De positionele coderingen en de inbedding van de woordvectoren worden bij elkaar opgeteld en vervolgens doorgegeven aan zowel de encoder- als de decodernetwerken. Terwijl neurale netwerken van transformatoren encoder-/decoderschema's gebruiken, net als RNN's en LSTM's, is een belangrijk verschil tussen beide dat alle invoergegevens tegelijkertijd in het netwerk worden ingevoerd, terwijl in RNN's/LSTM's de gegevens opeenvolgend worden doorgegeven.

De encodernetwerken zijn verantwoordelijk voor het omzetten van de invoer in representaties waarvan het netwerk kan leren, terwijl de decodernetwerken het tegenovergestelde doen en de coderingen omzetten in een kansverdeling die wordt gebruikt om de meest waarschijnlijke woorden in de uitvoerzin te genereren. Cruciaal is dat zowel het encoder- als het decodernetwerk een aandachtsmechanisme hebben.

Omdat GPU's in staat zijn tot parallelle verwerking, worden meerdere aandachtsmechanismen parallel gebruikt, waarbij de relevante informatie voor alle invoerwoorden wordt berekend. Dit vermogen om aandacht te besteden aan meerdere woorden, genaamd "multi-head" aandacht, helpt het neurale netwerk om de context van een woord in een zin te leren, en het is een van de belangrijkste voordelen die transformatornetwerken hebben ten opzichte van RNN's en LSTM's.

Het aandachtsmechanisme

Het aandachtsmechanisme is het belangrijkste onderdeel van een transformatornetwerk. Het aandachtsmechanisme zorgt ervoor dat transformatormodellen verder gaan dan de aandachtslimiet van een typisch RNN- of LSTM-model. Traditionele Sequence-to-Sequence-modellen negeren alle tussenliggende toestanden en gebruiken alleen de uiteindelijke toestand/contextvector bij het initialiseren van het decodernetwerk om voorspellingen te genereren over een invoerreeks.

Alles weggooien behalve de laatste contextvector werkt goed als de invoerreeksen vrij klein zijn. Maar naarmate de lengte van een invoerreeks toeneemt, zullen de prestaties van het model verslechteren bij het gebruik van deze methode. Dit komt omdat het vrij moeilijk wordt om een ​​lange invoerreeks samen te vatten als een enkele vector. De oplossing is om de "aandacht" van het model te vergroten en de tussenliggende encoderstatussen te gebruiken om contextvectoren voor de decoder te construeren.

Het aandachtsmechanisme definieert hoe belangrijk andere invoertokens zijn voor het model wanneer er coderingen worden gemaakt voor een bepaald token. "Het" is bijvoorbeeld een algemeen voornaamwoord dat vaak wordt gebruikt om naar dieren te verwijzen waarvan het geslacht niet bekend is. Een aandachtsmechanisme zou een transformatormodel laten bepalen dat in de huidige context 'het' verwijst naar een eekhoorn, omdat het alle relevante woorden in de invoerzin kan onderzoeken.

Een aandachtsmechanisme kan op drie verschillende manieren worden gebruikt: encoder-naar-decoder, encoder-only, decoder-only.

Encoder-decoder-aandacht laat de decoder rekening houden met invoerreeksen bij het genereren van een uitvoer, terwijl de alleen-encoder- en decoder-alleen-aandachtsmechanismen ervoor zorgen dat de netwerken alle delen van respectievelijk de vorige en huidige reeksen in overweging nemen.

De constructie van een aandachtsmechanisme kan worden onderverdeeld in vijf stappen:

  1. Een score berekenen voor alle encoderstatussen.
  2. Berekening van de aandachtsgewichten
  3. Contextvectoren berekenen
  4. Contextvector bijwerken met output van vorige tijdstappen
  5. Uitvoer genereren met decoder

De eerste stap is om de decoder een score te laten berekenen voor alle encoderstatussen. Dit wordt gedaan door het decodernetwerk te trainen, wat een fundamenteel feed-forward neuraal netwerk is. Wanneer de decoder wordt getraind op het eerste woord in de invoerreeks, is er nog geen interne/verborgen status gecreëerd, dus de laatste status van de encoder wordt meestal gebruikt als de vorige status van de decoder.

Om de aandachtsgewichten te berekenen, wordt een softmax-functie gebruikt om een ​​probabilistische verdeling voor de aandachtsgewichten te genereren.

Nadat de aandachtsgewichten zijn berekend, moet de contextvector worden berekend. Dit wordt gedaan door de aandachtsgewichten en de verborgen toestand voor elke tijdstap met elkaar te vermenigvuldigen.

Nadat de contextvector is berekend, wordt deze gebruikt naast het woord dat in de vorige tijdstap is gegenereerd om het volgende woord in de uitvoerreeks te genereren. Omdat de decoder geen eerdere uitvoer heeft om naar te verwijzen in de eerste tijdstap, wordt in plaats daarvan vaak een speciaal "start" -token gebruikt.

Verschillen tussen transformatoren en RNN's/LSTM's

Laten we snel enkele verschillen tussen RNN's en LSTM's bespreken.

RNN's verwerken invoer opeenvolgend, terwijl een verborgen toestandsvector wordt onderhouden en gewijzigd door de invoerwoorden terwijl ze door het netwerk bewegen. De verborgen statussen van een RNN bevatten doorgaans zeer weinig relevante informatie over de eerdere invoer. Nieuwe invoer overschrijft vaak de huidige status, wat informatieverlies veroorzaakt en de prestaties na verloop van tijd verslechtert.

Transformatormodellen daarentegen verwerken de volledige invoerreeks in één keer. Het aandachtsmechanisme zorgt ervoor dat elk uitvoerwoord wordt geïnformeerd door elke invoer en verborgen status, waardoor het netwerk betrouwbaarder wordt voor lange stukken tekst.

LSTM's zijn aangepaste versies van RNN's, aangepast om langere invoerreeksen te verwerken. De LSTM-architectuur gebruikt een structuur die "poorten" wordt genoemd, met "invoerpoorten", "uitvoerpoorten" en "vergeetpoorten". Het gated ontwerp gaat om met het informatieverlies dat gebruikelijk is bij RNN-modellen. Gegevens worden nog steeds sequentieel verwerkt en het terugkerende ontwerp van de architectuur maakt het moeilijk om LSTM-modellen te trainen met behulp van parallel computing, waardoor de trainingstijd over het algemeen langer wordt.

LSTM-ingenieurs voegden regelmatig aandachtsmechanismen toe aan het netwerk, waarvan bekend was dat het de prestaties van het model verbeterde. Uiteindelijk werd echter ontdekt dat alleen het aandachtsmechanisme de nauwkeurigheid verbeterde. Deze ontdekking leidde tot de creatie van transformatornetwerken die gebruik maakten van aandachtsmechanismen en parallelle computers dankzij GPU's.

Blogger en programmeur met specialiteiten in Machine leren en Diepe leren onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor maatschappelijk welzijn.