Zachte introductie tot generatieve netwerken voor lang kortetermijngeheugen

Zachte introductie tot generatieve netwerken voor lang kortetermijngeheugen

Het recurrent neuraal netwerk van het Long Short-Term Memory is ontwikkeld voor het voorspellen van sequenties.

Naast problemen met sequentievoorspelling. LSTM's kunnen ook als generatief model worden gebruikt

In dit bericht ontdek je hoe LSTM's kunnen worden gebruikt als generatieve modellen.

Na het voltooien van dit bericht weet je:

  • Over generatieve modellen, met een focus op generatieve modellen voor tekst genaamd taalmodellering.
  • Voorbeelden van toepassingen waarbij LSTM Generative-modellen zijn gebruikt.
  • Voorbeelden van het modelleren van tekst voor generatieve modellen met LSTM's.

Geef uw project een kickstart met mijn nieuwe boek Long Short-Term Memory Networks With Python, inclusief stap-voor-stap tutorials en de Python-broncode bestanden voor alle voorbeelden.

Laten we beginnen.

Zachte introductie tot generatieve netwerken voor lang kortetermijngeheugen

Zachte introductie tot generatieve netwerken voor lang kortetermijngeheugen
Foto door Fraser Mummery, enkele rechten voorbehouden.

Hulp nodig met LSTM's voor sequentievoorspelling?

Volg mijn gratis 7-daagse e-mailcursus en ontdek 6 verschillende LSTM-architecturen (met code).

Klik om u aan te melden en ontvang ook een gratis pdf-e-boekversie van de cursus.

Start nu uw GRATIS minicursus!

Generatieve modellen

LSTM's kunnen worden gebruikt als een generatief model.

Gegeven een groot corpus aan sequentiegegevens, zoals tekstdocumenten, kunnen LSTM-modellen worden ontworpen om de algemene structurele eigenschappen van het corpus te leren, en wanneer ze een zaadinvoer krijgen, kunnen ze nieuwe sequenties genereren die representatief zijn voor het oorspronkelijke corpus.

Het probleem van het ontwikkelen van een model om een ​​corpus tekst te generaliseren wordt taalmodellering genoemd op het gebied van natuurlijke taalverwerking. Een taalmodel kan op woordniveau werken en de probabilistische relaties tussen woorden in een document leren om een ​​zin nauwkeurig af te ronden en geheel nieuwe zinnen te genereren. Op de meest uitdagende manier werken taalmodellen op personageniveau, leren ze van reeksen karakters en genereren ze nieuwe reeksen per personage.

Het doel van taalmodellering op personageniveau is om het volgende personage in een reeks te voorspellen.

- Tekst genereren met terugkerende neurale netwerken, 2011.

Hoewel het een grotere uitdaging is, maakt de toegevoegde flexibiliteit van een model op tekenniveau het mogelijk nieuwe woorden te genereren, interpunctie toe te voegen en eventuele andere structuren te genereren die in de tekstgegevens voorkomen.

... het voorspellen van één teken tegelijk is interessanter vanuit het perspectief van het genereren van reeksen, omdat het netwerk hierdoor nieuwe woorden en strings kan verzinnen.

- Sequenties genereren met terugkerende neurale netwerken, 2013.

Taalmodellering is verreweg de meest bestudeerde toepassing van generatieve LSTM's, misschien vanwege het gebruik van standaarddatasets waarin modelprestaties kunnen worden gekwantificeerd en vergeleken. Deze benadering is gebruikt om tekst te genereren over een reeks interessante taalmodelleringsproblemen, zoals:

  • Wikipedia-artikelen genereren (inclusief markup).
  • Fragmenten genereren van geweldige auteurs zoals Shakespeare.
  • Genereren van technische manuscripten (inclusief markup).
  • Computerbroncode genereren.
  • Artikelkoppen genereren.

De kwaliteit van de resultaten varieert; de opmaak of broncode kan bijvoorbeeld handmatige tussenkomst vereisen om te renderen of te compileren. Desalniettemin zijn de resultaten indrukwekkend.

De aanpak is ook toegepast op verschillende domeinen waar een groot corpus aan bestaande sequentie-informatie beschikbaar is en nieuwe sequenties stap voor stap kunnen worden gegenereerd, zoals:

  • Handschrift generatie.
  • Muziekgeneratie.
  • Spraakgeneratie.
Voorbeeld van LSTM's die worden gebruikt bij het automatisch genereren van handschriften

Voorbeeld van LSTM's die worden gebruikt bij het automatisch genereren van handschriften.
Ontleend aan "Generating Sequences With Recurrent Neural Networks", 2014.

Generatieve LSTM's

Een generatieve LSTM is niet echt architectuur, het is meer een verandering in perspectief over wat een LSTM-voorspellend model leert en hoe het model wordt gebruikt.

We zouden elke LSTM-architectuur als generatief model kunnen gebruiken. In dit geval gebruiken we een eenvoudige Vanilla LSTM.

Vanilla LSTM-architectuur voor generatieve modellen

Vanilla LSTM-architectuur voor generatieve modellen

In het geval van een taalmodel op karakterniveau staat het alfabet van alle mogelijke tekens vast. Een eenmalige hot-codering wordt zowel gebruikt voor het leren van invoersequenties als voor het voorspellen van uitvoersequenties.

Er wordt een één-op-één-model gebruikt waarbij één stap wordt voorspeld voor elke invoertijdstap. Dit betekent dat invoersequenties mogelijk gespecialiseerde behandeling vereisen om te worden gevectoriseerd of geformatteerd voor het efficiënt trainen van een bewaakt model.

Gegeven de volgorde bijvoorbeeld:

Een dataset zou moeten worden geconstrueerd zoals:

Dit kan as-is worden gepresenteerd als een dataset van eenmalige steekproeven, wat behoorlijk beperkend kan zijn voor het netwerk (bijv. Geen BPTT).

Als alternatief kan het worden gevectoriseerd tot een invoerreeks met vaste lengte voor een veel-op-een tijdstapmodel, zoals:

Of een uitvoerreeks met vaste lengte voor een een-op-veel tijdstapmodel:

Of een variatie op deze benaderingen.

Merk op dat dezelfde gevectoriseerde weergave vereist zou zijn bij het maken van voorspellingen, wat betekent dat voorspelde karakters moeten worden gepresenteerd als invoer voor volgende monsters. Dit kan bij de uitvoering nogal onhandig zijn.

De interne toestand van het netwerk vereist mogelijk zorgvuldig beheer, misschien opnieuw ingesteld op de gekozen locaties in de invoersequentie (bijv. Einde van een alinea, pagina of hoofdstuk) in plaats van aan het einde van elke invoersequentie.

Verder lezen

Deze sectie biedt meer bronnen over het onderwerp als u dieper zoekt.

Papieren

Berichten

Overzicht

In dit bericht ontdekte je het gebruik van LSTM's als generatieve modellen.

Concreet heb je geleerd:

  • Over generatieve modellen, met een focus op generatieve modellen voor tekst genaamd taalmodellering.
  • Voorbeelden van toepassingen waarbij LSTM Generative-modellen zijn gebruikt.
  • Voorbeelden van het modelleren van tekst voor generatieve modellen met LSTM's.

Heb je nog vragen?
Stel je vragen in de comments hieronder en ik zal mijn best doen om deze te beantwoorden.

Ontwikkel vandaag nog LSTM's voor sequentievoorspelling!

Lange-termijngeheugennetwerken met Python

Ontwikkel uw eigen LSTM-modellen in enkele minuten

... met slechts een paar regels python-code

Ontdek hoe in mijn nieuwe e-boek:
Lange-termijngeheugennetwerken met Python

Het zorgt voor zelfstudie tutorials over onderwerpen als:
CNN LSTM's, Encoder-Decoder LSTM's, generatieve modellen, gegevensvoorbereiding, voorspellingen doen en veel meer...

Breng eindelijk LSTM terugkerende neurale netwerken naar
Uw projecten voor sequentievoorspellingen

Sla de academici over. Alleen resultaten.

Zie wat erin zit

Misschien bent u ook geïnteresseerd in