Generatief modelleren

What we want is a machine that can learn from experience.

A. Turing

Machinaal leren

Stel dat je 100 tekeningen van gezichten van mensen moet maken voor een project op de tekenschool, maar je hebt er nog maar 99 gemaakt. Wegens het coronavirus mag je geen mensen meer bezoeken om te tekenen, dus je gaat zelf een gezicht moeten verzinnen om te tekenen. Je wilt niet dat jouw leerkracht merkt dat de laatste tekening een verzonnen gezicht is, dus de tekening moet zo goed mogelijk bij de andere 99 passen zonder een exacte kopie te zijn, want dat zou de leerkracht opmerken. Stel dat van de 99 gezichten niemand rood haar heeft, dan zorg je er natuurlijk voor dat jouw verzonnen tekening ook geen rood haar heeft zodat de tekening zo weinig mogelijk opvalt tussen de 99 anderen. Ook de kleinere details zijn belangrijk: als de combinatie blond haar en bruine ogen nooit voorkomt in de echte tekeningen, dan zou de verzonnen tekening misschien te opvallend zijn als het wel deze combinatie bevat. Nadat de verzonnen tekening afgewerkt is, belt jouw vriend Harry in volle paniek: hij heeft nog geen enkele tekening gemaakt! Omdat niemand tijd en zin heeft om 100 verzonnen gezichten te tekenen, stel je jezelf de vraag: ” Zou een computer dit automatisch kunnen doen voor ons?” Het antwoord is ja! Namelijk met behulp van machinaal leren.

Machinaal leren is een vorm van toegepaste statistiek waarbij algoritmen worden ontwikkeld die taken kunnen uitvoeren zonder expliciete instructies te vereisen. We kunnen in principe een programma schrijven die stukjes van onze 99 echte tekening combineert om een nieuwe tekening te maken, maar het resultaat zou geen samenhangend geheel zijn en zou daarom heel makkelijk te onderscheiden zijn van de echte tekeningen. Expliciet een programma schrijven die wel een samenhangende tekeningen creëert is onbegonnen werk. Algoritmen in machinaal leren zoeken naar patronen in data om beter te worden in een bepaalde taak. Dit proces noemen we leren. Machinaal leren is een breed vakgebied en heeft vele mogelijke toepassing. In ons geval zijn onze echte afbeeldingen de data en is het genereren van een afbeelding die op de 99 echte tekeningen lijkt de taak.

De relevante afbeeldingen, zoals afbeeldingen van gezichten, zijn maar een kleine fractie van het totaal aantal mogelijke afbeeldingen. De meeste van deze mogelijkheden zien er echter uit als ruis in plaats van afbeeldingen die je bijvoorbeeld met een camera zou maken.

 

Ons doel is nu om een model te verkrijgen van de gezamenlijke kansverdeling van de pixels in de echte afbeeldingen. Zodra we dit model hebben kunnen we bijvoorbeeld pixelsgewijs nieuwe afbeeldingen genereren en is Harry gered. Het generatief model verkrijgen is echter een uitdagend probleem!
Het aantal mogelijke afbeeldingen die kunnen gemaakt worden, stijgt namelijk exponentieel met het aantal pixels in de afbeelding. In een zwart-wit foto kan elke pixel 256 verschillende waarden aannemen. Dit betekent dat er van een zwart-wit foto van 36 pixels al 256^{36}\approx 10^{86} (een 1 gevolgd door maar liefst 86 nullen) verschillende mogelijkheden bestaan. Dit is meer dan het geschatte aantal deeltjes in het universum! Slechts een klein aantal van deze mogelijkheden zijn echter relevant: als je volledig willekeurige pixelwaarden kiest is de kans heel groot dat je afbeelding eruit ziet als ruis in plaats van een gezicht. Dit wordt symbolisch voorgesteld in figuur 1. Een model zoeken dat de relevante mogelijkheden efficiënt beschrijft is een uitdaging. Gelukkig kunnen we ons laten inspireren door de fysica.

Kwantum veeldeeltjesfysica

Kwantum veeldeeltjesfysica beschrijft het gezamenlijk gedrag van vele microscopische deeltjes die elkaar kunnen beïnvloeden via interacties. Een voorbeeld van zulke interacties is atomen die elkaar aantrekken via de magnetische kracht, waardoor bijvoorbeeld een magneet tegen je koelkast blijft hangen.
De eigenschappen van zo’n kwantum veeldeeltjessystemen beschrijven is over het algemeen heel moeilijk. Gelukkig kunnen we gebruik maken van het feit dat een deeltje enkel zijn dichtste buren zal beïnvloeden. Vergelijk dit met Harry die in Oostende in de zee springt: dit veroorzaakt grote golven in het water rondom Harry, maar het water aan de kust van Blankenberge zal er niets van merken. Deeltjes die ver van elkaar verwijderd zijn zullen elkaar dus amper beïnvloeden, of met andere woorden de interacties in veeldeeltjessystemen zijn lokaal. Hierdoor is slechts een kleine fractie van alle mogelijke toestanden fysisch realiseerbaar. In kwantum veeldeeltjesfysica zijn modellen ontwikkeld die op een efficiënte manier de kansverdeling van deze relevante toestanden benaderen. Dit toont opvallend veel gelijkenissen met onze taak, waarbij we enkel de relevante afbeeldingen willen modelleren en naburige pixels elkaar veel meer beïnvloeden dan pixels aan de andere kant van de afbeelding. Bijvoorbeeld als een pixel in het haar bruin is, dan zijn de pixels daarrond waarschijnlijk ook bruin. Daarentegen zegt die bruine pixel bovenaan de afbeelding niets over de pixels onderaan, want haarkleur zegt niets over welke kleur de trui van de persoon heeft.

Resultaat van een generatief model geïnspireerd door kwantum veeldeetljesfysica. Het model werd getraind om afbeeldingen van handgeschreven getallen te genereren.

 

Wegens de gelijkenissen tussen kwantum veeldeeltjesfysica en generatief modelleren is het logisch om een succesvol model voor veeldeeltjessystemen toe te passen als generatief model. In figuur 2 staan enkele afbeelding van handgeschreven getallen gecreëerd door zo’n generatief model. Aangezien sommige gegenereerde afbeeldingen niet op getallen lijken, is het duidelijk dat er nog veel onderzoek nodig is om deze modellen te verbeteren. Door het nauwe verband met kwantum veeldeeltjesfysica zijn deze modellen een veelbelovende kandidaat om op kwantumcomputers te werken. Kwantumcomputers gebruiken concepten uit de kwantumfysica om bepaalde berekeningen véél sneller te doen dan normale computers. Op dit moment zijn kwantumcomputers nog te beperkt om nuttig te zijn, maar er wordt volop onderzoek gedaan om deze computers verder te ontwikkelen. Machinaal leren vergt veel berekeningen van computers, dus kwantumcomputers zullen waarschijnlijk heel nuttig worden voor machinaal leren.

Bepaalde generatieve modellen hebben de voorbije jaren een heel sterke vooruitgang gekend. De resultaten van een bepaald type generatief model, genaamd GAN, worden geïllustreerd in figuur 3. De gegenereerde gezichten van modellen uit 2017 en 2018 zijn zo realistisch dat het bijna moeilijk te geloven is dat deze mensen niet echt bestaan! Deze generatieve modellen hebben al vele toepassingen en zijn in staat om onder andere automatisch verzonnen tekeningen te genereren.

Bovenstaande afbeeldingen tonen de snelle vooruitgang van generatief modelleren met behulp van GAN’s. De gezichten hierboven zijn gegenereerd op basis van een computermodel en zijn dus geen bestaande personen!

 

Jonas Van Gompel

Student Master of Science in de Fysica & Sterrenkunde

Promotoren: prof. dr. Jan Ryckebusch & prof. dr. Jutho Haegeman

Begeleiders: Corneel Casert & Tom Vieijra

Tensor networks as unsupervised generative models


Bronnen:

  • David Foster. Generative deep learning: teaching machines to paint, write, compose, and play. O’Reilly Media,2019.